FRAMEWORK
Alum: Ángeles Marilú May Domínguez
¿Qué son los frameworks?
Dentro de la programación, un framework es un conjunto de herramientas, bibliotecas y normas que facilitan la creación de software. Permiten a los programadores evitar tareas repetitivas y concentrarse en la funcionalidad única de su proyecto. Al utilizar un framework, se pueden aprovechar soluciones probadas y buenas prácticas, lo que reduce los errores y acelera el tiempo de desarrollo.
La palabra inglesa frameworks es un término utilizado en programación para referirse a un tipo de estructura o entorno de trabajo. El cual hacen uso los desarrolladores para programar una aplicación. Su uso depende en gran parte de la complejidad de los procesos que llevará a cabo en el software, es por eso que se considera que su uso es prescindible. Sin embargo, los frameworks pueden ser herramientas muy útiles en el desarrollo y programación de aplicaciones informáticas. El uso de frameworks puede aligerar el trabajo de programación, a la vez que representa una muy útil herramienta que puede utilizarse en cada proyecto de desarrollo. Por lo general los frameworks se relacionan con un lenguaje de programación específico y sus elementos pueden ser muy variadas.
¿Para qué sirven?
El principal objetivo de los frameworks es resolver problemas recurrentes con abordaje genérico. Gracias a eso, el desarrollador web no necesita reescribir softwares, y se puede enfocar en resolver los problemas en sí. Los frameworks también ayudan en el desarrollo rápido y seguro de las aplicaciones. Sus funcionalidades permiten atender cualquier necesidad del profesional, aunque el framework seleccionado sea direccionado a la función deseada.
Ventajas
Entre las características comunes a todos los frameworks se pueden enumerar las siguientes:
- Fácil acceso a los datos. Indistintamente del tipo de formato de los datos, ya sea .txt, .xml, etc., los frameworks permiten que el ingreso sea factible a los datos a través de interfaces que componen las bases de datos.
- Los controladores. Se adaptan muy bien a las exigencias del proyecto que administran los eventos.
- Admiten distintos idiomas. Esto se debe a que permiten la integración de diferentes lenguajes en un proyecto de desarrollo de una aplicación.
- El framework se encarga de controlar y gestionar las URLs y sesiones.
- Cuentan con una gran seguridad. Los frameworks más usados disponen de forums de desarrolladores web que están empeñados en mantenerlos seguros, corrigiendo rápidamente las vulnerabilidades encontradas.
- Los frameworks cuentan con una curva de aprendizaje simplificada y que, normalmente, es pequeña. Incluso, los frameworks más utilizados tienen gran cantidad de documentación y una comunidad activa, lo que es importante a la hora de compartir y obtener conocimiento.
Tipos de Frameworks
Hoy en día existen infinidad de frameworks. Es por esta razón que la elección de un framework depende de diversos factores que ayuden al desarrollador a aislar los elementos que más se adaptan al tipo de proyecto que se encuentra desarrollando. Aqui te muestro 3 tipos de frameworks:
- Angular
Angular, desarrollado por Google, es un framework web de código abierto que se utiliza para construir aplicaciones de una sola página (SPA). Ofrece una arquitectura robusta que permite crear aplicaciones escalables y dinámicas. Angular se destaca por su poderoso sistema de enlace de datos bidireccional y su sólida comunidad de desarrollo. Los desarrolladores también lo utilizan para crear menús animados para páginas web HTML. El framework Angular ofrece una base para el desarrollo de aplicaciones robustas, escalables y optimizadas, que promueve además las mejores prácticas y un estilo de codificación homogéneo y de gran modularidad.
Angular usa la arquitectura Modelo-Vista-Controlador (MVC), que se usa en el desarrollo de aplicaciones web. Este tipo de arquitectura consta de:
- Modelo: la estructura de datos que administra la información y recibe información del controlador
- Vista: la representación de la información
- Controlador: responde a la entrada e interactúa con el modelo
Con el framework que vincula JavaScript y HTML, el código entre ellos se sincroniza. Este mecanismo facilita el trabajo de los desarrolladores porque reduce la cantidad de código necesario para escribir.
Características
- Estructura de código: Angular brinda plantillas; lo que te permite producir aplicaciones con código limpio. No solo te ahorra tiempo, sino que también facilita la modificación o reparación de las aplicaciones.
- Pruebas: el marco admite pruebas unitarias y de integración.
- Compatibilidad móvil y de escritorio: Angular puede ejecutarse en la mayoría de los navegadores web. No solo en computadoras de escritorio, sino también en dispositivos móviles.
- Enlace bidireccional de datos: dado que la arquitectura de Angular enlaza JavaScript y HTML, el código de ambos ya está sincronizado. Por lo tanto, el framework ahorra mucho tiempo a los desarrolladores.
¿Dónde se implementa este framework?
Ahora veremos algunos ejemplos de los sitios donde se implenta el famework:
- YouTube TV: La interfaz de usuario de YouTube TV, la plataforma de televisión en línea de YouTube, utiliza Angular.
- Microsoft Office Online: Partes de la interfaz de usuario de las aplicaciones de Microsoft Office Online, como Word y Excel, se construyen con Angular.
- Nike: El sitio web de Nike utiliza Angular para proporcionar una experiencia interactiva y dinámica.
- React
React es una librería para crear interfaces de usuarios con código abierto, es decir, que está a disposición de cualquier programador para que use sus recursos e incluso haga colaboraciones. Esta biblioteca fue lanzada en el año 2013, por los desarrolladores de Facebook, con base en el lenguaje JavaScript. Actualmente es una de las herramientas más utilizadas para crear páginas web porque su uso es bastante amigable y fácil de aprender. Sobre todo si ya se tienen conocimientos del lenguaje JavaScript, ya que la sintaxis que usa es muy similar. Cabe mencionar que necesita otros software para complementar las funciones de un sitio web, porque no es esencialmente un framework.
La función principal de React es desarrollar páginas web de una manera gratuita y sencilla gracias a sus componentes reutilizables. Estos hacen posible usar un mismo elemento en varias partes del sitio o en otros sitios sin necesidad de volver a escribir todo el código. Como resultado, los programadores web ahorran gran cantidad de tiempo y trabajo. React cuenta con un óptimo desempeño que se encarga de actualizar y renderizar los cambios realizados de forma automática. Esta cualidad permite a los programadores desarrollar sus códigos sin mayores contratiempos en el modelo en objetos para la representación de documentos (DOM).
Características
- La sintaxis que usa React es el JavaScript XML (JSX), el cual es una combinación del lenguaje HTML y el JavaScript, por lo que también se considera una extensión. Así que la relación que hay entre estos es bastante estrecha.
- Regularmente dentro de la programación web se manejan tres carpetas: la de la estructura de la página web (HTML), la de la presentación de la interfaz (CSS) y la del comportamiento de la misma (JS). Por su lado, React decidió juntar todas estas en un mismo lugar, de manera dinámica, para dar lugar a los componentes. Estos son partes de la interfaz del usuario que es independiente y que se puede reutilizar en otro lugar del sitio web.
- Componentes funcionales. Son los más usados: representan una función de JavaScript, retornan a un elemento JSX de React, comienzan con mayúscula y pueden recibir valores.
- Componentes de clase. Se refiere a los componentes que están escritos en JavaScript moderno de una manera más elaborada: retornan a un elemento JSX a través de un método render y también es posible que se les asigne valores.
- Ciclo de vida: Dentro de React los componentes pasan por una serie de etapas durante su creación. Regularmente se divide en tres fases esenciales: montaje, utilización y desmontaje. A través de ellas suceden los siguientes métodos que se ejecutan para programar una interfaz de usuario.
- Constructor. Es donde se crea el estado de un componente, enlaza eventos y setea variables globales.
- ComponentWillMount. Se ejecuta antes que el componente sea montado, permite modificarlo y limpia la demanda de dependencias. No hace llamados a API ni suscripción a eventos.
- Render. Aquí se toman las propiedades, el estado y el contexto. Es cuando ya se empieza a mostrar la imagen de la interfaz y refleja los cambios realizados en ella.
- ComponentDidMount. Este método se ejecuta cuando el componente ya se ha renderizado; es ideal para llamar a API e iniciar la carga remota de datos, enlazar eventos y modificar el estado.
- Actualización. Se puede repetir varias veces para realizar cambios en las propiedades de los estados, renderizar los componentes y preparar actualización del diseño de interfaz de usuario (UI).
- Desmontar. Se aplica con el método ComponentWillUnmount para dejar de escuchar eventos, quitarse de un WebSocket y cancelar peticiones HTTP. Es una especie de limpieza.
- ComponentDidCatch. También conocido como control de errores, se activa cuando detecta equivocaciones al montar un componente.
¿Dónde se implementa este framework?
Ahora veremos algunos ejemplos de los sitios donde se implenta el famework:
- Facebook: Como el creador de React, Facebook utiliza React extensivamente en sus propios productos, incluyendo la plataforma principal de Facebook.
- Uber: Uber utiliza React en varias partes de su aplicación, incluyendo su sitio web y herramientas internas.
- WhatsApp Web: La versión web de WhatsApp utiliza React para crear una experiencia de usuario similar a la aplicación móvil.
- Symfony
Symfony es un framework diseñado para desarrollar aplicaciones web basado en el patrón Modelo Vista Controlador. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Symfony es un marco de desarrollo web de código abierto en PHP que me parece muy potente y versátil. Fue creado por Fabien Potencier y se ha convertido en uno de los más populares de su clase y respetados en la comunidad de desarrollo web. Está diseñado para facilitar la construcción de aplicaciones web robustas y escalables utilizando PHP.
Características
- Su código, y el de todos los componentes y librerías que incluye, se publican bajo la licencia MIT de software libre.
- La documentación del proyecto también es libre e incluye varios libros y decenas de tutoriales específicos.
- Aprender a programar con Symfony te permite acceder a una gran variedad de proyectos: el framework Symfony2 para crear aplicaciones complejas, el micro framework Silex para sitios web sencillos y los componentes Symfony para otras aplicaciones PHP.
- Symfony es el proyecto PHP más activo, lo que garantiza que nunca te quedarás atrapado en un proyecto sin actividad. Además, el líder del proyecto, Fabien Potencier, es la segunda persona más activa del mundo en GitHub.
- Aunque en su desarrollo participan cientos de programadores de todo el mundo, las decisiones técnicas importantes siempre las toma Fabien Potencier, líder del proyecto. Esto evita el peligro de que surjan forks absurdos y la comunidad se fragmente.
- Los componentes de Symfony son tan útiles y están tan probados, que proyectos tan gigantescos como Drupal 8 están construidos con ellos.
¿Dónde se implementa este framework?
Ahora veremos algunos ejemplos de los sitios donde se implenta el famework:
- Trivago: El popular sitio web de búsqueda y comparación de precios de hoteles, Trivago, ha utilizado Symfony en parte de su desarrollo.
- Spotify Backstage: La herramienta de código abierto Backstage de Spotify, diseñada para la administración y visualización de activos de software, utiliza Symfony en su estructura.
- OroCRM y OroPlatform: OroCRM y OroPlatform son aplicaciones de código abierto basadas en Symfony que ofrecen soluciones de gestión de relaciones con los clientes (CRM) y plataformas de desarrollo respectivamente.
Conclusión
En la actualidad, el uso de frameworks para el desarrollo web, como lo son Angular, React, y Symfony, ha demostrado ser fundamental para la creación eficiente y sostenible de las aplicaciones y sitios web. Estos frameworks proporcionan un conjunto estructurado de herramientas, patrones y prácticas que simplifican el desarrollo, mejoran la mantenibilidad del código y permiten una escalabilidad más efectiva. Al igual que nos ayuda y facilita el uso de la programación e información que podamos necesitar para crear nuestro proyecto.