Flujo de desarrollo para drupal (PFC)
-
Upload
ignacio-sanchez-holgueras -
Category
Documents
-
view
281 -
download
1
description
Transcript of Flujo de desarrollo para drupal (PFC)
DEFINICIÓN DE UN FLUJO DE DESARROLLO PARA UN SISTEMA DE
GESTIÓN DE CONTENIDOS
Trabajo de Final de CarreraIngeniería Técnica en Informática de Gestión
Universidad de Alcalá
por Ignacio Sánchez Holgueras
Objetivo
• Reducir los fallos en la comunicación entre agentes• Homogeneizar los diferentes entornos (desarrollo,
producción)• Aumentar la productividad y calidad en el desarrollo
Orientado al desarrollo Drupal
Agentes
• Cliente– Stakeholders– Product Owner
• Proveedor– Jefe de Proyecto– Responsable de desarrollo– Equipo de desarrollo
• Coacher
Entorno común, OpenAtrium
• Blog: Incluir novedades del proyecto
• Book: Incluir la información de negocio
• Case Tracker: Gestión de tareas e incidencias
• Calendar: Hitos
Entorno común de comunicación y gestión de información:
Entornos
• Entorno de producción:– Linux 2.6, Debian 6, – Apache 2.2 + MySQL
5.5, – varnish, memcache,
apc,...
• Entorno de desarrollo:– Windows 7, – Wamp, – Apache 2.4– ,...
Vagrant + Chef
• Producción = Local
• Debian 6 (kernel 2.6)• Apache 2.0.x• Varnish 3.0.4, • APC 3.1.11, • xDebug• ...
NetBeans + xDebug
• IDE funcional básico con autoformateado y autocompletado
• Posibilidad de debuggear el código fuente
Git
• Gestor de código fuente distribuido.– Utilizado en proyectos grandes (kernel, apache,...)– Pensado en comunidades de Software Libre
• Historial de código fuente sin conexión• Potencia de Ramas + Forks• Revisión de pull requests
Tests (TDD)
• Realización de Tests con filosofía TDD (Test Driven Development)– Muy unidos a los requisitos– Se programan primero, y se hacen fallar– Se validan con código fuente "sucio"– Se refactoriza el código fuente validando los tests
Integración contínua
• Unido a herramientas que automatizan el proceso como
• se obtiene un sistema que instala, comprueba, valida y testea la aplicación automáticamente
Desarrollo en Drupal
Siguiendo los estándares de Drupal se ha desarrollado un pequeño Drupal con:• Un tipo de contenido "noticias"• Un módulo personalizado "messages"• Un tema integado• Un perfil personalizado
Técnicas de desarrollo
Desarrollo incremental utilizando• Features• Context• Display suite• Profiles
Técnicas de desarrollo
• Sistema de templates• Funcionamiento de módulos• Sistema de hooks
hook_form_alter($form, &form_state); hook_menu(); hook_theme(); template_preprocess();
Conclusiones
• Comunicación en un único sitio.• El pensamiento de stakeholders lo tiene el equipo.• El responsable de desarrollo tiene el control del código• Permite la reinstalación e integración contínua.• Muy poco código fuente duplicado• Toda la configuración de BD está en código fuente• El equipo de desarrollo trabaja bajo condiciones
similares• El equipo desarrolla sus propios estándares.