www.bnsit.pl
# Homodeus
Tytuł aktualnie wyświetlanego slajdu
Zwiększamy efektywność zespołów projektowych 2
Pełny tytuł szkolenia
# Czypotrzebujemykolejnejarchitektury?
• Hexagonal/PortandAdapters
• Warstwy
• Pipe-and-filters
• Microservices
Clean architecture
Zwiększamy efektywność zespołów projektowych 3
Pełny tytuł szkolenia
www.bnsit.pl
Tytuł aktualnie wyświetlanego slajdu
Zwiększamy efektywność zespołów projektowych 4
Pełny tytuł szkolenia
Tytuł aktualnie wyświetlanego slajdu
Zwiększamy efektywność zespołów projektowych 5
Pełny tytuł szkolenia
# Kodktóryczytasięjakksiążkę
# Usecases
# #noFrameworks
# BusinessDriven
Zwiększamy efektywność zespołów projektowych 6
Atymczasem…
(tupowinienbyćrysunekobrazującychaosispagheP)
Zwiększamy efektywność zespołów projektowych 7
Atymczasem…
(tupowinienbyćrysunekobrazującychaosispagheP)
Zwiększamy efektywność zespołów projektowych 8
www.bnsit.pl Zwiększamy efektywność zespołów projektowych 14
hRps://8thlight.com/blog/assets/posts/2012-08-13-the-clean-architecture/CleanArchitecture-8b00a9d7e2543fa9ca76b81b05066629.jpg
www.bnsit.pl
Głównyscenariuszpowodzenia:1.Systemwyświetlaużytkownikowistronelogowaniazpolamiloginuihasła2.Użytkownikpodajeloginihasło3.Systempozytywnieweryfikujepodaneprzezużytkownikadane4.Użytkownikzostajezalogowany
Przypadki użycia?
Zwiększamy efektywność zespołów projektowych 15
www.bnsit.pl
Scenariuszealternatywne:2.1–Użytkownikniemajeszczeswojegokonta,systemproponujeUC-05–rejestracjanowegoużytkownika.3.1-Systemnegatywnieweryfikujepodaneprzezużytkownikadane.Systemponownieprosiużytkownikaopodanieloginuihasła.3.2–Systemnegatywnieweryfikujepodaneprzezużytkownikadane,systemproponujeUC-07–Proceduraprzypomnieniahasła.3.3-Systemnegatywnieweryfikujepodaneprzezużytkownikadane(n>3).Systemblokujekontoklienta(UC-09-blokadakontaklienta)
Przypadki użycia?
Zwiększamy efektywność zespołów projektowych 16
www.bnsit.pl
# Jasnaseparacjawarstw-nietylkooddzielamydomenyalei„warstwy”
# Względniełatwawymianawarstwytechnologicznej
# Architekturadobrzeotwieranaróżnychklientów
# Testowalność-przyzachowaniuinterfejsówniemalwkażdąstronę
# Możnarozwijaćlogikędziedzinowąniezależnieodtechnikaliów
Zalety
Zwiększamy efektywność zespołów projektowych 41
www.bnsit.pl
# JaktosięmadoUC?# Dużazłożoność,szczególnieprzypurystycznejimplementacji• Dużailośćinterfejsównagranicachmiędzywarstwami
# Osobnemodeledladziedziny,repository,widoku,interactoraCzywspółdzielićmodeleRepositoryiEnpty?• Purystycznie–konfiguracjazewnętrzna(XML,fluentapi)• Akceptujemyniektóreadnotacje(np.wJava@Inject,ORM)
• Dwiewersje–czystaizadnotacjami„nadpisana”# DependencyInversionwprowadzaniebezpośredniośćkomunikacji(zdegenerowanyobserwator)
Wady
Zwiększamy efektywność zespołów projektowych 42
www.bnsit.pl
# Złożonedziedziny–wpołączeniuzDDD# Krytycznesystemy/aplikacje# Zespołyowysokichkompetencjach# Wieluklientów# Dladługotrwałychprojektów• DlakilkutygodniowychlubCRUDowychtobędziekiller
• Chybażechceszpotrenować# RaczejewolucjawstronęCleanArchitecture• CleanArchitectureniejestKISS
Kiedy używać?
Zwiększamy efektywność zespołów projektowych 43
www.bnsit.pl
# hRp://worldversus.com/img/terminator.jpg# hRps://sites.google.com/site/unclebobconsulpngllc/# hRp://lenagroeger.s3.amazonaws.com/talks/nicar-2015/pmelines-nicar/
pmelines.html# hRp://alistair.cockburn.us/Hexagonal+architecture# hRp://jeffreypalermo.com/blog/the-onion-architecture-part-1/# hRps://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html# hRps://8thlight.com/blog/uncle-bob/2011/09/30/Screaming-Architecture.html# hRps://github.com/RetroMocha/obvious
Credits
Zwiększamy efektywność zespołów projektowych 44