¿Conoces el Framework que utilizas?

¿Conoces el Framework que utilizas?

anteriormente sobre varios Frameworks que existen en el mercado, y su función como herramientas que permiten agilizar y acelerar el desarrollo de aplicaciones web. Confeso que soy un entusiasta de este tipo de herramientas. Hoy en la comida, comentábamos con Dani  sobre cómo puede ser problemático desarrollar utilizando un Framework, sin saber qué es lo que está pasando en los motores. Entonces me pareció buena idea hacer la reflexión:

A día de hoy, con tantas Bibliotecas y APIs ¿es realmente necesario conocer la Arquitectura del Software, o aprender el Framework ya es suficiente?
La cuestión es que algunas veces has tenido que aprender algún Framework por necesidad del proyecto, pero no tienes mucha idea de cómo es su arquitectura. O incluso sabes como es la arquitectura, pero el framework es tan complejo que es una limitación en si mismo y aunque no fuera recomendable por los creadores del mismo, has tenido que tocar en el core para poder implementar alguna funcionalidad crítica. El debate sobre aprender Frameworks o/y  la Arquitectura está caliente en la web.  Obviamente todos tienen argumentos para lo que creen ser mejor. Además creo  que hay una confusión, entre lo que es una cosa y lo que es la otra. Para algunos la Arquitectura es la teoría y el Framework la implementación y esta teoría sirve, por ejemplo para saber qué hacer cuando 500 usuarios se conectan simultáneamente en tu aplicación, donde son importantes temas como escalabilidad, fiabilidad, disponibilidad, o rendimiento. ¿A ti qué te parece? Una definición que se ve mucho en los foros es la que utiliza la metáfora de la construcción de la casa en que necesitamos un diseño de la casa, la arquitectura y los materiales (ladrillos, cementos, tornillos, etc…) el framework. Sepas o no qué es una cosa y qué es la otra, creo que no puedes seguir desarrollando sin conocer tu framework. Sobretodo si sabes que tu proyecto puede escalar. Miremos un momento que nos dice el wikipedia sobre framework y arquitectura. 
“Un framework o infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto”
“La arquitectura de software, tiene que ver con el diseño y la implementación de estructuras de software de alto nivel. Es el resultado de ensamblar un cierto número de elementos arquitectónicos de forma adecuada para satisfacer la mayor funcionalidad y requerimientos de desempeño de un sistema, así como requerimientos no funcionales, como la confiabilidad.”
O sea, si una Biblioteca es un conjunto de funciones reutilizables, que puedes usar en diferentes aplicaciones, un Framework sería un conjunto de bibliotecas para configurar las aplicaciones web, según unos principios básicos de la misma, la Arquitectura.  Por lo tanto, conocer la arquitectura te permite conocer el framework.  Cuando tengas que escoger un framework no te olvides del objetivo de los mismos:  Esconder las secciones de código que deben ser incluidos en diferentes partes, que tendrán  poco o ningún cambio, y también esconder el código de la infraestructura responsable por gestionar las peticiones y respuestas HTTP. Para evitar problemas en el desarrollo de aplicaciones con algún de los frameworks más populares (ASP.NET, Ruby on Rails, Angular JS, o Symfony), es importante tener en cuenta, entre otras cosas el patrón según el cual este fue proyectado.  El patrón MVC (Modelo-Vista-Controlador) es un ejemplo. MVC sería una forma de separar la lógica de las diferentes responsabilidades de la aplicación. La mayoría de los frameworks que conozco nacieron de la necesidad de un determinado proyecto y posteriormente este código se puso a la disposición de los demás desarrolladores como código abierto. Esto significa que, aunque su implementación sea, por ejemplo, una arquitectura MVC y ya domines el MVC, es importante hacer un buen análisis de la arquitectura para conocer los principios de diseño detrás de la infraestructura, la integración, la seguridad, etc… Es muy posible que el framework haya sido desarrollado para lograr un determinado objetivo, que no tenga nada que ver con el objetivo de tu proyecto. En el proyecto que estás trabajando seguramente has pasado por la fase en qué necesitas entender los diferentes aspectos que integran tu software. Serias capaz de describir qué componentes tiene la arquitectura de tu software, que hace cada componente? ¿Cómo se comportan dichos componentes a lo largo de tiempo y como es su interacción? Saber contestar a estas preguntas definirá si utilizar un determinado framework te permite acelerar el proceso de desarrollo o empeorar aún más los tiempos de entrega. Fuentes: ]]>

Leave A Reply

Tu dirección de correo electrónico no será publicada.

*

Déjate sorprender...

Gestionar el consentimiento de las cookies

Para ofrecerte la mejor experiencia de uso, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento a estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.

Funcional

Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.

Estadísticas

El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.

Marketing

El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.