29
CQRS in der Praxis NEWSLETTER DOUBLE-OPT-IN

CQRS in der Praxis - Newsletter Double-Opt-In

Embed Size (px)

Citation preview

Page 1: CQRS in der Praxis - Newsletter Double-Opt-In

CQRS in der PraxisNEWSLETTER DOUBLE-OPT-IN

Page 2: CQRS in der Praxis - Newsletter Double-Opt-In

MVC – Pattern• 1979 formuliert

• Softwareentwurf für Desktop-Anwendungen

Page 3: CQRS in der Praxis - Newsletter Double-Opt-In

MVC – Pattern – klassisch

Controller

Model

View

View

Page 4: CQRS in der Praxis - Newsletter Double-Opt-In

ServerClient

MVC – Pattern – Web

Controller ModelView

Page 5: CQRS in der Praxis - Newsletter Double-Opt-In

ServerClient

Controller ModelView

MVC – Pattern – Web

Page 6: CQRS in der Praxis - Newsletter Double-Opt-In

ServerClient

Controller ModelView

MVC – Pattern – Web

Page 7: CQRS in der Praxis - Newsletter Double-Opt-In

MVC – Pattern – Web

ServerClient

Controller ModelView

Page 8: CQRS in der Praxis - Newsletter Double-Opt-In

Server

MVC – Pattern – Web

Client

Controller ModelView

Page 9: CQRS in der Praxis - Newsletter Double-Opt-In

MVC – Pattern – Web – Probleme• Systemgrenze

• HTTP-Request

• Subject-Observer

• Single-Responsibility

Page 10: CQRS in der Praxis - Newsletter Double-Opt-In

MVC – Pattern – Web – Probleme• HTTP-Request

• Subject-Observer

• Single-Responsibility

Page 11: CQRS in der Praxis - Newsletter Double-Opt-In

MVC – Pattern – Web – Probleme• HTTP-Request

• Subject-Observer

• Single-Responsibility

Page 12: CQRS in der Praxis - Newsletter Double-Opt-In

MVC – Pattern – Web – Probleme• HTTP-Request

• Single-Responsibility

Page 13: CQRS in der Praxis - Newsletter Double-Opt-In

Server

HTTP-Request

Client

Controller

ModelView

GET

Page 14: CQRS in der Praxis - Newsletter Double-Opt-In

Client Server

HTTP-Request

ReadController

ModelView

GET

Page 15: CQRS in der Praxis - Newsletter Double-Opt-In

Client Server

HTTP-Request

ReadController

ModelView

GET

WriteController

POST

Page 16: CQRS in der Praxis - Newsletter Double-Opt-In

Client Server

HTTP-Request

ReadController

ModelView

GET

WriteController

POST

GET

Page 17: CQRS in der Praxis - Newsletter Double-Opt-In

Probleme• HTTP-Request

• Single-Responsibility

Page 18: CQRS in der Praxis - Newsletter Double-Opt-In

Probleme• Single-Responsibility

Page 19: CQRS in der Praxis - Newsletter Double-Opt-In

Client Server

Single-Responsibility

ReadController

ModelView

GET

WriteController

POST

GET

Page 20: CQRS in der Praxis - Newsletter Double-Opt-In

Client Server

Single-Responsibility

Read Controller

ModelView

GET

POST

GET

ReadHandler

WriteHandler

Write Controller

Page 21: CQRS in der Praxis - Newsletter Double-Opt-In
Page 22: CQRS in der Praxis - Newsletter Double-Opt-In

Client Server

CQRS

Read Controller

ModelView

GET

POST

GET

ReadHandler

WriteHandler

Write Controller

Page 23: CQRS in der Praxis - Newsletter Double-Opt-In

Client Server

CQRS – Command Query Responsibilty Segregation

Read Controller

ModelView

GET

POST

GET

QueryHandler

CommandHandler

Write Controller

Page 24: CQRS in der Praxis - Newsletter Double-Opt-In

Livecoding

Page 25: CQRS in der Praxis - Newsletter Double-Opt-In

Newsletter Double-Opt-In – User Stories

• Als User kann ich meine E-Mail Adresse anmelden, um den Newsletter zu erhalten.

• Als User erhalte ich eine E-Mail nach Anmeldung, um diese zu bestätigen.

• Als User kann ich die Bestätigungs-E-Mail erneut anfordern, um meine E-Mail Adresse zu bestätigen.

• Als User kann ich meine E-Mail Adresse bestätigen, um die Anmeldung abzuschließen.

• Als User erhalte ich eine Welcome E-Mail, sodass ich über den Abschluss der Anmeldung informiert bin.

Page 26: CQRS in der Praxis - Newsletter Double-Opt-In

Client

CQRS + SOA – Our best practice

QueryHandler

Reposi-toryView

GET

POST

GET

GetRequestHandler

PostRequestHandler

Called dynamically

CommandHandler

ReadService

Query

WriteService

Command

Called explicitly

Page 27: CQRS in der Praxis - Newsletter Double-Opt-In

Empfehlungen• Einführung in CQRShttp://martinfowler.com/bliki/CQRS.html

• MVC in Webanwendungen https://entwickler.de/online/php/model-view-controller-in-webanwendungen-138762.html

• Wartbares Design dank CQRShttps://entwickler.de/online/development/wartbares-design-dank-cqrs-139615.html

Page 28: CQRS in der Praxis - Newsletter Double-Opt-In

Empfehlungen

https://github.com/fortuneglobe/icehawk

Page 29: CQRS in der Praxis - Newsletter Double-Opt-In

Vielen Dank• Slides abrufbarhttp://www.phpind.de

• Beispiel-Projekt abrufbarhttps://github.com/PHPinDD/cqrs-newsletter-double-opt-in