memoria zenphp - programador php

14
MEMORIA Abril08 Proyecto: zenphp Resumen de la planificación Juan Belón Pérez HTTPS :// FORJA . REDIRIS . ES / PROJECTS / CSL 2- ZENPHP /

Upload: juan-belon-perez

Post on 23-Jun-2015

1.535 views

Category:

Technology


4 download

DESCRIPTION

http://programadorphp.orgLa memoria del proyecto zenphp.

TRANSCRIPT

Page 1: Memoria Zenphp - Programador PHP

~ MÁS ~

MEMORIA

Abril’ 08

Proyecto: zenphp Resumen de la planificación

Juan Belón Pérez

H T T P S : / / F O R J A . R E D I R I S . E S / P R O J E C T S / C S L 2 - Z E N P H P /

Page 2: Memoria Zenphp - Programador PHP

MEMORIA DEL PROYECTO ZENPHP Página 1

ZENPHP: ALOJADO EN LA FORJA DE RED IRIS 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:

Page 3: Memoria Zenphp - Programador PHP

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

Page 4: Memoria Zenphp - Programador PHP

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í:

Page 5: Memoria Zenphp - Programador PHP

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:

Page 6: Memoria Zenphp - Programador PHP

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:

Page 7: Memoria Zenphp - Programador PHP

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.

Page 8: Memoria Zenphp - Programador PHP

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…

Page 9: Memoria Zenphp - Programador PHP

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.

Page 10: Memoria Zenphp - Programador PHP

MEMORIA DEL PROYECTO ZENPHP Página 9

El diagrama de clases del generador GTK es el siguiente:

Page 11: Memoria Zenphp - Programador PHP

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

Page 12: Memoria Zenphp - Programador PHP

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:

Page 13: Memoria Zenphp - Programador PHP

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:

Page 14: Memoria Zenphp - Programador PHP

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.