Download pdf - Domain Driven Design

Transcript
Page 1: Domain Driven Design

Domain Driven Design (introdução)

Vitor Castrofacebook.com/aitproeg

sexta-feira, 9 de novembro de 12

Page 2: Domain Driven Design

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

Page 3: Domain Driven Design

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

Page 4: Domain Driven Design

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

Page 5: Domain Driven Design

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

Page 6: Domain Driven Design

Design dirigido por Modelo - MDD

sexta-feira, 9 de novembro de 12

Page 7: Domain Driven Design

Isolando o domínio

sexta-feira, 9 de novembro de 12

Page 8: Domain Driven Design

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

Page 9: Domain Driven Design

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

Page 10: Domain Driven Design

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

Page 11: Domain Driven Design

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

Page 12: Domain Driven Design

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

Page 13: Domain Driven Design

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

Page 14: Domain Driven Design

Obrigadofacebook.com/aitproeg

sexta-feira, 9 de novembro de 12