Domain Driven Design

Modificado el 2012/10/01 21:39 por Juan José Montes de Oca Arbós — Categorizada como: VAN

VAN - Diciembre 19 de 2009 - Domain Driven Design

 

Formato

     Reunión virtual

 

Duración:

     Vídeo: 1:45 horas 

 

Ponente:

     Angel “Java” López

 

Síntesis:

 

Hacia el Dominio

El corazón del software

 

Estilos de Arquitectura

 

Dominio

 

Modelo

 

Modelo de Dominio

 

Ideas de Eric Evans

 

Nuestro lenguaje debe ser el mismo que el del usuario. No deberíamos usar otros términos. Tenemos que dejar de hablar de formas de implementación (ej: tablas) y pasar a hablar en términos menos técnicos, que estén más cerca del lenguaje del usuario y del negocio.

 

Ejemplos Escritos

 

En este proceso de conversación con el usuario, se van descubriendo sustantivos que representan conceptos del dominio.

 

Lenguage Ubicuo

Es la intersección de 2 lenguajes: el técnico y el de negocio

 

Un poco de historia

 

Idealmente

Trabajar con objetos. Programar “como Smaltalk”

Ver Naked Objects

 

Temas a Resolver

 

No siempre podemos tenerlo totalmente en memoria. Ver Prevayler (http://www.prevayler.org/)

 

Aislando el Dominio

• Es común desde la UI acceder directamente a objetos del dominio

• También se coloca la lógica en la UI

• Cambiar una regla de negocio, entonces, implica mirar en código desperdigado

• Solución: una arquitectura en capas

 

Capas

• Cada una se especializa en un aspecto particular del programa

• Esto agrega cohesión a cada objeto

• Conocemos qué colocar en cada capa

• Conocemos qué modificar ante un cambio

• Muchos cambios son concentrados

• Contra: mayor cantidad de clases, casos de uso “scattered”en varios artefactos, cada artefacto tiene responsabilidades de distintos casos de uso

 

Capa de Presentación

• Responsable de mostrar la información al usuario, e interpretar sus comandos

• El usuario externo puede ser en algunos casos otro sistema de computación

• Tipos de presentación

o Web: ASP.NET, ASP.NET MVC

o WinForms

o WPF

o Silverlight

 

Capa de Aplicación

 

Capa de dominio

 

Capa de infraestructura

 

Patrones de Evans, sugeridos para implementar todas estas ideas

 

Entity

 

Value Object

 

Repository

 

 

Aggregate

 

Factory

 

Service

 

Command and Query Responsability Segregation (CQRS)

 

Enlaces:

 

Lecturas

 

Video

Si lo prefieren, pueden observar el vídeo en http://www.screencast.com/t/HCecrOxqd7 o descargar el archivo desde este enlace, el cual tiene un tamaño de 419.13 MB.

Unable to display content. Adobe Flash is required.