unobstrusive web dev

En el desarrollo web, cuando se trata de sites muy simples, se puede usar HTML, CSS, javascript y flash.

Para volver el site dinámico, usualmente ese trabajo debe ser reescrito, para expresarlo en términos del framework que estemos usando.

Por ejemplo, para usar PHP, en la forma simple, se puede ingresar código a la página y luego renombrarla, para darle la extensión .php.

Para usar un framework PHP de tipo MVC, hay que definir vistas que reproduzcan lo que se se veía en el diseño estático, y colocar placeholders que se reemplazan con el contenido generado con controladores y modelos.

Para usar un framework PHP de tipo Drupal, es similar. Hay que definir templates que reproduzcan lo que se veía en el diseño estático, y colocar placeholders que se reemplazan con el contenido generado con módulos.

Si luego decido cambiar de framework, hay que volver a definir las vistas/templates y la colocación de placeholders. Es como traducir el trabajo de un idioma a otro.

Durante varios años la gente viene trabajando de ese modo. Hay mucha discusión sobre reutilización de código, representación de base de datos como objetos, optimización del acceso y otros temas sofisticados de programación. Sin embargo, me parece que es una cuestión básica resolver la falta de reutilización de los diseños estáticos.

Pensemos en un sistema de vistas/templates que sea independiente del framework.

Se me ocurre que lo más simple es respetar el diseño estático todo lo que se pueda y actuar desde afuera, de manera unobstrusiva.

Es decir, alguien desarrolla un site completamente funcional con contenido estático de muestra. Una maqueta. Luego, un framework unobstrusivo entra en acción, haciendo en las páginas los reemplazos de contenido que se requieran, respetando los archivos, para que otro framework unobstrusivo pueda hacer lo mismo.

Así, uno podria encargar la programación web estática a una agencia y la programación web dinámica a otra (u otras). Si quiero probar otro framework unobstrusivo, adelante, la web estática está tal cual.

uphp es un framework PHP que contiene esa idea. Tomo un sitio estático que funciona y le voy agregando el comportamiento dinámico desde afuera, con ayuda de QueryPath, que me permite seleccionar elementos del documento web y modificarlos con lo que quiera, por ejemplo, con el resultado de un proceso.

Si tuviera luego udrupal, ujsp, o cualquier otro framework unobstrusivo similar, el trabajo de portabilidad se haría sólo en la parte de programación, y la maqueta estática y todo lo que tiene permanecería tal cual.

Se podría ir un poco más allá... ¿y que tal si se lograra evitar tener que reescribir un módulo de una versión de un framework a otra?.
Hay soluciones de envío de email, pdf, excel, multimedia, etc, implementadas de modo particular en cada framework porque no son muy compatibles un framework con otro.
Imagine que eso no importara y se pudiera correr muchos frameworks en simultáneo sobre la misma maqueta estática y cada uno hiciera una parte respetando a los demás.

Comentarios

Lee también

Cardumen de conocimientos

Email con más opciones

Polvos Virtuales

Sistema con convención en lugar de configuración

Los recuerdos ahí afuera, o la mente antena

TDD para educación

Imagino... imaginemos

Planificación e Impulso

Pintando como en el mundo real