10
DDD Domain Driven Design

DDD Domain Driven Design

  • Upload
    kobe

  • View
    64

  • Download
    0

Embed Size (px)

DESCRIPTION

DDD Domain Driven Design. O que é Domain Driven Design. Especificação Design Refactor Testes Quanto tempo isso leva?. O que é Domain Driven Design. Não podemos sentar e sair digitando código. Devemos conhecer o objetivo do software. Devemos conhecer o domínio de negócio ( Domain ) - PowerPoint PPT Presentation

Citation preview

Page 1: DDD  Domain Driven  Design

DDD Domain Driven Design

Page 2: DDD  Domain Driven  Design

O que é Domain Driven DesignEspecificaçãoDesign Refactor TestesQuanto tempo isso leva?

Page 3: DDD  Domain Driven  Design

O que é Domain Driven DesignNão podemos sentar e sair digitando código.Devemos conhecer o objetivo do software.Devemos conhecer o domínio de negócio

(Domain)Quem conhece o domínio?Sempre devemos começar o desenvolvimento

aprendendo sobre o domínio.O software é criado para atender o domínio.

Page 4: DDD  Domain Driven  Design

Começamos com o domínio, e depois?Domínio é algo do mundo real.Não pode ser diretamente transformado em

código.Não é um simples diagrama.Nem todo o domínio deve ser modelado.Deve ser dividido em pequenas partes.Lembrem-se, nós não estamos

sozinhos...precisamos compartilhar esse conhecimento.

Page 5: DDD  Domain Driven  Design

Code desigin.Code design é diferente de software design.Metodos de desenvolvimento de software.

WaterfallMetodologias ágeis.

Vantagens do DDD.Aumentar a habilidade do processo de desenvolvimento.Implementar problemas complexos de uma forma que

seja possível dar manutenção.DDD combina o design com o desenvolvimento.Um bom design acelera o desenvolvimento.O feedback do desenvolvimento vai melhorar o design.

Page 6: DDD  Domain Driven  Design

Exemplo pratico. Projeto Siscoserv.Necessidade do usuário.

Gerar um arquivo com as aquisições de serviços internacionais.

Para isso preciso vincular um serviço ( NBS ) com minha aplicação e referência.

Visão do Analista de negócio.Criar uma parametrização de NBS na tela de

referência das aplicações.Visão do desenvolvedor.

Colocar uma combo de NBS na tela 0306.

Page 7: DDD  Domain Driven  Design

Exemplo pratico. Projeto Siscoserv.Vimos que o produto final partia de uma

parametrização na tela 0306.A primeira alteração foi feita na tela.Posteriormente foi feito todo o

desenvolvimento de geração de arquivos XML referente ao dados que foram parametrizados na primeira tela.

Isso envolveu criação de novas tabelas, desenvolvimento de algumas telas para geração dos registros e arquivos XML.

Mas o que o usuário precisava...

Page 8: DDD  Domain Driven  Design

Exemplo pratico. Projeto Siscoserv.Necessidade real do usuário na homologação do

projeto.A mesma aplicação pode ter mais de um NBS.Na verdade eu preciso além da aplicação e referência o

segmento também tem que ser levado em conta.Desenvolvedor (Eu).

Agora ferrou, vou ter que refazer a primeira tela e ajustar tudo que eu fiz porque houve um erro de design de software na primeira tela que foi alterada.

...Se tivessem homologado a primeira tela logo quando ela estava pronta o usuário já teria percebido isso antes de eu concluir todas telas do projeto (feedback rápido).

Page 9: DDD  Domain Driven  Design

Construindo o conhecimento do domínio.Fazendo as perguntas corretas e processando as

respostas corretamente você começará a formar o esqueleto do modelo de domínio.

Esse esqueleto pode não ser completo e nem correto mas precisa começar de algum lugar.

O usuário conhece a sua área e organiza esse conhecimento de um modo específico, nem sempre é a melhor forma para ser implementada no software.

A analise dos desenvolvedores deve ser capaz de colocar essas ideias de forma organizada para que o software seja desenvolvido de forma simples e de fácil manutenção.

Page 10: DDD  Domain Driven  Design

Próxima apresentação...

A necessidade de uma linguagem comum.

Ubiquitous language.

ncsolucoes.wordpress.com