-
Anemic Domain Model vs Rich Domain Model with Examples
https://thevaluable.dev/anemic-domain-model/ -
Symfony: services and Rich Domain Models
https://stackoverflow.com/questions/58091042/symfony-services-and-rich-domain-models -
How to use Repository with Doctrine as Service in Symfony
https://tomasvotruba.com/blog/2017/10/16/how-to-use-repository-with-doctrine-as-service-in-symfony/ -
The Value Object and Doctrine
https://www.thinktocode.com/2018/03/19/the-value-object-and-doctrine/ -
Martin Fowler - Tudo sobre Domain Driven Design
https://martinfowler.com/tags/domain%20driven%20design.html -
Domain-driven design
https://en.wikipedia.org/wiki/Domain-driven_design
-
Aprenda DDD (Domain Driven Design) do jeito certo
https://www.youtube.com/watch?v=eUf5rhBGLAk -
[REPLAY] Desenvolvendo um Microserviço com PHP usando DDD e filas | Full Cycle | Aula ao Vivo
https://www.youtube.com/watch?v=mujACF7kMvM
São somente anotações, não afirmações. Só pra deixar registrado...
- Só possuem getter e setters
- Simples armazenamento de estados
- Náo possuem foco no comportamento
- Não garante integridade dos dados
- Tem características muito parecidas com o paradigma procedural
- Normalmente possui sepração de uma camada de serviço que fica responsável por todo o resto
- Normalmente, seta um estado e, em seguida, executa uma ação.
- As entidades possuem mais do que getters e setters
- A logica esta na entidade
- O dominio tem que proteger a aplicação
- Garante a consistencia integral dos dados
- Protege as regras de dominio (validações, comunicações / integrações com outros domínios)
- Serviços externos não tem conhecimento das regras privadas do domínio
- Só é público aquilo que representa algum tipo de serviço, não apenas getters e setters.
- Cria uma camada externa, quando precisa acessar algo da infraestrutura (enviar email, sms, disparar eventos, etc)