Loosely Coupled DDD

93
Loosely Coupled DDD A humble presentation by Juan Angosto @juanangosto

Transcript of Loosely Coupled DDD

Page 1: Loosely Coupled DDD

Loosely Coupled DDD

A humble presentation by Juan Angosto@juanangosto

Page 2: Loosely Coupled DDD
Page 3: Loosely Coupled DDD
Page 4: Loosely Coupled DDD
Page 5: Loosely Coupled DDD
Page 6: Loosely Coupled DDD
Page 7: Loosely Coupled DDD
Page 8: Loosely Coupled DDD
Page 9: Loosely Coupled DDD

But we Get Things Done*

*©David Allen - @GTDGuy

Page 10: Loosely Coupled DDD
Page 11: Loosely Coupled DDD
Page 12: Loosely Coupled DDD
Page 13: Loosely Coupled DDD
Page 14: Loosely Coupled DDD
Page 15: Loosely Coupled DDD
Page 16: Loosely Coupled DDD
Page 17: Loosely Coupled DDD
Page 18: Loosely Coupled DDD
Page 19: Loosely Coupled DDD

SOLID

Page 20: Loosely Coupled DDD

SOLID

CQRS

Page 21: Loosely Coupled DDD

SOLID

CQRSTDD

Page 22: Loosely Coupled DDD

SOLID

CQRSTDD

BDD

Page 23: Loosely Coupled DDD

SOLID

CQRSTDD

BDDDDD

Page 24: Loosely Coupled DDD

DDD?

Page 25: Loosely Coupled DDD

Developm

ent

Page 26: Loosely Coupled DDD
Page 27: Loosely Coupled DDD
Page 28: Loosely Coupled DDD
Page 29: Loosely Coupled DDD
Page 30: Loosely Coupled DDD
Page 31: Loosely Coupled DDD

$ symfony new dungeons_and_dragons

Page 32: Loosely Coupled DDD

$ php bin/console doctrine:database:create

Page 33: Loosely Coupled DDD

$ php bin/console doctrine:generate:entity

Page 34: Loosely Coupled DDD

$ php bin/console doctrine:generate:crud

Page 35: Loosely Coupled DDD

$ php bin/console doctrine:schema:update --force

Page 36: Loosely Coupled DDD

$ php bin/console server:run

Page 37: Loosely Coupled DDD
Page 38: Loosely Coupled DDD
Page 39: Loosely Coupled DDD
Page 40: Loosely Coupled DDD
Page 41: Loosely Coupled DDD
Page 42: Loosely Coupled DDD
Page 43: Loosely Coupled DDD
Page 44: Loosely Coupled DDD
Page 45: Loosely Coupled DDD
Page 46: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DATA

PO

RT

UI P

ORT

REDI

S AD

APTE

RM

YSQ

L AD

APTE

R

API A

DAPT

ERW

EB A

DAPT

ER

Page 47: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

UI

PERSISTENCE

CACHE

Page 48: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DMZ

Page 49: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DATA

PO

RT

UI P

ORT

DMZ

Page 50: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DATA

PO

RT

UI P

ORT

REDI

S AD

APTE

RM

YSQ

L AD

APTE

R

API A

DAPT

ERW

EB A

DAPT

ER DMZ

Page 51: Loosely Coupled DDD
Page 52: Loosely Coupled DDD

Battle

Player

Page 53: Loosely Coupled DDD

Components

- Application- Domain- Infrastructure

Page 54: Loosely Coupled DDD

Components

- Application (Workflow coordination)- Domain- Infrastructure

Page 55: Loosely Coupled DDD

Components

- Application- Domain (Business logic)- Infrastructure

Page 56: Loosely Coupled DDD

Components

- Application- Domain- Infrastructure (Communication between

layers and external elements)

Page 57: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DMZ

Page 58: Loosely Coupled DDD

Components

- Player- Application- Domain- Infrastructure

- Battle- Application- Domain- Infrastructure

Page 59: Loosely Coupled DDD
Page 60: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DATA

PO

RT

DMZ

Page 61: Loosely Coupled DDD

Components

- Player- Application- Domain- Infrastructure

- Battle- Application- Domain- Infrastructure

Page 62: Loosely Coupled DDD
Page 63: Loosely Coupled DDD

getAll()

Page 64: Loosely Coupled DDD
Page 65: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DATA

PO

RT

MYS

QL

ADAP

TER

DMZ

Page 66: Loosely Coupled DDD

$ php bin/console generate:bundle

Page 67: Loosely Coupled DDD
Page 68: Loosely Coupled DDD
Page 69: Loosely Coupled DDD
Page 70: Loosely Coupled DDD
Page 71: Loosely Coupled DDD
Page 72: Loosely Coupled DDD
Page 73: Loosely Coupled DDD
Page 74: Loosely Coupled DDD
Page 75: Loosely Coupled DDD
Page 76: Loosely Coupled DDD
Page 77: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DATA

PO

RT

UI P

ORT

DMZ

MYS

QL

ADAP

TER

Page 78: Loosely Coupled DDD

Components

- Player- Application- Domain- Infrastructure

- Battle- Application- Domain- Infrastructure

Page 79: Loosely Coupled DDD
Page 80: Loosely Coupled DDD
Page 81: Loosely Coupled DDD
Page 82: Loosely Coupled DDD
Page 83: Loosely Coupled DDD
Page 84: Loosely Coupled DDD
Page 85: Loosely Coupled DDD

DOMAIN

BUSINESS LOGIC

DATA

PO

RT

UI P

ORT

REDI

S AD

APTE

RM

YSQ

L AD

APTE

R

API A

DAPT

ERW

EB A

DAPT

ER DMZ

Page 86: Loosely Coupled DDD
Page 87: Loosely Coupled DDD
Page 88: Loosely Coupled DDD
Page 89: Loosely Coupled DDD
Page 90: Loosely Coupled DDD
Page 91: Loosely Coupled DDD

DDD in PHP google group: https://groups.google.com/forum/#!forum/dddinphp

Mathias Verraes blog: http://verraes.net/

Carlos Buenosvinos Youtube series: https://www.youtube.com/watch?v=uvKS6UCUZes&list=PLfgj7DYkKH3DjmXTOxIMs-5fcOgDg_Dd2

Vaugh Vernon blog: http://vaughnvernon.co/

Page 92: Loosely Coupled DDD