Please enable JavaScript.
Coggle requires JavaScript to display documents.
DDD – DOMAIN DRIVEN DESIGN (MDD - ARQUITETURA (User Interface:…
DDD – DOMAIN DRIVEN DESIGN
Definição: O DDD visa ajudar equipes de desenvolvimento a entender melhor o
contexto dos projetos, permitindo assim utilizar esse conhecimento para gerar um produto final com mais qualidade e satisfação ao cliente.
A principal ideia do DDD é a de que o mais importante em um software não é o seu código, nem sua arquitetura, nem a tecnologia sobre a qual foi desenvolvido, mas sim o problema que o mesmo se propõe a resolver.
Isso significa que em DDD um Cliente pode
não ter um setter para os seus atributos comuns, mas pode ter métodos com lógica
de negócio que neste domínio de negócio pertencem ao cliente, como void associarNovoCartao(Cartao) ou Conta recuperarInformacoesConta().
TERMOS
Domain: É um campo de ação, conhecimento e influência do software.
Domain Model: – O domain model, é a estrutura do conhecimento adquirido, ou seja, é a representação estrutrada de conhecimento.
Domain Expert: São as pessoas que conhecem profundamente os detalhes de um domain.
DOMAIN X DOMAIN MODEL
O DOMAIN é a situação a ser resolvida, o DOMAIN MODEL é uma representação estruturada de conhecimento.
MDD - ARQUITETURA
User Interface: Responsável por mostrar ao usuário a informação necessária e por interpretar as ações e comandos emitidos pelo usuário.
Application: Tem a responsabilidade de adaptar as ações da camada inferior aos diversos tipos de UI (converções, segurança, etc)
Domain: Representam os conceitos, informações e regras de negócio.
Infrastrucuture: Suporte técnico e capacidade de baixo nível (Armazenamento de dados, Log e Auditoria).
MODELO NO DDD
É o coração do design dão forma um ao
outro.
É a espinha dorsal de uma linguagem utilizada por todos os membros da equipe.
É um conhecimento destilado
O princípio é que qualquer elemento de uma camada dependa apenas de outros elementos da mesma camada ou de camadas inferiores. A divisão em camadas permite que cada camada se especialize em um único aspecto de um software, e essas especializações permitem um design mais coerente e coeso.