O que eu entendo sobre design orientado por domínio
On Novembro 15, 2021 by adminDDD 101
Quanto maior o projeto, mais difícil é mantê-lo. Uma forma de ajudar nisso é quebrar o aplicativo em áreas menores de acordo com suas regras de negócio, conhecidas como domínios.
Basicamente, um domínio é uma área de conhecimento, seja público, como as regras do xadrez, ou privado, como as regras de negócio de uma organização sem fins lucrativos .
Um domínio complexo é provável que use o conhecimento de outros domínios. Por exemplo, uma NPO que ensina xadrez online saberá sobre xadrez, ensinando através de plataformas online, e, mesmo que não seja cobrado como estudante, sobre suas finanças.
Cada subdomínio do seu domínio é conhecido no DDD como contextos delimitados, cada um tem seu próprio modelo do mundo construído com unidades de código especializadas, conhecidas como blocos de construção. Aqui vou focar em entidades e objetos de valor, ambos podem ser referenciados como objetos.
Entidades são objetos destinados a serem únicos dentro do domínio. Isto é conseguido usando uma ou mais propriedades para identificar uma determinada entidade. Por exemplo, dois usuários usando o mesmo nome em um sistema sempre terão emails diferentes porque os emails não podem ser repetidos – na maioria das vezes, as entidades são diferenciadas por um id, e às vezes por uma combinação de propriedades.
Objetos de valor, por outro lado, não têm uma identidade, portanto apenas suas propriedades podem ser usadas para distinguir entre duas instâncias. Pegue por exemplo dois peões (a ficha de xadrez), eles parecem iguais se vêm do mesmo jogo e têm a mesma cor, então não importa se você trocá-los por aí. No DDD, os objetos de valor são imutáveis, então é mais fácil raciocinar com eles.
Integridade dos dados
Um contexto limitado não expõe todos os seus objetos para garantir sua integridade de dados. Em vez disso, expõe algumas raízes agregadas como uma espécie de interface pública para si mesmo.
Um agregado nada mais é do que uma entidade composta de outros objetos. Para ser mais preciso, um agregado é um agrupamento de objetos associados que tratamos como uma unidade ao alterar dados.
Deixe uma resposta