Programación Con Nuevas Tecnologías - Investigación Backend y Frontend - Emilio Noyola

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

INSTITUTO POLITÉCNICO NACIONAL

Centro de Estudios Científicos y Tecnológicos 9


“Juan de Dios Bátiz”

Carrera Técnica:
Programación

Unidad de Aprendizaje:
Programación con Nuevas Tecnologías

Actividad:
Backend y Frontend

Nombre del Alumno:


Noyola Gómez Emilio Damian

Nombre del Maestro:


Rubén Enaín Pérez Montes

Turno: Vespertino

Grupo: 4IV9

Fecha de Entrega: 02 de mayo de 2024


BACKEND Y FRONTEND

Introducción

El desarrollo de aplicaciones web se conforma de la capa de presentación (FrontEnd) y una


capa de acceso a datos (Backend). El FrontEnd trabaja la interfaz visual, y hace que el
usuario pueda interactuar con nuestro sitio o sistema. Está orientado al lenguaje de marcas
y al lenguaje de programación web de ejecución en equipos clientes. El Backend se encarga
de la manipulación de los datos, un backend no sirve de mucho si no existe un FrontEnd de
por medio, el desarrollador Backend debe de conocer de bases de datos, frameworks y
aspectos de seguridad. Él debe encargarse de que la información que llega desde el
FrontEnd sea almacenada a una base de datos. Así mismo se encarga de crear API’s para
que sus datos puedan consumirse de manera cómoda y pueda mejorar la experiencia del
usuario. El avance tecnológico obliga al profesional de la informática, dedicado al desarrollo
web, a conocer estos términos y las tecnologías relacionadas. El presente trabajo pretende
centrarse en el estudio y análisis de estas tecnologías, con lo cual se pretende determinar
cuáles son las más usadas y relevantes en el ámbito laboral, y debido a ello, fomentar o
motivar la incorporación de sus conocimientos en la formación de los alumnos que están
cursando los últimos años de las carreras de informática.

Backend

En el vasto mundo del desarrollo de software, el Backend emerge como la columna vertebral
de las aplicaciones, aunque en gran medida permanece invisible para el usuario final. Es el
núcleo operativo que maneja los datos, gestiona la lógica de negocio y sostiene la interacción
con la base de datos, todo ello para garantizar el funcionamiento adecuado de la aplicación.

Cuando los usuarios interactúan con una aplicación, sea navegando por un sitio web,
realizando una compra en una tienda en línea o accediendo a su cuenta bancaria desde un
dispositivo móvil, el Backend entra en acción. Es el responsable de procesar las solicitudes
del usuario, validar la información proporcionada, ejecutar las operaciones necesarias y
devolver los resultados pertinentes.

Una analogía útil para entender el rol del Backend es compararlo con el motor de un
automóvil. Aunque los pasajeros no pueden verlo ni interactuar directamente con él, es
esencial para que el vehículo funcione correctamente. Sin un motor confiable y eficiente, el
automóvil no podría moverse ni cumplir su propósito principal: transportar a las personas de
un lugar a otro.

Del mismo modo, el Backend proporciona la funcionalidad central que impulsa la aplicación
hacia adelante. Es el motor que impulsa las operaciones detrás de escena, desde el
procesamiento de pagos hasta la gestión de inventario, desde la autenticación de usuarios
hasta el almacenamiento de datos. Sin un Backend sólido y bien diseñado, una aplicación
enfrentaría dificultades para ofrecer una experiencia de usuario fluida y satisfactoria.

Roles y perfiles necesarios

1. Desarrollador Backend: Este profesional es responsable de escribir el código que


controla el servidor y maneja la lógica de negocio de la aplicación. Además de tener
habilidades en lenguajes de programación como Python, Java, C#, Ruby, entre otros,
debe ser capaz de trabajar con eficacia con frameworks y tecnologías específicas del
Backend, como Django, Spring Boot, .NET, Ruby on Rails, entre otros. Un ejemplo de
función sería desarrollar un sistema de gestión de contenido (CMS) utilizando Django,
donde el Backend maneja la creación, edición y eliminación de contenido, así como
también la autenticación de usuarios y la gestión de permisos.

2. Ingeniero de Base de Datos: Este rol se encarga del diseño, implementación y


mantenimiento de la base de datos utilizada por la aplicación. Además de tener
experiencia en modelado de datos y optimización de consultas, debe ser capaz de
trabajar con diferentes sistemas de gestión de bases de datos (DBMS) como MySQL,
PostgreSQL, MongoDB, SQL Server, Oracle, entre otros. Un ejemplo de función sería
diseñar una base de datos relacional utilizando MySQL para un sistema de gestión
de inventario, donde el Backend interactúa con la base de datos para almacenar y
recuperar información sobre productos, inventarios y pedidos.

