A palavra "domínio" no livro Design dirigido por domínio de Eric Evans tem um significado específico. É sobre o assunto do software.
Evans vai mais longe embora. Em sua opinião, existem sub-domínios, mesmo com o mesmo software. E esta é a parte do livro que trata do “Design Estratégico”.
Existem três "domínios": o domínio principal, o domínio de suporte e o domínio genérico. Às vezes, ele se referirá a eles como subdomínios.
Evans também se preocupa profundamente com os negócios reais por trás do software e o livro não é direcionado apenas aos desenvolvedores, mas também aos arquitetos e gerentes que precisam ver como o software e a empresa podem trabalhar juntos, e é nisso que ele se preocupa. discutindo o design estratégico e esses sub-domínios.
Assim, o domínio central é a parte do software que representa tanto a vantagem competitiva quanto a "razão de ser" do software. É a parte do software que é o motivo pelo qual um cliente compraria o software em vez de outro software. Normalmente, Evans o vê como o domínio que contém a menor porcentagem de código. Você pode pensar nisso como os 20% mais importantes. É a parte que você realmente não pode comprar na prateleira e pode ser apenas um único módulo ou componente do software geral.
O domínio de suporte ainda é importante e pode ser exclusivo da organização, mas não é tão importante quanto o domínio principal. Sem isso, o software não será tão valioso e o núcleo depende dele. Pode ser vários módulos no software que você mesmo escreveu e que executam funções importantes, mas de suporte, ao núcleo.
O domínio genérico é o menos personalizado e, em algum sentido, a parte menos importante do software. Você pode ter escrito isso em casa, mas pode ser mais eficiente apenas comprá-lo na prateleira ou usar um software de código aberto bem conhecido. Esta parte do sistema provavelmente não é específica para o seu domínio geral, portanto, por exemplo, se você tem um sistema de envio que roteia pacotes ou um sistema de registros de saúde que gerencia pacientes, o domínio genérico é a parte desses sistemas que são comuns e justos simplesmente precisa estar lá para funcionar. Isso provavelmente compõe a maior parte do sistema, mas não necessariamente.
De uma perspectiva de negócios, é importante decidir qual é o seu domínio principal e concentrar seus recursos de desenvolvimento nele. Evans tem muitos vídeos, particularmente no site da InfoQ, onde explica esses conceitos com mais detalhes.
Por isso, embora muitas vezes falemos sobre "o domínio" no software, no caso do DDD, não é tão simples quanto parece.
Devo observar que os conceitos de DDD não existem necessariamente na comunidade de software mais ampla. Outros desenvolvedores, autores e pessoas de produtos podem ter ideias e definições diferentes, algumas mais sutis e outras menos. Mesmo outros autores que escreveram sobre o DDD podem encobrir esses conceitos no livro de Evans, mas eu sinto que os conceitos ainda são úteis ao escrever e planejar um projeto de software.