POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Memoria Zenphp - Programador PHP
1. MEMORIA
Proyecto: zenphp
Resumen de la planificación
Juan Belón Pérez
Abril’ 08
~ MÁS ~
HTTPS://FORJA.REDIRIS.ES/PROJECTS/CSL2-ZENPHP/
2. MEMORIA DEL PROYECTO ZENPHP Página 1
Z E N P HP : A L OJ AD O E N LA F OR JA D E RE D I RI S II Concurso Universitario
Internacional de Software Libre
Memoria del Proyecto
POR: Juan F. Belón Pérez-H. jbelon[arroba]correo[.]ugr[.]es
UNA BREVE INTRODUCCIÓN
Para saber qué es zenphp, lee la introducción del proyecto.Con éste artículo quiero proponer una
pirámide real del programador de un framework y explicar los procesos que se llevan a cabo…Según el
creador de ésta página, la pirámide “alimenticia” de un programador sería algo como esto:
3. MEMORIA DEL PROYECTO ZENPHP Página 2
Sin embargo no estoy de acuerdo ,realmente la pirámide de un programador empieza siendo más
bien algo más como lo siguiente:
Al menos ,para escribir zenphp, la base de la pirámide original está invertida, pasé mucho tiempo
leyendo sobre cómo funciona un framework si,…pero NO TANTO como pensando,diseñando e
implementando código generalizable para que sea reutilizable mil veces…
A continuación se da un breve resumen de las tareas realizadas con sus correspondientes diagramas
de Gantt (tiempos y porcentajes) para finales de Mayo.
ÍNDICE:
1. ANÁLISIS DE LAS BASES DE OTROS FRAMEWORKS
2. DISEÑO DE LA BASE DEL FRAMEWORK ZENPHP
3. IMPLEMENTACIÓN DE LA BASE DEL FRAMEWORK ZENPHP
4. PRUEBAS DE EFICIENCIA: COMPARATIVAS ENTRE FRAMEWORKS
5. OPTIMIZACIÓN DEL FRAMEWORK EN FUNCIÓN A RESULTADOS
6. GENERACIÓN DE DOCUMENTACIÓN,MANUALES,TUTOS,ETC
7. DISEÑO E IMPLEMENTACIÓN DE LOS GENERADORES DE CÓDIGO
8. GENERAR CARTUCHOS: WEBS Y EJEMPLOS (ES FREESOURCE)
9. FASE FINAL: GESTOR DE CONTENIDOS O CMS (EN ABRIL)
10. RESULTADOS
11. INFORMACIÓN DE INTERÉS
4. MEMORIA DEL PROYECTO ZENPHP Página 3
UN BREVE RESUMEN DE LAS FASES DEL PROYECTO
La historia del proyecto se puede resumir en las siguientes etapas:
1. Leer las bases de todos los frameworks posibles, incluso hasta línea a línea en varias
partes,para comprender por qué se hacen las cosas de esa forma, llegar a pensar como ha
pensado el creador, una vez llegado al punto de su comprensión intentar asimilarlo y usar
partes de su framework como ideas y a veces incluso usar el código directamente, es bastante
simple.
La primera fase gráficamente sería algo como ésto:
2. La fase inmediatamente posterior es ,lógicamente, diseñar el framework, la jerarquía de
clases, la estructura, la forma en la que se organiza la información…para ello se suele realizar
en la Ingeniería Informática un ciclo de iteraciones de diseño, gráficamente queda así:
5. MEMORIA DEL PROYECTO ZENPHP Página 4
El resultado de los diagramas de diseño puede leerse en la sección de documentos,
por ejemplo, el diagrama de clases:
6. MEMORIA DEL PROYECTO ZENPHP Página 5
Por supuesto, sólo están las clases principales, algunas de ellas van asociadas entre sí,pero es
evidente cómo se conectarían…
3. Tras el diseño de las clases y la jerarquía,más o menos en mitad de la segunda iteración
comienza la implementación del conjunto base de clases del framework, donde interviene la
primera fase y segunda fase,…queda gráficamente asi:
4. La tercera iteración lleva consigo los primeros tests (unidades de prueba con PHP), dichas
pruebas son clases y aplicaciones ,algunas son webs completas freesource como
http://aza.granadazen.com y otras que se pueden encontrar en la sección de documentación
del proyecto. Gráficamente queda asi:
7. MEMORIA DEL PROYECTO ZENPHP Página 6
5. Las pruebas nos sirven para utilizar el profiler y con él determinar los puntos débiles del
framework sobre los que trabajar y mejorar las prestaciones, esto es, optimizar el framework
con todas las técnicas que se nos ocurran, en este mismo blog se pueden encontrar dichas
técnicas.
8. MEMORIA DEL PROYECTO ZENPHP Página 7
Diagrama de clases del generador y compilador zen_POA:
6. Al mismo tiempo debemos ir generando en la medida de lo posible (sin dejar nada para
mañana) la documentación de cada versión estable así como los manuales, que se irán
colocando en el directorio de la web de la forja del proyecto por medio de SCP al igual que el
código de las pruebas en los foros y los manuales y tutoriales en el Wiki…
9. MEMORIA DEL PROYECTO ZENPHP Página 8
7. Una vez que he podido escribir aplicaciones con el framework de una forma rápida y sencilla,
usando pocas líneas, cuando he visto que todo está siendo fluido y no hay que modificar
grandes porciones de código ni reescribir por completo ninguna parte o añadir todo un bloque
para automatizar un proceso,es entonces cuando genero el generador de aplicaciones
orientado a aspectos, y una vez terminado este el generador de aplicaciones basado en
zen_POA escrito en PHP/GTK.
10. MEMORIA DEL PROYECTO ZENPHP Página 9
El diagrama de clases del generador GTK es el siguiente:
11. MEMORIA DEL PROYECTO ZENPHP Página 10
8. Por último queda cargar los “cartuchos, i.e., modelos de aplicaciones que lo tienen todo, en
los que cambiaremos un par de opciones, añadiremos un par de campos para tener
aplicaciones web completas generadas en un par de clicks con el generador del paso 7, son los
proyectos freesource que sirven de modelos iniciales a generar como base.
9. Tras tener los cartuchos puedo empezar con el gestor de contenidos ,algo en plan Joomla
pero más sencillo, que permita mantener la libertad al programador ,como siempre en este
proyecto y además con la simplicidad de zenphp
12. MEMORIA DEL PROYECTO ZENPHP Página 11
10. Resultados de las fases
Los resultados obtenidos se miden en el número de descargas realizadas de los ficheros
de las distintas versiones de zenphp,la actividad en cuanto al uso de los foros, la creación
de documentos, y la actividad en las tareas; así como también se ha de constatar la
participación en la comunidad: encuestas, código en webs de la comunidad PHP,
preguntas y respuestas, etc.
En cuanto a las descargas, han ido aumentando a lo largo del desarrollo del proyecto
Sin embargo el número de documentos ha crecido exponencialmente como podemos ver
en la siguiente gráfica:
13. MEMORIA DEL PROYECTO ZENPHP Página 12
El uso de los foros ha tenido más altibajos ,ahora está resurgiendo gracias a las
comunidades de PHP que se están empezando a interesar por el proyecto:
14. MEMORIA DEL PROYECTO ZENPHP Página 13
Gracias a la división del proyecto en subproyectos se ha podido organizar la planificación
de forma que se han podido completar los objetivos (normalmente) para las fechas
deseadas, sin embargo ha habido muchas tareas que se han tenido que aplazar por
imprevistos y problemas no esperados.
Se puede ver como se van añadiendo tareas según se va progresando y se van cerrando
dependiendo de los resultados obtenidos después de la realización.
11. Información de interés
Para comenzar con zenphp usa el Wiki, puedes acceder a él a través del enlace: wikipedia de
googlecode.