3. Arquitecto de Software: Este profesional diseña la arquitectura general del sistema,


incluyendo la distribución de componentes, la escalabilidad y la seguridad. Debe tener
un profundo conocimiento de patrones de diseño, principios de arquitectura de
software y tecnologías de integración. Un ejemplo de función sería diseñar una
arquitectura de microservicios utilizando Docker y Kubernetes, donde el Backend se
divide en servicios independientes que se comunican entre sí a través de API RESTful,
lo que permite una mayor escalabilidad y mantenimiento.
Tecnologías inherentes

• Lenguajes de programación: Python, Java, C#, Ruby, PHP, entre otros.


• Frameworks: Django, Flask, Spring Boot, .NET Core, Ruby on Rails, Laravel, entre
otros.
• Bases de datos: MySQL, PostgreSQL, MongoDB, SQL Server, Oracle, entre otros.
• Herramientas de control de versiones: Git, SVN.
• Servidores web: Apache, Nginx.
• Protocolos de comunicación: HTTP, TCP/IP.
• Herramientas de testing: JUnit, NUnit, pytest, entre otros.
• Servicios en la nube: AWS, Azure, Google Cloud.

Desarrollo y desafíos

El desarrollo Backend implica resolver desafíos como la seguridad de datos, la escalabilidad,


el rendimiento y la gestión eficiente de recursos. Los desarrolladores Backend deben escribir
código eficiente y escalable que pueda manejar grandes volúmenes de datos y garantizar la
seguridad de la información. Un desafío adicional es la gestión de la concurrencia y la
consistencia de datos en entornos distribuidos, donde múltiples usuarios acceden y
modifican la misma información simultáneamente.

Frontend

El Frontend, conocido también como el lado del cliente, representa la cara visible de una
aplicación o sistema de software. Es la puerta de entrada para los usuarios finales,
proporcionándoles una interfaz intuitiva y atractiva a través de la cual pueden interactuar con
la aplicación y realizar diversas acciones.

Imagina abrir una aplicación en tu dispositivo móvil o acceder a un sitio web desde tu
navegador. Lo primero que encuentras es el Frontend: los colores, las tipografías, los
botones, los campos de entrada y toda la disposición de elementos que conforman la interfaz
de usuario. Esta es la obra maestra del Frontend, diseñada para cautivar a los usuarios y
guiarlos a través de la experiencia de uso de manera fluida y eficiente.

El Frontend se ocupa de convertir la complejidad del Backend en algo accesible y


comprensible para el usuario final. Es el encargado de presentar la información de manera
visualmente atractiva, organizarla de forma lógica y proporcionar controles intuitivos para
que los usuarios puedan navegar y realizar acciones fácilmente. Desde botones de
navegación hasta formularios de registro, el Frontend ofrece la interfaz a través de la cual
los usuarios interactúan con la aplicación.

Una analogía útil para comprender el rol del Frontend es pensar en él como la fachada de
un edificio. Aunque el verdadero trabajo y la funcionalidad están en el interior, es la fachada
lo que los transeúntes ven y experimentan. Una fachada bien diseñada y atractiva puede
atraer a las personas y alentarlas a entrar, mientras que una fachada descuidada o confusa
puede ahuyentarlas.

Del mismo modo, un Frontend bien diseñado puede mejorar significativamente la experiencia
del usuario y hacer que una aplicación sea más atractiva y fácil de usar. Al proporcionar una
interfaz clara, intuitiva y estéticamente agradable, el Frontend puede aumentar la
satisfacción del usuario y fomentar la fidelidad a la marca.

Roles y perfiles necesarios

1. Desarrollador Frontend: Este profesional es responsable de escribir el código que


controla la interfaz de usuario de la aplicación web o móvil. Además de tener
habilidades en lenguajes de programación web como HTML, CSS y JavaScript, debe
ser capaz de trabajar con frameworks y bibliotecas populares del Frontend, como
React.js, Angular, Vue.js, Bootstrap, Foundation, entre otros. Un ejemplo de función
sería desarrollar una aplicación de comercio electrónico utilizando React.js, donde el
Frontend muestra productos, categorías y carritos de compra, y permite a los usuarios
buscar y filtrar productos de manera eficiente.

2. Diseñador de Interfaz de Usuario (UI): Este rol se enfoca en el diseño visual de la


