Principios de desarrollo de software y DDD, CQRS-Event Sourcing, Event Storage
10064
Avanzado
Técnicas de programación
52 horas
936 €
Convocatorias
Inicio - Fin
Horario  
No hay convocatorias abiertas
Descripción
El conocimiento de las buenas prácticas del desarrollo de software hace que los productos terminados con estos principios cumplan con todas las métricas de calidad de desarrollo como robustez, mantenibilidad, desacoplamiento, coherencia, escalabilidad y una vida útil más larga, que se traduce en un mayor ROI y en un menor time-to-market cuando sea necesario ajustar el producto para seguir siendo competitivos en el mercado.
Objetivos
El objetivo principal del curso es enseñar estos principios en profundidad de forma teórica y sobre todo práctica. También como contenido del curso impartiremos el enfoque que Distributed Domain Driven Design (DDDD en adelante) tiene para el desarrollo del software donde su principal objetivo es acercar el negocio al desarrollar el software, el uso de patrones de diseño como es el CQRS-ES (Command Query Responsability Segregation and Event Sourcing). Como resultado final se espera que los alumnos salgan con los principios interiorizados por medio de un ejercicio práctico de una técnica llama Event Storming. Por este motivo le reservamos más del 50% del tiempo de la formación.
Contenido
  • Los 7 Principios del Desarrollo del software
    • The Reason It All Exists.
    • K.I.S.S.
    • Maintain the Vision.
    • What You Produce, Others Will Consume.
    • Be Open to the Future. (Build for Today, Design for Tomorrow).
    • Plan Ahead for Reuse.
    • Think!!!! 
  • S.O.L.I.D Principles.
    • Single Responsibility Principle (SRP).
    • Open / Close Principle (OCP).
    • Liskov Substitution Principle (LSP).
    • Interface Segregation Principle (ISP).
    • Dependency Inversion Principle (DIP).
  • DDDD 
    • Definición y principios.  
    • Conceptos, herramientas y patrones. 
      • Domain 
      • Subdomain 
      • Domain Model 
      • Bounded Context 
      • Ubiquitous language 
      • Continous Integration 
      • Context Maps 
      • Shared kernel 
      • Entities 
      • Value Object 
      • Events 
      • Command 
      • Aggregates 
      • Microservicios.
  • CQRS-ES 
    • Arquitectura típica basada en DTOs Up/Down. 
    • Interfaces Inductivas y Deductivas. 
    • ¿Impedance Mismatch? 
    • ¿Por qué el CRUD no responde a un diseño orientado a DDD? 
    • ¿Por qué usar este patrón de diseño? 
    • Event Storage. 
    • Beneficios del Event Storage. 
    • Técnicas de optimización. 
  • 5. Event Storming 
    • 5.1. ¿Qué es Event Storming? 
    • 5.2. ¿Cómo trabajar con él? 
  • 6. Manos a la obra 
    • 6.1. Ejercicio práctico donde realizaremos un producto, desde el modelo hasta las estructuras a nivelo de software que reflejan dicho modelo, aplicando así todo el contenido del curso.