|
El ataque de los Frameworks
Los frameworks suelen ser
implementaciones de patrones de
diseño conocidos, aderezados con
funciones que asisten al
desarrollador.
¿Qué es un 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).
Autor: Ismael Celis
http://www.estadobeta.com/2005/11/20/el-ataque-de-los-frameworks/
Gentileza:
novedades@webtaller.com
paginadigital |