Un script para gobernarlos a todos
Desde hace varios meses, vengo desarrollando un script / aplicación que combina elementos de CMS con elementos propios de un framework, al que he puesto por nombre Stormie (en honor a Susan Storm, aka La mujer invisible), y que sirve para desarrollar tiendas online de forma cómoda y rápida. Esta es la primera parte, a modo de introducción, de su post - mortem. (Versión actual 1.07.01)
La idea
Si hay algo que incordia a un programador, es repetir una y otra vez lo mismo. En una empresa, además, esto se traduce en importantes retrasos en la salida de proyectos y en una mínima eficiencia en la gestión de recursos. Y cuando se trata de una tarea más o menos uniforme, puede ser un verdadero trauma. Imaginemos que tenemos que desarrollar 5 tiendas online, cada una de una tématica diferente. Crearíamos una y luego la clonaríamos, cambiando lo necesario. Dicho así no parece tampoco nada tedioso, pero imaginemos que, por ejemplo, tenemos que andar tocando en los 4 sitios restantes los nombres de cada campo, las consultas, el diseño… se pierde mucho tiempo en algo sistemático…
Stormie, por tanto, nació para solventar ese problema, siendo capaz de controlar cualquier tipo de tienda online, aislando código (php) de diseño (xhtml - css) y haciendo que la productivad entre un equipo de programadores y diseñadores, además del tiempo de desarrollo, sea más que interesante.
Comenzando
Las tareas de diseño llevaron un par de días. Había que pensar en una forma de parametrizar lo más posible los elementos de una tienda online, de modo que el script pudiese adaptarse prácticamente a cualquier petición o necesidad del cliente. El asunto se centraba en dos partes: datos y diseño.
Diseño: uno de los puntos fuertes de la aplicación es que permite adaptarse a cualquier diseño, puesto que todo el código xhtml se define en plantillas. Los datos dinámicos se calculan en los scripts, pudiendo ser llamados desde la propia plantilla y siendo reemplazados por el parser de la aplicación.
Dos ventajas fundamentales de este sistema es que un diseñador podría tocar los ficheros .html y adaptarlos a su CSS, sin necesidad de que el programador inserte ese código en los .php a través de echos o afines.
Y otra derivada de ésta, es que se desliga por completo la relación del estilo visual y la disposición de elementos en la página web de todo el cálculo de los datos a mostrar, dando una mayor sensación de orden e integridad.
Datos: los diferentes datos que puede manejar una tienda, puede diferir mucho de aquellos que maneje otra. Por ello, hubo que dar varias vueltas a cómo se guardarían los datos y a cómo, de alguna manera, se podían definir de forma genérica, para que el script los tratáse de forma automática, sin necesidad de estar tocando código alguno.
La solución, a grandes rasgos, fue crear una serie de tablas standar, con la suficiente flexibilidad de adaptación y, para aquellos datos imprebisibles, hacer que con las funciones de la aplicación fuese fácil añadir módulos o código adicional.
Próximo capítulo
Datos. Tablas. Relaciones.