11 nov. 2009

Los framework

Un framework en el contexto de la programación es un set de funciones o código genérico que realiza tareas comunes y frecuentes en todo tipo de aplicaciones (creación de objetos, conexión a base de datos, limpieza de strings, etc). Esto brinda una base sólida sobre la cual desarrollar aplicaciones concretas y permite obviar los componentes más triviales y genéricos del desarrollo.
En general, los frameworks son construidos en base a lenguajes orientados a objetos. Esto permite una mejor modularización de los componentes y óptima reutilización de código. Además, en la mayoría de los casos un framework implementará uno o más patrones de diseño de software que aseguren la escalabilidad del producto. Un patrón de diseño es un set de metodologías probadas para resolver problemas comunes en el diseño de aplicaciones. Una convención, si se quiere, que facilita la comprensión de la arquitectura de la aplicación.
Hace mucho existen “frameworks” que facilitan el desarrollo de aplicaciones en diversos ambientes y lenguajes de programación. En el mundo de Java existe Struts, un ambiente muy estable y poderoso, y la iniciativa .NET de Microsoft es una especie de super-framework inspirado en Java. En general, sin embargo, la complejidad de estos ambientes ha relegado el uso de frameworks al desarrollo de aplicaciones grandes y costosas.

Los frameworks y la Web

En el mundo de las “aplicaciones web” menores, habitado por diseñadores gráficos, programadores autodidactas, bajos presupuestos y agendas apretadas, es tradición el uso de lenguajes “de scripting” o interpretados como Perl, Asp o PHP diseñados para transar la potencia de lenguajes de más bajo nivel por mayor facilidad de uso y flexibilidad. Esto permite el rápido desarrollo de aplicaciones, pero al mismo tiempo tiende a producir código de difícil mantención y poco eficiente.
El uso de frameworks en la construcción de aplicaciones pequeñas fue históricamente escaso hasta recientemente cuando, en medio de la “revolución web 2.0″, una compañía de 5 personas lanzó BaseCamp, un servicio de administración de proyectos basado en web y construído sobre Rails, un framework de desarrollo web para el poco conocido pero increíblemente versátil lenguaje “Ruby“.
Rails (más conocido como Ruby on Rails) permite crear aplicaciones web con asombrosa facilidad. Esto, porque el framework ya viene con librerías y funciones que abstraen casi toda la complejidad de trabajar con bases de datos, definir clases e instanciar objetos. Parte de esto se debe a que Ruby es natívamente orientado a objetos (a diferencia de PHP o VBScript) y diseñado para escribir el mínimo de líneas de código posible. Pero la magia de Ruby on Rails está en Rails, el framework, y en su uso inteligente de patrones de diseño conocidos.
En el ámbito del desarrollo para la web, los patrones de diseño más utilizados son aquellos que se centran en separar la presentación (páginas html, css) de la lógica o backend. Esto porque un típico equipo de desarrollo consiste en programadores por un lado y diseñadores por el otro. Separando efectívamente las tareas de cada uno mediante una arquitectura estándar comprendida por todos -un patrón de diseño- facilita enórmemente el trabajo del equipo.
De estos patrones, el más popular es MVC (Modelo Vista Controlador), muy conocido en el mundo de Java y el implementado por Ruby on Rails.
Como su nombre lo dice, MVC consiste en separar lo mejor posible las capas de Modelo (los objetos que interactuan con la base de datos y efectúan los procesos pesados o “lógica de negocios”), la Vista (la presentación final de los datos procesados al cliente, comúnmente en formato HTML) y el Controlador (la capa que se encarga de recibir el input del usuario, delegar el trabajo a los Modelos apropiados e invocar las Vistas que correspondan).
Los frameworks, entonces, suelen ser implementaciones de patrones de diseño conocidos, aderezados con funciones que asisten al desarrollador. Con la aparición de Ruby on Rails, muchas comunidades de desarrolladores -especialmente la de PHP- se han entusiasmado y estan apareciendo decenas de frameworks para ese lenguage. Los más recientes, como Solar o Cerebral Cortex, aprovechan el avanzado modelo de clases y objetos de PHP5, la última versión.

¿Necesito un Framework?

Pero un framework, a veces, puede ser más de lo que se necesita para ciertos proyectos. Siendo plataformas genéricas diseñadas para casi cualquier tipo de desarrollo, para un proyecto pequeño o urgente la cantidad de opciones y dificultad de instalación de un framework pueden ser abrumadores (la mayoría de los frameworks que he visto para PHP requieren actualizaciones de PEAR, lo que no siempre es posible en servidores compartidos). De cualquier modo, un frameworks es la forma en que un desarrollador decide solucionar sus proyectos, un ambiente de trabajo. En esencia un framework es la aplicación rigurosa de los principios básicos que hacen la diferencia entre un programa bien construído y uno malo: economía, modularización, separación de tareas. Incluso si decides no ocupar un framework existente, aplicando estos principios a tu trabajo tarde o temprano terminarás creando el tuyo propio.

Algunos recursos

En este link encontrarán una lista de Frameworks Open Source y temas relacionados que he encontrado, para PHP 4 y 5. Además recomiendo este breve tutorial que muestra una sencilla implementación del patrón MVC en PHP4 (en inglés).


Comparte este post
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Stumble Upon
  • Share to Evernote
  • Share to Blogger
  • Share to Email
  • Share to Yahoo Messenger
  • More...

0 comentarios

Deja de reir y has un comentario.

:) :-) :)) =)) :( :-( :(( :d :-d @-) :p :o :>) (o) [-( :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ :-$ (b) (f) x-) (k) (h) (c) cheer

 
© 2011 Bloggero en Linea
Designed by BlogThietKe Cooperated with Duy Pham
Released under Creative Commons 3.0 CC BY-NC 3.0
Posts RSSComments RSS
Back to top