19
DDD - CICATRIZES DE GUERRA Fabrício Rissetto

DDD - Cicatrizes de guerra

Embed Size (px)

Citation preview

Page 1: DDD - Cicatrizes de guerra

DDD - CICATRIZES DE GUERRA

Fabrício Rissetto

Page 2: DDD - Cicatrizes de guerra

CONTEXTO DO PROBLEMA

Diversos sistemas legados acessando diretamente uma única base

Page 3: DDD - Cicatrizes de guerra

CONTEXTO DO PROBLEMAProcedures

9000+Tabelas

2000

+ Views, Functions

Page 4: DDD - Cicatrizes de guerra

CONTEXTO DO PROBLEMARegras de negócio no banco de dados

Page 5: DDD - Cicatrizes de guerra

SOLUÇÃO Criar uma aplicação para

centralizar essas regras expondo dados via Web API

Mapeamento das tabelas usando EF

SDK Muitos testes unitários!

Page 6: DDD - Cicatrizes de guerra

LET’S DO THIS

Page 7: DDD - Cicatrizes de guerra

ENTITY FRAMEWORK

Page 8: DDD - Cicatrizes de guerra

DOMAIN MODEL VS PERSISTENCE MODEL Domain Model:

Private Set!

Construtor evidenciando

regras de inicialização

Construtor pro que faz

sentidoConstrutor pro que faz

sentido

Métodos que revelam

intenção e encapsulam

regras de negócio

Page 9: DDD - Cicatrizes de guerra

DOMAIN MODEL VS PERSISTENCE MODEL Persistence Model:

Fluent Mapping:

Page 10: DDD - Cicatrizes de guerra

DOMAIN MODEL VS PERSISTENCE MODEL Dois em um:

Page 11: DDD - Cicatrizes de guerra

DOMAIN MODEL VS PERSISTENCE MODEL Juntas Vantagens:

Boost no desenvolvimento Desvantagens:

Quanto maior a diferença maior a dificuldade

Medo de refactorings

Separadas Vantagens:

Liberdade para modelar o domínio Prontos para Bounded Contexts

Desvantagens: Maior esforço em conversões Perda das vantagens de utilizar

ORM

Dapper.NET!

Page 12: DDD - Cicatrizes de guerra

BOUNDED CONTEXTS

Page 13: DDD - Cicatrizes de guerra

BOUNDED CONTEXTS

Page 14: DDD - Cicatrizes de guerra

CQRS

Page 15: DDD - Cicatrizes de guerra

CQRSE pra popular um dropdown?

Page 16: DDD - Cicatrizes de guerra

CQRS

Page 17: DDD - Cicatrizes de guerra

BOUNDED CONTEXTS EM MICROSERVICES

WS

Page 18: DDD - Cicatrizes de guerra

THOUGHTSDDD não é bala de prata

SmartUI as vezes é mais adequado Domínio simples (crud intensive) Equipe inexperiente Foco é o prazo

Avaliar uso de ORMAvaliar separação Command/Query

Page 19: DDD - Cicatrizes de guerra

CONTATOE-mail: [email protected]: fabriciorissetto.comObrigado!