31
A Utilização das Práticas do DDD Aplicada a um Estudo de Caso. Danillo César de Oliveira Melo Fábio Brasil Fernandes de Araújo Jairo Barros Junior FACULDADE DE ALAGOAS - FAL Orientador: MSc. Ricardo Rubens

Domain-Driven Design - Aplicada a um estudo de caso

Embed Size (px)

DESCRIPTION

Apresentação realizada com o objetivo de conclusão de curso - SI.Equipe: Danillo, Fábio, Ricardo(orientador) e Eu!!

Citation preview

Page 1: Domain-Driven Design - Aplicada a um estudo de caso

A Utilização das Práticas do DDD Aplicada a um Estudo de Caso.

Danillo César de Oliveira MeloFábio Brasil Fernandes de Araújo

Jairo Barros Junior

FACULDADE DE ALAGOAS - FAL

Orientador: MSc. Ricardo Rubens

Page 2: Domain-Driven Design - Aplicada a um estudo de caso

A utilização da linguagem ubíqua

Construção do modelo de domínio◦ Padrões de projeto

◦ Ciclo de vida de um objeto de domínio

Estudo de caso

Conclusão

Page 3: Domain-Driven Design - Aplicada a um estudo de caso

Falha na comunicação

Domínios complexos

Alto acoplamento

Baixa coesão

Page 4: Domain-Driven Design - Aplicada a um estudo de caso

Conjunto de práticas

Ideal para domínios complexos

Desenvolvimento centrado no domínio

Linguagem onipresente

Page 5: Domain-Driven Design - Aplicada a um estudo de caso
Page 6: Domain-Driven Design - Aplicada a um estudo de caso

Comunicação em torno do domínio

Manutenção da linguagem

Modelo do domínio expressado no software

Page 7: Domain-Driven Design - Aplicada a um estudo de caso
Page 8: Domain-Driven Design - Aplicada a um estudo de caso

Arquitetura em camadas

Fonte: Imagem extraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 68).

Page 9: Domain-Driven Design - Aplicada a um estudo de caso

Anti-padrão

Page 10: Domain-Driven Design - Aplicada a um estudo de caso
Page 11: Domain-Driven Design - Aplicada a um estudo de caso
Page 12: Domain-Driven Design - Aplicada a um estudo de caso

Criado a partir das conversas dos desenvolvedores com os especialistas de domínio.

Representado diretamente no código.

Page 13: Domain-Driven Design - Aplicada a um estudo de caso

Possui identificação única

Possui características próprias dentro do modelo.

Responsabilidade e associações baseadas na sua identificação e não em seus atributos.

Page 14: Domain-Driven Design - Aplicada a um estudo de caso

Somente transporta informações

Não possui identificação única

Imutável

Possuem somente métodos de acesso

Page 15: Domain-Driven Design - Aplicada a um estudo de caso

Coordenam os trabalhos dos objetos do domínio

Aplicação

Domínio

Infra-estrutura

Page 16: Domain-Driven Design - Aplicada a um estudo de caso

Fonte: Imagem extraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 123).

Page 17: Domain-Driven Design - Aplicada a um estudo de caso

Início do ciclo de vida

Criação de objetos complexos e agregações

Encapsula complexidade

Page 18: Domain-Driven Design - Aplicada a um estudo de caso
Page 19: Domain-Driven Design - Aplicada a um estudo de caso
Page 20: Domain-Driven Design - Aplicada a um estudo de caso

Fonte: Imagem extraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 65).

Page 21: Domain-Driven Design - Aplicada a um estudo de caso

Requisitos do projeto

Estrutura do projeto

Camada do domínio

Page 22: Domain-Driven Design - Aplicada a um estudo de caso

“ O s i s t e m a d e v e t e r r e s e r v a e h o s p e d a g e m , d e f o r m a q u e o s

c l i e n t e s p o s s a m r e a l i z a r s u a s r e s e r v a s p o r t e l e f o n e o u v i a

i n t e r n e t . U m a r e s e r v a n ã o é u m a h o s p e d a g e m , p o i s n a h o r a d a

h o s p e d a g e m a r e s e r v a f e i t a p o d e s e r a l t e r a d a , m a s c a s o i s s o

n ã o o c o r r a e l a s e t o r n a u m a h o s p e d a g e m . C a d a q u a r t o p o s s u i

u m ú n i c o i d e n t i f i c a d o r , e x i s t e m c i n c o t i p o s d e q u a r t o , s ã o

e l e s : s i m p l e s , c a s a l , d u p l o , t r i p l o e f a m í l i a . O h o t e l p o s s u i

u m a m p l o r e s t a u r a n t e , q u e p o d e s e r u t i l i z a d o p o r q u a l q u e r

c l i e n t e , m a s e x i s t e u m a á r e a d o r e s t a u r a n t e s ó p a r a o s

h o s p e d e s , a s s i m c o m o t a m b é m e x i s t e u m a á r e a s ó p a r a o s

f u m a n t e s , q u e c o n s e g u i m o s i d e n t i f i c a r n o s e u c a d a s t r o . ”

Page 23: Domain-Driven Design - Aplicada a um estudo de caso
Page 24: Domain-Driven Design - Aplicada a um estudo de caso
Page 25: Domain-Driven Design - Aplicada a um estudo de caso
Page 26: Domain-Driven Design - Aplicada a um estudo de caso
Page 27: Domain-Driven Design - Aplicada a um estudo de caso
Page 28: Domain-Driven Design - Aplicada a um estudo de caso
Page 29: Domain-Driven Design - Aplicada a um estudo de caso

A Comunicação

A linguagem onipresente

Desenvolvimento centrado no domínio

Page 30: Domain-Driven Design - Aplicada a um estudo de caso

AVRAM, Abel; MARINESCU, Floyd. Domain-Driven Design Quickly. InfoQ. 2007;

DDD. Domain-Driven Design, disponível em http://domaindrivendesign.org/. Acesso em 3 de Julho de 2008;

EVANS, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley. 2004;

FREEMAN, Elisabeth; FREEMAN, Eric; BATES, Bert; SIERRA, Kathy. Head First Design Patterns.O'REILLY. 2004;

METSKER, Steven John. Padrões de Projeto em Java. Bookman. 2004;

MCCARTHY, Tim. .NET Domain-Driven Design with C#: Problem - Design - Solution. Wrox. 2008;

NILSSON, Jimmy. Applying Domain-Driven Design and Patterns: With Examples in C# and .NET.Addison-Wesley. 2006;

SITEFANE, João Pedro Manaças. Desenvolvimento de software centrado no domínio. Lisboa. Dissertação de Mestrado. 2007;

Page 31: Domain-Driven Design - Aplicada a um estudo de caso