interfaz de usuario, incluyendo la disposición de elementos, colores, tipografía, entre
otros. Debe tener experiencia en herramientas de diseño gráfico como Adobe
Photoshop, Adobe Illustrator, Sketch, Figma, entre otros. Un ejemplo de función sería
diseñar la interfaz de usuario de una aplicación de redes sociales utilizando Sketch,
donde se define la apariencia y el estilo de los elementos de la interfaz, como botones,
iconos y barras de navegación.
3. Diseñador de Experiencia de Usuario (UX): Este profesional se encarga de diseñar
la experiencia general del usuario al interactuar con la aplicación, asegurándose de
que sea intuitiva, eficiente y satisfactoria. Debe tener experiencia en investigación de
usuarios, creación de prototipos y pruebas de usabilidad. Un ejemplo de función sería
realizar pruebas de usabilidad en una aplicación de banca en línea, donde se observa
cómo los usuarios interactúan con la interfaz de usuario y se identifican áreas de
mejora en términos de navegación, flujo de trabajo y accesibilidad.

Tecnologías inherentes

• Lenguajes de marcado: HTML, XML.


• Lenguajes de estilo: CSS, SASS, LESS.
• Lenguajes de programación: JavaScript.
• Frameworks y bibliotecas: React.js, Angular, Vue.js, Bootstrap, Foundation, entre
otros.
• Herramientas de desarrollo: Visual Studio Code, Sublime Text, Atom.
• Herramientas de diseño: Adobe Photoshop, Adobe Illustrator, Sketch, Figma, Adobe
XD, entre otros.

Desarrollo y desafíos

El desarrollo Frontend implica resolver desafíos como la compatibilidad entre navegadores,


la optimización del rendimiento y la accesibilidad. Los desarrolladores Frontend deben
escribir código limpio y semántico, optimizar la velocidad de carga de la página y garantizar
una experiencia de usuario fluida y atractiva en diferentes dispositivos y pantallas. Un desafío
adicional es mantenerse al día con las tendencias y tecnologías emergentes del Frontend,
como Progressive Web Apps (PWA), Web Components y Single Page Applications (SPA).

Fullstack

Un desarrollador Fullstack es como un maestro de ceremonias en el mundo del desarrollo


de software, capaz de moverse con destreza y competencia en todas las capas de una
aplicación. Esta figura singular posee habilidades tanto en el desarrollo Backend como en el
Frontend, lo que le permite trabajar en diversos aspectos del proceso de desarrollo de
software.

Imagina a un malabarista en un circo, capaz de manejar múltiples pelotas en el aire al mismo


tiempo. De manera similar, un desarrollador Fullstack puede equilibrar las demandas y
responsabilidades del Backend y el Frontend, moviéndose con gracia y habilidad entre
diferentes tecnologías y tareas.

En la práctica, un desarrollador Fullstack puede participar en la creación de la interfaz de


usuario, diseñando páginas web atractivas y funcionales que cautiven a los usuarios desde
el primer momento. Utilizando tecnologías como HTML, CSS y JavaScript, pueden dar vida
a diseños creativos y hacer que la experiencia del usuario sea lo más fluida posible.

Pero el trabajo de un desarrollador Fullstack no se detiene en la superficie. También están


equipados para abordar los aspectos más profundos del desarrollo de software, como la
gestión de bases de datos, la lógica de negocio y la seguridad. Pueden escribir código
eficiente en lenguajes como Python, Java o Ruby, y trabajar con frameworks y bibliotecas
especializadas para construir aplicaciones sólidas y escalables.

Un ejemplo concreto del trabajo de un desarrollador Fullstack podría ser la creación de una
aplicación de comercio electrónico. En esta tarea, serían responsables de diseñar la interfaz
de usuario, permitiendo a los usuarios navegar por catálogos de productos y realizar
compras de manera intuitiva. Al mismo tiempo, estarían trabajando en el Backend para
gestionar inventarios, procesar pagos y asegurar que la información del cliente se almacene
de manera segura.

Ser un desarrollador Fullstack no solo requiere habilidades técnicas, sino también una
mentalidad versátil y una capacidad para adaptarse rápidamente a nuevos desafíos y
tecnologías. Deben ser capaces de entender y trabajar en todas las capas de una aplicación,
desde el diseño hasta la implementación, y estar dispuestos a aprender constantemente
para mantenerse al día en un campo en constante evolución.

Roles y perfiles necesarios

1. Desarrollador Fullstack: Este profesional tiene conocimientos amplios en diferentes


