Siempre he desarrollado código de una manera SOA. Este año he tratado de hacer más DDD, pero sigo teniendo la sensación de que no lo estoy obteniendo. En el trabajo, nuestros sistemas tienen equilibrio de carga y están diseñados para no tener estado. La arquitectura es:Arquitectura Orientada a Servicios y Diseño Dirigido por Dominio
sitio web
=== == capa física
Servicio Principal
== == capa física
Servidor 1/2 Servicio/Servicio 3/Servicio 4
Solo el servidor 1, el servicio 2, el servicio 3 y el servicio 4 pueden comunicarse con la base de datos y el servicio principal llama al servicio correcto en función de los productos solicitados. Cada capa física también está balanceada.
Ahora cuando desarrollo un nuevo servicio, trato de pensar en DDD en ese servicio, aunque realmente no me parece que encaje.
utilizo buenos principios DDD como entidades, tipos de valor, repositorios, áridos, fábricas y etc.
Incluso he intentado utilizar ORM pero simplemente no se parecen como encajan en una arquitectura sin estado. Sé que hay formas de evitarlo, por ejemplo, usar IStatelessSession en lugar de ISession con NHibernate. Sin embargo, ORM simplemente siente que no encajan en una arquitectura sin estado.
Me he dado cuenta de que realmente solo uso algunos de los conceptos y patrones que DDD me ha enseñado, pero la arquitectura general sigue siendo SOA.
Estoy empezando a pensar que DDD no cabe en sistemas grandes, pero creo que algunos de los patrones y conceptos encajan en sistemas grandes.
Como dije, ¿tal vez no estoy captando DDD o quizás estoy analizando mis diseños? Quizás al usar los patrones y conceptos que DDD me ha enseñado, ¿estoy usando DDD? No estoy seguro de si realmente hay una pregunta para esta publicación, sino más ideas que he tenido al tratar de descubrir dónde encaja DDD en los sistemas en general y cuán escalable es realmente. La verdad es que no creo que realmente sepa qué es DDD.
Creo que esto es absolutamente hermoso. –
Finalmente he publicado algunos comentarios al respecto: Servicios + Patrón de comando + DDD http://rogeralsing.com/2013/12/02/using-command-pattern-to-capture-language-and-intent-for- services/ –
Y algo de información acerca de por qué el viejo enfoque de DTO es malo http: // rogeralsing.com/2013/12/01/why-mapping-dtos-to-entities-using-automapper-and-entityframework-is-horrible/ –