Sesión 17. FRAMEWORKS Luisa Fernanda Rincón Pérez 2014-2
Qué es un framework de desarrollo? Es un conjunto de clases que colaboran y pueden ser extendidas y personalizadas para usos específicos. Representa una implementación base para un conjunto de problemas relacionados. (Johnson and Foote 1988)
Cuál es el objetivo principal de los frameworks? Lograr que los desarrolladores se concentren en los aspectos funcionales del problema a resolver sobre los aspectos técnicos que fueron resueltos anteriormente
Cuáles son los beneficios de usar frameworks? Define una estructura predefinida de proyecto Estandariza el desarrollo y habitualmente se acogen a las mejores prácticas Ofrece flexibilidad, y agilizan habitualmente el desarrollo Resuelven problemas conocidos que ocurrieron con anterioridad Soportan buenas prácticas de seguridad de aplicaciones Costo. La mayoría son de uso libre
Cuáles son las desventajas de usar frameworks? Se aprende el framework no el lenguaje. Ejm programar con Jquery no es conocer javascript Dependencia del código fuente respecto al framework Demanda de recursos en ocasiones superior a la necesaria Difícil modificar código interno del framework y detectar errores cuando se relaciona con componentes del framework Curva de aprendizaje
Características de los frameworks Proveen puntos específicos de extensión a menudo llamados plugins ( Ejm Eclipse)
Tipos de frameworks Verticales Horizontales Sirven para una función específica. Son completos. Ejm Hibernate Sirven para realizar una aplicación completa. Ejm cakephp, Spring, Ruby On Rails
Tipos de frameworks II Caja blanca Clases abstractas cuyo comportamiento se personaliza sobre-escribiendo o adicionando nuevos métodos por medio de subclases Dan flexibilidad a la implementación. Requieren conocimientos de la estructura interna del framework Caja negra Separan las extensión por medio de plugins. Los desarrolladores solo necesitan entender la interfaz y no la implementación interna del framework. Disminuye la flexibilidad pero restringe también el acoplamiento.
Cuáles son las tareas que simplifican los frameworks? Ajax Mapeo a bases de datos
PHP Comparación de algunos frameworks Fuente: http://www.bestwebframeworks.com/compare-web-frameworks/php/ Ruby
Java http://www.bestwebframeworks.com/compare-web-frameworks/java/
HTML 5 PYTHON
Principio de inversión de dependencias https://www.youtube.com/watch?v=dzvftnbuk3e
Principio de inversión de dependencias A. Las clases de alto nivel no deberían depender de las clases de bajo nivel. Ambas deberían depender de las abstracciones. B. Las abstracciones no deberían depender de los detalles. Los detalles deberían depender de las abstracciones.
Qué es un patrón de arquitectura? Búsqueda de soluciones a problemas comunes en el desarrollo de software, pero con mayor nivel de abstracción que los patrones de diseño
Qué es un patrón de arquitectura? Búsqueda de soluciones a problemas comunes en el desarrollo de software, pero con mayor nivel de abstracción que los patrones de diseño
Qué es el patrón de arquitectura MVC? El software se divide en tres piezas: el modelo, la vista y el controlador
Ejemplo aplicación web Modelo Conexión a bd Sentencias SQL Representación objetos de dominio Vista CSS HTML Javascript Controlador PHP, Ruby, Python
Beneficios de MVC Separación de conceptos y de tecnologías Facilidad de mantenimiento
Algunas fuentes http://www.1stwebdesigner.com/design/proscons-frameworks/ http://www.emprenderalia.com/deberiasusar-un-framework-para-tu-proyecto-web/ http://www.bestwebframeworks.com/ Apel, S., Batory, D., Kästner, C., & Saake, G. (2013). Feature-Oriented Software Product Lines: Concepts and Implementation (p. 308). Springer Berlin Heidelberg. Retrieved from http://link.springer.com/content/pdf/10.1007 /978-3-642-37521-7.pdf