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:Desenvolvemento de soporte lóxico