Flujo de desarrollo para drupal (PFC)

15
DEFINICIÓN DE UN FLUJO DE DESARROLLO PARA UN SISTEMA DE GESTIÓN DE CONTENIDOS Trabajo de Final de Carrera Ingeniería Técnica en Informática de Gestión Universidad de Alcalá por Ignacio Sánchez Holgueras

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)

Page 1: 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

Page 2: Flujo de desarrollo para drupal (PFC)

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

Page 3: Flujo de desarrollo para drupal (PFC)

Orientado al desarrollo Drupal

Page 4: Flujo de desarrollo para drupal (PFC)

Agentes

• Cliente– Stakeholders– Product Owner

• Proveedor– Jefe de Proyecto– Responsable de desarrollo– Equipo de desarrollo

• Coacher

Page 5: Flujo de desarrollo para drupal (PFC)

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:

Page 6: Flujo de desarrollo para drupal (PFC)

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– ,...

Page 7: Flujo de desarrollo para drupal (PFC)

Vagrant + Chef

• Producción = Local

• Debian 6 (kernel 2.6)• Apache 2.0.x• Varnish 3.0.4, • APC 3.1.11, • xDebug• ...

Page 8: Flujo de desarrollo para drupal (PFC)

NetBeans + xDebug

• IDE funcional básico con autoformateado y autocompletado

• Posibilidad de debuggear el código fuente

Page 9: Flujo de desarrollo para drupal (PFC)

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

Page 10: Flujo de desarrollo para drupal (PFC)

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

Page 11: Flujo de desarrollo para drupal (PFC)

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

Page 12: Flujo de desarrollo para drupal (PFC)

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

Page 13: Flujo de desarrollo para drupal (PFC)

Técnicas de desarrollo

Desarrollo incremental utilizando• Features• Context• Display suite• Profiles

Page 14: Flujo de desarrollo para drupal (PFC)

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();

Page 15: Flujo de desarrollo para drupal (PFC)

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.