áreas del desarrollo de software, incluyendo el Backend y el Frontend. Además de
escribir código tanto en el lado del servidor como en el lado del cliente, debe ser capaz
de diseñar la arquitectura general de la aplicación y tomar decisiones técnicas. Un
ejemplo de función sería desarrollar una aplicación de gestión de proyectos utilizando
Node.js en el Backend y React.js en el Frontend, donde el Fullstack Developer es
responsable de diseñar la arquitectura de la aplicación, implementar funcionalidades
clave y garantizar la integración eficiente entre las diferentes capas.
2. Ingeniero de Software Generalista: Este rol se centra en tener habilidades amplias
en diferentes áreas del desarrollo de software, lo que incluye tanto el Backend como
el Frontend. Debe ser capaz de adaptarse a diferentes tecnologías y resolver
problemas en todas las capas de la aplicación. Un ejemplo de función sería participar
en el desarrollo de una aplicación de comercio electrónico utilizando Ruby on Rails
en el Backend y Angular en el Frontend, donde el Ingeniero de Software Generalista
colabora con otros miembros del equipo para implementar nuevas características,
solucionar problemas de rendimiento y garantizar la calidad del código.

Tecnologías inherentes

• Todas las tecnologías mencionadas anteriormente tanto para el Backend como para
el Frontend.
• Conocimientos de arquitectura de software.
• Experiencia en diseño de sistemas escalables y mantenibles.
• Habilidades de resolución de problemas y pensamiento crítico.

Desarrollo y desafíos

Ser un desarrollador Fullstack implica tener una comprensión profunda de todas las partes
de una aplicación y ser capaz de trabajar en diferentes tecnologías y entornos. Los
desarrolladores Fullstack deben ser versátiles y estar dispuestos a aprender constantemente
nuevas tecnologías y técnicas para mantenerse actualizados en un campo en constante
evolución. Un desafío adicional es equilibrar las demandas de desarrollo del Backend y el
Frontend, lo que puede requerir una gestión efectiva del tiempo y la priorización de tareas.

Tendencias y futuro

• La tendencia hacia la especialización y la demanda de desarrolladores especializados


en Backend o Frontend sigue siendo fuerte, pero también hay una creciente demanda
de desarrolladores Fullstack que puedan trabajar en todas las capas de una aplicación.

• El desarrollo de aplicaciones móviles y la adopción de tecnologías como la inteligencia


artificial (IA) y el Internet de las cosas (IoT) están impulsando la necesidad de
desarrolladores con habilidades tanto en el Backend como en el Frontend.
• La integración de sistemas y la adopción de arquitecturas de microservicios están
cambiando la forma en que se desarrollan y despliegan las aplicaciones, lo que
requiere que los desarrolladores tengan una comprensión más amplia y profunda de
diferentes tecnologías y paradigmas de desarrollo.

Formación y desarrollo profesional

• Para convertirse en un desarrollador Backend, Frontend o Fullstack, es importante


obtener una formación sólida en lenguajes de programación, tecnologías web y bases
de datos, así como también adquirir experiencia práctica a través de proyectos
personales o colaborativos.

• La participación en comunidades de desarrollo, asistencia a conferencias y cursos de


formación continua son formas importantes de mantenerse actualizado en un campo
tan dinámico y cambiante como el desarrollo de software.

• Además de las habilidades técnicas, también es importante desarrollar habilidades


blandas como el trabajo en equipo, la comunicación efectiva y la resolución de
problemas, que son fundamentales para tener éxito en el campo del desarrollo de
software.

Diferencias entre Frontend y Backend

En el desarrollo de aplicaciones, el Frontend y el Backend representan dos componentes


esenciales que trabajan en conjunto para crear una experiencia completa para el usuario.
Cada uno cumple con funciones específicas y está diseñado para abordar diferentes
aspectos del proceso de desarrollo de software.

El Frontend, también conocido como el lado del cliente, es la parte de una aplicación o
sistema de software que interactúa directamente con el usuario final. Se centra en la
presentación visual de la aplicación y en facilitar la interacción del usuario con la misma.
Utiliza tecnologías como HTML, CSS y JavaScript, junto con marcos de Frontend como
React.js, Angular y Vue.js, para crear interfaces de usuario atractivas y funcionales. El
Frontend se encarga de crear una interfaz de usuario intuitiva y atractiva, que permita a los
usuarios interactuar con la aplicación de manera efectiva. Esto implica aspectos como la
disposición de elementos, la estética visual, la usabilidad y la accesibilidad.
Por otro lado, el Backend, también conocido como el lado del servidor, es la parte de una
aplicación o sistema de software que no es visible para el usuario final. Se centra en procesar
datos, gestionar la lógica de negocio y sostener la interacción con la base de datos. Utiliza
lenguajes de programación como Java, Python, Ruby y sistemas de administración de bases
de datos como MySQL, PostgreSQL o MongoDB. El Backend es responsable de procesar
las solicitudes del usuario, validar la información proporcionada, ejecutar las operaciones
necesarias y devolver los resultados pertinentes. Es como el motor detrás de escena que
impulsa las operaciones de la aplicación, desde el procesamiento de pagos hasta la gestión
de inventario y la autenticación de usuarios.

