SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
MEMORIA




  Proyecto: zenphp
       Resumen de la planificación
                       Juan Belón Pérez




                                            Abril’ 08




                                  ~ MÁS ~
HTTPS://FORJA.REDIRIS.ES/PROJECTS/CSL2-ZENPHP/
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:
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
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í:
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:
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:
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.
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…
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.
MEMORIA DEL PROYECTO ZENPHP                                               Página 9




               El diagrama de clases del generador GTK es el siguiente:
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
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:
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:
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.

Más contenido relacionado

Destacado

Tutorial A Z A - Programador PHP
Tutorial A Z A - Programador PHPTutorial A Z A - Programador PHP
Tutorial A Z A - Programador PHPJuan Belón Pérez
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Wilian
 
Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Wilian
 
Iniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebIniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebRightster
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebRightster
 
Iniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorIniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorRightster
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzadodrakatiadiaz
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Wilian
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosRightster
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQLWilian
 
Prueba6.pdf
Prueba6.pdfPrueba6.pdf
Prueba6.pdfjcarrey
 
Curso php - capitulo 1 (introducción)
Curso php - capitulo 1 (introducción)Curso php - capitulo 1 (introducción)
Curso php - capitulo 1 (introducción)yanburbano
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLRightster
 

Destacado (20)

Tutorial A Z A - Programador PHP
Tutorial A Z A - Programador PHPTutorial A Z A - Programador PHP
Tutorial A Z A - Programador PHP
 
Zenphp - Programador PHP
Zenphp - Programador PHPZenphp - Programador PHP
Zenphp - Programador PHP
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
 
Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Iniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebIniciación PHP 5. Programación Web
Iniciación PHP 5. Programación Web
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios Web
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
Iniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorIniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidor
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. Ejemplos
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
 
Presentacion curso de php
Presentacion curso de phpPresentacion curso de php
Presentacion curso de php
 
PHP
PHPPHP
PHP
 
Prueba6.pdf
Prueba6.pdfPrueba6.pdf
Prueba6.pdf
 
Curso php - capitulo 1 (introducción)
Curso php - capitulo 1 (introducción)Curso php - capitulo 1 (introducción)
Curso php - capitulo 1 (introducción)
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Conociendo PHP
Conociendo PHPConociendo PHP
Conociendo PHP
 

Similar a Memoria Zenphp - Programador PHP

Similar a Memoria Zenphp - Programador PHP (20)

Web Quest PHP
Web Quest PHPWeb Quest PHP
Web Quest PHP
 
Php power
Php powerPhp power
Php power
 
Programacion Basica
Programacion Basica Programacion Basica
Programacion Basica
 
Presentación de programacion
Presentación  de programacionPresentación  de programacion
Presentación de programacion
 
Power point 3 y 4
Power point 3 y 4Power point 3 y 4
Power point 3 y 4
 
Tarea 1
Tarea 1Tarea 1
Tarea 1
 
Plataformas para el desarrollo de aplicaciones web
Plataformas para el desarrollo de aplicaciones webPlataformas para el desarrollo de aplicaciones web
Plataformas para el desarrollo de aplicaciones web
 
Backup of quick basic
Backup of quick basicBackup of quick basic
Backup of quick basic
 
Programacion C#.NET
Programacion C#.NETProgramacion C#.NET
Programacion C#.NET
 
Documentacion Proyecto Final
Documentacion Proyecto FinalDocumentacion Proyecto Final
Documentacion Proyecto Final
 
Funciones con PHP
Funciones con PHPFunciones con PHP
Funciones con PHP
 
Aprende a Programar: Introducción
Aprende a Programar: IntroducciónAprende a Programar: Introducción
Aprende a Programar: Introducción
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Practicas visualbasic60
Practicas visualbasic60Practicas visualbasic60
Practicas visualbasic60
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 
BRANDON VELASQUEZ
BRANDON VELASQUEZBRANDON VELASQUEZ
BRANDON VELASQUEZ
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 
Symfony
SymfonySymfony
Symfony
 
Visual basic-60-navarra
Visual basic-60-navarraVisual basic-60-navarra
Visual basic-60-navarra
 

Más de Juan Belón Pérez

Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, Palm
Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, PalmAplicaciones y juegos para móbiles 2011: iOS, Android, Bada, Palm
Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, PalmJuan Belón Pérez
 
Yahoo! pipes + Wordpress plugin - RSS POWER to your blog
Yahoo! pipes + Wordpress plugin - RSS POWER to your blogYahoo! pipes + Wordpress plugin - RSS POWER to your blog
Yahoo! pipes + Wordpress plugin - RSS POWER to your blogJuan Belón Pérez
 
Proyecto Campos Electricos - Programador Servicios 3d
Proyecto Campos Electricos - Programador Servicios 3dProyecto Campos Electricos - Programador Servicios 3d
Proyecto Campos Electricos - Programador Servicios 3dJuan Belón Pérez
 
