Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Sławomir Sobótka

Przewodnik

strukturyzacji

architektury systemu

slawomir.sobotka@bottega.com.pl

http://code.google.com/p/ddd-cqrs-sample/

http://art-of-software.blogspot.com

http://ssepp.pl

10,5 klasycznych technik programistycznych leżących u podstaw

nowoczesnej inżynierii oprogramowania

Domain Driven Design

Baza danych nie jest modelem

Czym jest model...?

Złożoność

Esencjonalna

Przypadkowa

  • zależy od problemu
  • wynika z jego natury i jest nieunikniona
  • zależy od rozwiązania
  • wynika z wybranego podejścia i może być nieograniczona:)

Responsibility Driven Design

Rebecca J. Wirfs-Brock

System monolityczny

vs

żywy organizm

Role i odpowiedzialności

  • Controller
  • Coordinator
  • Information Holder
  • Information Provider
  • Interfacer (Transformer)
  • Service Provider
  • Structurer

Bounded Contexts...

Module #2

Warstwa prezentacji

Piramida testów

Logika Aplikacji

Odczyt danych do prezentacji

Szacowana ilość

testów end2end

"poprzez logikę aplikacji"

Model prezentacyjny

1% z tej liczby to wiciąż dużo

  • Dane odpowiednie dla widoku
  • "szyte na miarę"
  • Hermetyzacja modelu domenowego

30 * 40 * 50 = 60 000

(Invoice)

(BookKeeper)

(Order)

Model Domeny

Decission Support

Rebate Wizard

Product Equivalent Suggestion

  • Mechanizmy analityczne
  • "Inteligencja"
  • Mała podatność na zmiany

Knowledge Level

Specification

Supple Design

Policy

&&

Przykład

Bank n

Bank 1

II

&&

W49

W1

||

&&

W3

W1

W2

W3

&&

Pula warunków

W1

W2

Wn

Tax Policy

  • Odzwierciedlenie celów i reguł (prawnych)
  • Strategie, ograniczenia
  • Średnia podatność na zmiany

functional

Przykładowa ilość

testów jednostkowych

(dla modelu domeny)

Domknięcie

operacji

<<Aggregate>>

<<Domain Service>>

<<Aggregate>>

Order

BookKeeper

Invoice

Operations

<<Factory>>

Visitor

(De) coupling by Google

  • Call
  • Contain
  • Create
  • Odzwierciedlenie stanu biznesu, aktywności i planów
  • Aktualnie wykorzystane możliwości
  • Duża podatność na zmiany

30 + 40 + 50 = 120

Role Object

Role Object #2

Trait / Mixin

(Capability + Operations)

Invoicing Bounded Context

User

Invoice Corrector

Bilet do metra

Medium

Lenient

Standard

Supervisor

Toudi

Admin

Bilet na koncert

Karta X

Karta Y

Token SMS

CRM Bounded Context

Claim Handler

Standard

Fast

Doładowanie konta X

(Invoice)

(BookKeeper)

(Order)

Operational Level

"Make explicit what is implicit"

Capability

<<Value Object>>

Immutable

Technologia dostępu do danych odpowiednia do problemu

Adapter Design Pattern

  • Odzwierciedlenie stanu biznesu, zasobów
  • Potencjalne możliwości
  • Średnia podatność na zmiany

Koncepcja z modelu domenowego

Typ

"techniczny"

  • Brak narzutu (Lazy Loading, Dirty Checking)
  • Pobieranie jedynie istotnych danych
  • Spłaszczenie danych do 2NF (noSQL)

Warstwa infrastruktury

(dostęp do danych, servisy techniczne)

Events Engine

Sławomir Sobótka

Learn more about creating dynamic, engaging presentations with Prezi