Flujo de desarrollo para drupal (PFC)

Post on 19-Jun-2015

281 views 1 download

description

Presentación para la defensa del proyecto final de carrera. Definición de un flujo de desarrollo para un sistema de gestión de contenidos basado en OpenAtrium, Vagrant+Chef y Drupal

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.