Flujo de desarrollo para drupal (PFC)

518 views

Published on

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

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
518
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Flujo de desarrollo para drupal (PFC)

  1. 1. 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
  2. 2. 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
  3. 3. Orientado al desarrollo Drupal
  4. 4. Agentes • Cliente – Stakeholders – Product Owner • Proveedor – Jefe de Proyecto – Responsable de desarrollo – Equipo de desarrollo • Coacher
  5. 5. 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:
  6. 6. 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 – ,...
  7. 7. Vagrant + Chef • Producción = Local • Debian 6 (kernel 2.6) • Apache 2.0.x • Varnish 3.0.4, • APC 3.1.11, • xDebug • ...
  8. 8. NetBeans + xDebug • IDE funcional básico con autoformateado y autocompletado • Posibilidad de debuggear el código fuente
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. Técnicas de desarrollo Desarrollo incremental utilizando • Features • Context • Display suite • Profiles
  14. 14. 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();
  15. 15. 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.

×