Deseño guiado polo dominio (DDD)

Domain-driven design (DDD) é un importante enfoque da enxeñaría de software, que se focaliza na modelaxe do software para que se adapte a un dominio segundo as achegas dos expertos nese dominio, o que poderíamos simplificar en "traducir o idioma do negocio en código".

Baixo o DDD, a estrutura e linguaxe do código (nomes de clases, métodos de clase, variábeis de clase) deberían coincidir co domino do negocio. Por exemplo, se o software procesa solicitudes de préstamo, pode haber clases como SolicitudePrestamo e Cliente, e métodos tales como AcceptarOferta e Retirar.

Domain-driven design predica as seguintes metas:

 Colocar o enfoque principal do proxecto no dominio do core e a lóxica do dominio;
 Basear os deseños complexos nun modelo do dominio;
 Iniciar unha colaboración creativa entre técnicos e expertos do dominio para perfeccionar de maneira iterativa un modelo conceptual que aborde problemáticas concretas da contorna.
As críticas ó DDD argumentan que os desenvolvedores deben normalmente implementar unha agrande cantidade de illamento e encapsulación para manter o modelo coma unha construción pura e útil. Aínda que o DDD ofrece vantaxes como a capacidade de mantemento, Microsoft recoméndao só para dominios complexos nos que o modelo ofreza claras vantaxes á hora de formular unha comprensión común do dominio.Microsoft Application Architecture Guide, 2nd Edition. Retrieved from http://msdn.microsoft.com/en-us/library/ee658117.aspx#DomainModelStyle.

O termo foi acuñado por Eric Evans no seu libro do mesmo título publicado no 2003.
Notas

 Véxase tamén 

 Ligazóns externas 
 Implementing Aggregate root in C# language

Categoría:Software