DOMAIN-DRIVEN
DESIGN
ATACANDO AS COMPLEXIDADES NO
CORAÇÃO DO SOFTWARE
ARQUITETO DE SOFTWARE
BACHAREL EM ANÁLISE DE SISTEMAS
MESTRANDO NO CURSO DE ENG. DE SOFTWARE PELA UFRN
Há 15 anos se dedicando a construção de sistemas corporativos.
@yanjustino
facebook/yanjustino
youtube/academia .net para zumbis
youtube/aspnet cast
2 0 A n o s d e 	 A T I V I D A D E
e m p r e s a 	 d e 	 t e c n o l o g i a
f o c a d a 	 e m 	 p e s s o a s
d i v e r s o s s e r v i ç o s 	
r e a l i z a d o s
4 2 0 i v i a n o s e m 	 a ç ã o !
Secretaria de estado da tributação do RN
SET
Cidadão
Auditores
Gestão
Contribuinte
A Secretaria de Estado da Tributação do Rio Grande do Norte
- SET/RN - é uma administração tributária cuja finalidade é a
arrecadação de tributos estaduais e a fiscalização das
operações que os geram.
Para que a SET/RN possa atender as necessidades
relacionadas às atividades fins, em cumprimento as suas
obrigações, se faz necessário manter funcionando cerca
de 70 (setenta) sistemas e subsistemas que abrangem
a área tributária envolvendo os impostos de sua
competência, assim como as ofertas de serviços aos
contribuintes e cidadãos através da internet.
Design de Software é a parte da engenharia de
software que se encarrega de transformar os
resultados da Análise de Requisitos em um
documento ou conjunto de documentos
capazes de serem interpretados diretamente pelo
programador.
design?
processo iterativo de análise das necessidades de
interação e processamento de informações das pessoas,
proposta de um sistema computacional que
atenda tais necessidades e avaliação dos efeitos
do uso do sistema na vida das pessoas
design?
design?
COMPLEXIDADE?
DOMAIN-DRIVEN DESIGN
O VALOR AGREGADO PELO DDD
Domain-Driven Design é uma abordagem
particular sobre design
e desenvolvimento de software!
DDD é sobre “mastigar” conhecimento de um
dado domínio de negócio e produção de um
modelo de software que o espelhe.
DOMAIN-DRIVEN DESIGN
Os dois grandes erros
Adotar Domain-Driven Design só
porque isso lhe
soa legal
Ou simplesmente ignorá-lo por acreditar que seu
sistema é um pouco mais complexo que
um simples CRUD
DOMAIN-DRIVEN DESIGN
em duas partes distintas
Domain-Driven Design
Visão analítica
ESPAÇO DE PROBLEMA
Domain-Driven Design
Visão estratégica
ESPAÇO DE SOLUÇÃO
DOMAIN-DRIVEN DESIGN
visão analítica
DOMAIN-DRIVEN DESIGN
visão analítica
DOMAIN-DRIVEN DESIGN
ubiquitous language
ATACANDO A COMPLEXIDADE?
DDD é sobre a
Redução de complexidade
No software
Eric Evans
Arquitetura é sobre
intenção
Robert C. Martin
DOMAIN-DRIVEN DESIGN
visão estratégica
DOMAIN-DRIVEN DESIGN
visão estratégica
ATACANDO A COMPLEXIDADE?
ATACANDO A COMPLEXIDADE?
DOMAIN-DRIVEN DESIGN
bounded context
DOMAIN-DRIVEN DESIGN
bounded context: UMA VISÃO CLÁSSICA
DOMAIN-DRIVEN DESIGN
bounded context: UMA VISÃO MODERNA
DOMAIN-DRIVEN DESIGN
bounded context: UMA VISÃO MODERNA
DOMAIN-DRIVEN DESIGN
dividindo bounded context
DOMAIN-DRIVEN DESIGN
bounded context: EXPLORANDO ARQUITETURAS
DOMAIN-DRIVEN DESIGN
bounded context : extrAINdo api
DOMAIN-DRIVEN DESIGN
bounded context: EVOLUINDO LEGADO
DOMAIN-DRIVEN DESIGN
bounded context: COMUNICAÇÃO
DOMAIN-DRIVEN DESIGN
bounded context: COMUNICAÇÃO
REFERÊNCIAS : livros
Implementing
Domain-Driven Design
Vaughn	Vernon
ISBN-13: 860-1404568893
ISBN-10: 0321834577
Domain-Driven Design: Tackling
Complexity in the Heart of
Software
Eric	Evans
ISBN-13: 978-0321125217
ISBN-10: 0321125215
Patterns, Principles, and Practices
of Domain-Driven Design
Scott	Millett
ISBN-13: 978-1118714706
ISBN-10: 1118714709
Microsoft .NET - Architecting
Applications for the Enterprise
Dino	Esposito
ISBN-13: 978-0735685352
ISBN-10: 0735685355
https://goo.gl/N16BhM

Atacando as complexidades no coração do software