[jdd2013] mantra architektoniczna 2.0

40
Mariusz Sieraczkiewicz Mantra architektoniczna

Upload: bns-it

Post on 09-May-2015

1.323 views

Category:

Technology


0 download

DESCRIPTION

www.bnsit.pl

TRANSCRIPT

Page 1: [JDD2013] Mantra Architektoniczna 2.0

Mariusz Sieraczkiewicz

Mantra architektoniczna

Page 2: [JDD2013] Mantra Architektoniczna 2.0

Gdzie marnujemy nasz czas?

Page 3: [JDD2013] Mantra Architektoniczna 2.0

Nie ma czasu na testy

Nie ma czasu na refaktoryzację

Nie ma czasu na przeglądy kodu

Page 4: [JDD2013] Mantra Architektoniczna 2.0

To gdzie jest czas?

Page 5: [JDD2013] Mantra Architektoniczna 2.0

Jestem nowy

Page 6: [JDD2013] Mantra Architektoniczna 2.0

Przegląd kodu

Bug

Page 7: [JDD2013] Mantra Architektoniczna 2.0

Tracimy mnóstwo czasu, dlatego nie

mamy go na rzeczy ważne.

Page 8: [JDD2013] Mantra Architektoniczna 2.0

Z jakich klocków

składa się Twój system?

Page 9: [JDD2013] Mantra Architektoniczna 2.0

Co robi Controller*?

Czy wszyscy podadzą tę samą odpowiedź?

TĘ SAMĄ!

Page 10: [JDD2013] Mantra Architektoniczna 2.0

Maine name ist James Joyce. I’m going na

wakacje pokuszac haraszo …

Page 11: [JDD2013] Mantra Architektoniczna 2.0

EROZJA ARCHITEKTURY

Page 12: [JDD2013] Mantra Architektoniczna 2.0

Zrób sobie test

Page 13: [JDD2013] Mantra Architektoniczna 2.0

Krzywa GAUSSA?

Zadowolenie = Rzeczywistość -

Oczekiwania

Page 14: [JDD2013] Mantra Architektoniczna 2.0

Co to jest ta #$Q%*#MANTRA?

Page 15: [JDD2013] Mantra Architektoniczna 2.0

O trzeciej nad ranem każda

osoba w zespole jest w stanie

bez zająknięcia powiedzieć, z

jakich klocków składa się

system i jakie są ich

odpowiedzialności

Page 16: [JDD2013] Mantra Architektoniczna 2.0

i wSZYsCyoDpOWiEdzĄ

TO SAMo

Page 17: [JDD2013] Mantra Architektoniczna 2.0

Bloki budujące- wizualizuj -

Odpowiedzialności- zdefiniuj –

Proces- napędzaj -

MANTR

A

Page 18: [JDD2013] Mantra Architektoniczna 2.0
Page 19: [JDD2013] Mantra Architektoniczna 2.0

Widok z lotu ptaka

Prostota

Page 20: [JDD2013] Mantra Architektoniczna 2.0
Page 21: [JDD2013] Mantra Architektoniczna 2.0

oparte o DDD

Page 22: [JDD2013] Mantra Architektoniczna 2.0

styl anemiczny

Page 23: [JDD2013] Mantra Architektoniczna 2.0

A jak to wygląda w Twoim systemie?

Page 24: [JDD2013] Mantra Architektoniczna 2.0

Co jeszcze?

Page 25: [JDD2013] Mantra Architektoniczna 2.0
Page 26: [JDD2013] Mantra Architektoniczna 2.0

Value Object• Grupuje dane należące

do pewnej całości• Nie jest trwale

przechowywany• Pozwala nazwać

konkretny byt z domeny• Nie jest unikatowy– NumerTelefonu,

KodPocztowy,• Implementowany w

oparciu o wzorzec Immutable

• . . .

Entity• Obiekt, który musi

być unikatowy• Posiada dane oraz

zachowanie biznesowe

• Jest trwale przechowywany

• Unikatowość obiektu zależy od konkretnego kontekstu i domeny

• . . .

Odpowiedzialności

Page 27: [JDD2013] Mantra Architektoniczna 2.0

Repository• Wyznacza warstwę

do trwałego przechowywania danych

• Abstrahuje od konkretnego sposobu persystencji

• Zachowuje interfejs kolekcji

• …

Application Service• Mieści się w

warstwie aplikacji• Wykonuje

przetwarzanie wyznaczone przez przypadki użycia

• . . .

Odpowiedzialności

Page 28: [JDD2013] Mantra Architektoniczna 2.0

Nie chodzi o definicje książkowe…

Page 29: [JDD2013] Mantra Architektoniczna 2.0
Page 30: [JDD2013] Mantra Architektoniczna 2.0

Jak powinno być? Co się powinno dziać?1. Przyjmuje request2. Dokonuje złożonej

walidacji3. Składa dane do

wywołania serwisu4. Wywołuje serwis5. Wynik pakuje w

JSONa6. Określa kolejny widok

Jak jest?Dzieje się wszystko.

Czego nie powinno być?• Prostej walidacji (gdyż do

tego celu wykorzystujemy framework webowy)

• Złożonego przetwarzania JSONa (z serwisu nie powinien przychodzić JSON)

• Logiki dziedzinowej np. decydowanie na podstawie danych czy zlecenie ma być wykonane

Co powinno a co nie powinno?

Page 31: [JDD2013] Mantra Architektoniczna 2.0
Page 32: [JDD2013] Mantra Architektoniczna 2.0

1. Zdefiniuj jak jest i jak powinno być

2. Rozpowszechnij3. Monitoruj – przeglądy kodu,

DoD4. Rób retrospekcje

5. Modyfikuj

Page 33: [JDD2013] Mantra Architektoniczna 2.0

LEGACY

Page 34: [JDD2013] Mantra Architektoniczna 2.0

Mantra ma kilka wcieleń

Page 35: [JDD2013] Mantra Architektoniczna 2.0

PUŁAPKImentalne

Page 36: [JDD2013] Mantra Architektoniczna 2.0

Mantra wydaje się oczywista

DDD, JEE, MVC

Page 37: [JDD2013] Mantra Architektoniczna 2.0

„Przecież ludzie to wiedzą na

bazie systemu!”

Page 38: [JDD2013] Mantra Architektoniczna 2.0

Jest ona tylko w głowie

architekta i lidera

Page 39: [JDD2013] Mantra Architektoniczna 2.0
Page 40: [JDD2013] Mantra Architektoniczna 2.0

?