ddd

11
DOMAIN DRIVEN DESIGN

Upload: pau-lopez

Post on 19-Jan-2017

175 views

Category:

Software


0 download

TRANSCRIPT

Page 1: DDD

DOMAIN DRIVEN DESIGN

Page 2: DDD

ERNI - Innovation in Process and TechnologyPágina 3

What is DDD about? The problem first

DOMAIN PROBLEM

• The subject area for which you are building software.

• Sphere of knowledge, influence or activity.

COMPLEXITY• Tackling complexity.

• Focus on the core problem domain.

COLLABORATION

• Technical Experts and Business Experts must share the same language.

• Ubiquitous Language

Page 3: DDD

ERNI - Innovation in Process and TechnologyPágina 4

What is NOT ONLY DDD about? The technology second

ARCHITECTURE / FRAMEWORKS• Don’t be fooled by fancy frameworks

DESIGN PATTERNS• Object Oriented Design Patterns.

METHODOLOGY• Apply an agile/iterative methodology

Page 4: DDD

ERNI - Innovation in Process and TechnologyPágina 5

When to apply DDD

• Medium high problem domain of high importance to the customer business

Complex Problem Domain

• Aligned to the vision of the project

Access to Domain Experts

• Eager to learn about the problem domain.

Skilled, Motivated and

Passionate Team

Page 5: DDD

ERNI - Innovation in Process and TechnologyPágina 6

When and Why apply DDD?D

evel

opm

ent

Effo

rt

ComplexityBi

g Ba

ll of

Mud

Domain

Problem

Domain

Driven Design

Low complexity project

High complexity project

Overengineering

CRUD Design

Page 6: DDD

ERNI - Innovation in Process and TechnologyPágina 10

How to apply DDD: Divide the problem domain

Product BuilderPromotionRetention

NotificationShipping

LoyaltyInventory

ShoppingFulfillment

Sales

Procurement

E-CommerceCore

Domain

Generic Domains

Supporting Domain

Page 7: DDD

ERNI - Innovation in Process and TechnologyPágina 12

Ubiquitous Language: One Team, One Language

Technical Expert

Jargon

Ubiquitous Language

JargonBusiness Expert

Page 8: DDD

ERNI - Innovation in Process and TechnologyPágina 13

Ubiquitous Language : Connect the analysis model with the code

UBIQUITUOUS LANGUAGE

DOMAIN EXPERTS

DEVELOPMENT TEAM

Page 9: DDD

ERNI - Innovation in Process and TechnologyPágina 17

What’s next?

SERVICE ITEM

•Starting point and basic knowledge about DDD.

NETWORKING

•Build up a network for sharing DDD project experiences

EXPERTISE

•DDD Point Of Contact in the company.

•Provide DDD expertise for new projects.

Page 10: DDD

ERNI - Innovation in Process and TechnologyPágina 19

Questions

Page 11: DDD

ERNI - Innovation in Process and TechnologyPágina 20

www.erni-consultants.com