¿Desarrollos organizados?

Hubo un tiempo en el que empecé con un patrón que parecía el adecuado. El mini-fw que estaba empezando era como un billar: directorios estáticos por un lado, app por otro y el core como tercera banda -la más importante sin duda- donde trato de coleccionar -y reutilizar- funciones.

En la segunda entrega creamos el despachador de forma que todas las url's tenían que pasar por un index.php que controlaba todo el tráfico.

Y ahí se quedó el invento, al menos en lo que a publicaciones se refiere. En cuanto al código he avanzado bastante y pensaba que había seguido el camino correcto hasta que el maldito Apache Benchmark Tool se cruzó en todo esto. Empecemos por el principio... el centro neurálgico de la aplicación es el index.php, por donde pasa absolutamente todo. En él, además de despachar las URLs hago bastantes cosas más. Defino los directorios de la aplicación, incluyo la configuración de la web, las funciones de base de datos, las funciones de lenguaje, de debug, cargo el idioma adecuado y como paso final -si existe y tiene buenas pintas- cargo el controlador asociado a la acción correspondiente.

En el controlador sigo haciendo varias inclusiones dependiendo de lo que tenga que hacer, puedo incluir funciones de paginación, de cache, de envío de correo, de tratamiento de feeds...

Despues de todo ésto, el controlador incluye al modelo y llama a la función correspondiente de base de datos, ésta función devuelve un array formateado de forma que -normalmente- no hay que retocarlo.

Como último movimiento, el controlador llama a varias vistas por defecto (header, lateral) a la vista correspondiente pasándole los datos recogidos en el modelo y al pie de página (footer).

Pero cuando empiezo a mirar las peticiones por segundo que es capaz de resolver mi estructura (#11# como máximo en un servidor que debería llegar a las 100) veo que algo falla, demasiados includes, requires, demasiada organización, demasiada modularidad, ¿demasiado mvc?...

¿El caché como solución?. Me vale pero en parte, si una aplicación funciona *bien* sin caché (hablo de llegar a cerca del nivel máximo de peticiones por segundo), con caché sería una especie de orgasmo. Pero no por contar con caché tenemos que plantear el desarrollo de forma errónea ¿no?.

Me pongo a buscar información por la Red y además de ésto (que no es poco, lectura recomendable) no encuentro gran cosa, todo el mundo está enamorado con los maravillosos Frameworks de desarrollo. ¿Acaso no queda nadie como yo?, ¿acaso a nadie le interesa tener control de código y recursos de su máquina?.

Así que aquí estoy, a las tantas, divagando de si me corto las venas o me las dejo largas -dicen que es la moda-. En fin, si alguien tiene la solución ideal... ideas are welcomed, mañana será otro día.
code

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.