Domain Driven Design (introdução)
Vitor Castrofacebook.com/aitproeg
sexta-feira, 9 de novembro de 12
O que é ?
Projeto orientado a domínio !
Uso de linguagem ubíqua
Não tem foco em Linguagem de Programação
sexta-feira, 9 de novembro de 12
Exemplo:
Analise a frase: Temos que emitir a fatura para o cliente antes da data limite
O que você consegue identificar ?
sexta-feira, 9 de novembro de 12
Temos que emitir a fatura para o cliente antes da data limite
Uma classe para a entidade Cliente;
Uma classe para a entidade Fatura;
Algum serviço que tenha um método emitir;
Algum atributo com o nome de data limite.
sexta-feira, 9 de novembro de 12
DDD
Cultivar uma linguagem baseado no modelo.
A equipe de desenvolvimento deve está em constante conversa com os especialista de negócio.
O modelo deve ser a representação perfeita do domínio.
sexta-feira, 9 de novembro de 12
Design dirigido por Modelo - MDD
sexta-feira, 9 de novembro de 12
Isolando o domínio
sexta-feira, 9 de novembro de 12
Camada de Domínio
O pré-requisito para o DDD é o isolamento da implementação do domínio.
Contém: conceitos, lógicas e regras de negócio
sexta-feira, 9 de novembro de 12
Entidade X Objeto de Valor
Entidade: Coisas que necessitem de identidade.
Objeto de Valor: Transportadores de valores, não precisam de uma identidade.
Agregado: Objeto que associa Entidade ou Objeto de Valor
sexta-feira, 9 de novembro de 12
Serviço
Contém operações de domínio que não pertencem a Entidade e Objeto de Valor.
Serviço não guarda estado
Enfatiza a relação entre as Entidades e Objeto de Valor
Serviço de Domínio, de aplicativo e de infra-estrutura
sexta-feira, 9 de novembro de 12
Exemplo de Serviço:
Aplicação: Processar um entrada de dados
Domínio: Interagir com entidades para executar uma operação
Infra-estrutura: Enviar email
sexta-feira, 9 de novembro de 12
Fábricas
Classes para o processo de criação dos Agregados ou dos objetos de valor.
Forneçem o encapsulamento para os agregados.
sexta-feira, 9 de novembro de 12
Repositórios
Responsável por manter o ciclo de vida(criação, alteração e remoção) das Entidade e objeto de Valor.
Controla a persistência dos objetos.
sexta-feira, 9 de novembro de 12
Obrigadofacebook.com/aitproeg
sexta-feira, 9 de novembro de 12