En cuanto a la simultaneidad, el Frontend gestiona las interacciones individuales de los


usuarios, ya que cada usuario tiene su propia copia de la aplicación, mientras que el Backend
utiliza varias estrategias para gestionar miles de solicitudes de usuarios al mismo tiempo. En
términos de almacenamiento en caché, el Frontend aprovecha los navegadores o las
aplicaciones cliente para almacenar en caché los archivos de la aplicación y mejorar el
rendimiento, mientras que el Backend almacena en caché los archivos en diferentes
servidores o en una CDN para mejorar el rendimiento global del sistema.

En cuanto a la seguridad, el Frontend se centra en flujos de trabajo de validación de entradas


de usuario y autenticación de usuarios, mientras que el Backend se enfoca en proteger
bases de datos, servicios y la aplicación misma mediante cifrado, autenticación segura y
prácticas de codificación seguras. En cuanto a los objetivos de desarrollo, el Frontend busca
crear interfaces de usuario totalmente funcionales y visualmente atractivas, mientras que el
Backend se centra en crear una arquitectura fiable que respalde el Frontend y asegure el
funcionamiento adecuado de la aplicación.

Conclusión

En conclusión, la investigación detallada sobre el desarrollo de aplicaciones web ha puesto


de relieve la importancia tanto del Backend como del Frontend en la creación de experiencias
digitales efectivas y satisfactorias para los usuarios. Ambos componentes desempeñan roles
complementarios pero fundamentales en el proceso de desarrollo de software.

El Backend, como la columna vertebral de las aplicaciones, se encarga de manejar los datos,
gestionar la lógica de negocio y garantizar la interacción eficiente con la base de datos. Su
función es crucial para procesar las solicitudes de los usuarios y proporcionar respuestas
pertinentes, garantizando así el funcionamiento adecuado de la aplicación. Los roles
especializados como el desarrollador Backend, el ingeniero de bases de datos y el arquitecto
de software son esenciales para crear sistemas robustos y escalables que satisfagan las
demandas del mercado actual.

Por otro lado, el Frontend actúa como la cara visible de la aplicación, proporcionando una
interfaz intuitiva y atractiva a través de la cual los usuarios pueden interactuar con la misma.
Su objetivo es convertir la complejidad del Backend en algo accesible y comprensible para
el usuario final, brindando una experiencia de usuario fluida y atractiva. Los roles como el
desarrollador Frontend, el diseñador de interfaz de usuario (UI) y el diseñador de experiencia
de usuario (UX) son fundamentales para crear interfaces atractivas y funcionales que
mejoren la satisfacción del usuario.

Además, la figura del desarrollador Fullstack emerge como un actor clave en el panorama
del desarrollo de software, capaz de moverse con destreza en todas las capas de una
aplicación y equilibrar las demandas tanto del Backend como del Frontend. Los
desarrolladores Fullstack son versátiles y están preparados para abordar una amplia gama
de tareas, desde el diseño de la interfaz de usuario hasta la gestión de bases de datos y la
implementación de la lógica de negocio.

Referencias Documentales

CCfprosario. (s.f.). Demanda de Ingeniería en Sistemas Computacionales: ¿Por qué es tan


alta? [Blog]. Recuperado de https://ccfprosario.com.ar/demanda-de-la-carrera-de-ingenieria-
en-sistemas-computacionales/

Aguayo. (s.f.). Frontend vs. Backend y su Influencia en la UX [Blog]. Recuperado de


https://aguayo.co/es/blog-aguayo-experiencia-usuario/frontend-vs-backend-influencia-ux/

Medium Multimedia. (s.f.). El desafío detrás del desarrollo backend: una mirada al
funcionamiento... [Blog]. Recuperado de https://www.mediummultimedia.com/web/por-que-
el-backend-es-dificil/

Pérez Ibarra, S. G., Quispe, J. R., Mullicando, F. F., & Lamas, D. A. (2021). Herramientas y
tecnologías para el desarrollo web desde el FrontEnd al backend. In XXIII Workshop de
Investigadores en Ciencias de la Computación (WICC 2021, Chilecito, La Rioja).

También podría gustarte