Aecem - Libro Blanco - Para Programador Php.org
Aecem - Libro Blanco  - Para Programador Php.orgAecem - Libro Blanco  - Para Programador Php.org
Aecem - Libro Blanco - Para Programador Php.orgJuan Belón Pérez
 
Composicion de servicios web, un ejemplo
Composicion de servicios web, un ejemploComposicion de servicios web, un ejemplo
Composicion de servicios web, un ejemploJuan Belón Pérez
 
Zenphp - Presentación de Septiembre en la Etsiit - Programador PHP
Zenphp - Presentación de Septiembre en la Etsiit - Programador PHPZenphp - Presentación de Septiembre en la Etsiit - Programador PHP
Zenphp - Presentación de Septiembre en la Etsiit - Programador PHPJuan Belón Pérez
 
Ensayo Cientifico - Programador PHP
Ensayo Cientifico - Programador PHPEnsayo Cientifico - Programador PHP
Ensayo Cientifico - Programador PHPJuan Belón Pérez
 
Zen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPZen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPJuan Belón Pérez
 
Rendimiento Java Script - Programador PHP
Rendimiento  Java Script - Programador PHPRendimiento  Java Script - Programador PHP
Rendimiento Java Script - Programador PHPJuan Belón Pérez
 
Bibliografia Y Menciones - Programador PHP
Bibliografia Y Menciones - Programador PHPBibliografia Y Menciones - Programador PHP
Bibliografia Y Menciones - Programador PHPJuan Belón Pérez
 
Tutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHPTutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHPJuan Belón Pérez
 
Aceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPAceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPJuan Belón Pérez
 
Introducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHPIntroducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHPJuan Belón Pérez
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPJuan Belón Pérez
 
Bibliografia Y Menciones zenphp - Programador PHP
Bibliografia Y Menciones zenphp  - Programador PHPBibliografia Y Menciones zenphp  - Programador PHP
Bibliografia Y Menciones zenphp - Programador PHPJuan Belón Pérez
 

Más de Juan Belón Pérez (20)

Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, Palm
Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, PalmAplicaciones y juegos para móbiles 2011: iOS, Android, Bada, Palm
Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, Palm
 
Yahoo! pipes + Wordpress plugin - RSS POWER to your blog
Yahoo! pipes + Wordpress plugin - RSS POWER to your blogYahoo! pipes + Wordpress plugin - RSS POWER to your blog
Yahoo! pipes + Wordpress plugin - RSS POWER to your blog
 
Proyecto Campos Electricos - Programador Servicios 3d
Proyecto Campos Electricos - Programador Servicios 3dProyecto Campos Electricos - Programador Servicios 3d
Proyecto Campos Electricos - Programador Servicios 3d
 
Aecem - Libro Blanco - Para Programador Php.org
Aecem - Libro Blanco  - Para Programador Php.orgAecem - Libro Blanco  - Para Programador Php.org
Aecem - Libro Blanco - Para Programador Php.org
 
Composicion de servicios web, un ejemplo
Composicion de servicios web, un ejemploComposicion de servicios web, un ejemplo
Composicion de servicios web, un ejemplo
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
Zenphp - Presentación de Septiembre en la Etsiit - Programador PHP
Zenphp - Presentación de Septiembre en la Etsiit - Programador PHPZenphp - Presentación de Septiembre en la Etsiit - Programador PHP
Zenphp - Presentación de Septiembre en la Etsiit - Programador PHP
 
Ensayo Cientifico - Programador PHP
Ensayo Cientifico - Programador PHPEnsayo Cientifico - Programador PHP
Ensayo Cientifico - Programador PHP
 
Zen AJAX - Programador PHP
Zen AJAX - Programador PHPZen AJAX - Programador PHP
Zen AJAX - Programador PHP
 
Zen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPZen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHP
 
Rendimiento Java Script - Programador PHP
Rendimiento  Java Script - Programador PHPRendimiento  Java Script - Programador PHP
Rendimiento Java Script - Programador PHP
 
Bibliografia Y Menciones - Programador PHP
Bibliografia Y Menciones - Programador PHPBibliografia Y Menciones - Programador PHP
Bibliografia Y Menciones - Programador PHP
 
Tutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHPTutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHP
 
M V C - Programador PHP
M V C - Programador PHPM V C - Programador PHP
M V C - Programador PHP
 
Aceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPAceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHP
 
Introducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHPIntroducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHP
 
Splat - Programador PHP
Splat - Programador PHPSplat - Programador PHP
Splat - Programador PHP
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHP
 
Bibliografia Y Menciones zenphp - Programador PHP
Bibliografia Y Menciones zenphp  - Programador PHPBibliografia Y Menciones zenphp  - Programador PHP
Bibliografia Y Menciones zenphp - Programador PHP
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (19)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
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.