Arquitectura de Proyectos Drupal

DrupalDay Bilbao 2014

Created by David Hernández

¿Quién soy yo?

¿De qué va este taller?

  • ¿Desarrollo? ¡No!
  • ¿Introducción a Drupal? ¡No!
  • ¿Cómo trabajamos con Drupal? ¡Si!

¿Qué puedes esperar de este taller?

  • Mucho contenido.
  • Poco código.
  • Mucha terminal.
  • Pocas slides.

Nuestros objetivos

  • Mejorar el trabajo en equipo.
  • Mejorar nuestros procesos.
  • Mayor confianza.

Antes de empezar...

Código: http://bit.ly/10xmWuy

Slides: http://bit.ly/1qtmCEb

Estructura de carpetas

¡A la terminal!

Resumen

  • contrib
  • custom
  • features
  • hacked

Notas

Módulos custom, no un módulo custom.

Principio de única responsabilidad.

Perfiles de instalación

Ventajas

  • Actualizaciones genéricas en un sitio con sentido.
  • Mejor gestión de las dependencias.
  • Replicación más fácil

Drush Make

Resumen

  • drupal-org-core.make
  • drupal-org.make
  • profile.make

Versioning

Resumen

  • Solo versionas código custom. Nunca core o contrib.
  • La excepción son módulos hackeados sin parche.

Notas

Branching y flujos es un tema aparte. ¡Búscalo!

Configuración a código

Módulos útiles

  • Strongarm
  • Context (o Panels)
  • Beans / Context

Resumen

  • Exporta basado en componentes, no en funcionalidades.

Notas

Evita el sistema de bloques y los custom blocks.

Automatización de tareas

Resumen

  • Automatiza todo lo automatizable:
  • Deploys
  • Builds
  • Actualizaciones

Notas

Puedes automarizar features, pero ¡cuidado!

Deploys

Resumen

  • El método Capistrano.
  • Mantén configuración y archivos fuera de Drupal.
  • Sigue el mismo proceso entre todos los entornos.

Notas

  • Los pasos del deploy pueden variar entre entornos.
  • Backups son siempre esenciales.
  • Para hacer un rollback, activar release antigua y restaurar backup.

Flujo del día a día

Resumen

  • Subir cambios.
  • Deploy de cambios.
  • Rebuild del sitio.
  • Aplicar actualizaciones.

Otras consideraciones

Testing

  • SimpleTest.
  • PHP Unit.
  • Behat.
  • CasperJs.
  • Selenium.

Integración continua

¿Preguntas?

Más información

¡Gracias!