Czas przestoju to dobry czas na ostrzenie piły, żeby nie piłować tępą. Wyostrz z nami modelowanie obiektowe i funkcyjne oraz testowanie automatyczne.
Epizod 1
Smutny kodzik — Syndrom ucieczki
1.0 Wstęp
1.1 WYMAGANIE – Szybka zmiana na demo u klienta: tryb M-dynamic
1.1 IMPL – Szybka szpachla ifem i lecimy bez testów
1.1 KOMENTARZ – Ofiara systemu i środowiska
1.2 WYMAGANIE – Lekka zmiana, trzeba przyczepić przyczepę
1.2 IMPL – Po co mi hermetyzacja
1.2 KOMENTARZ – Fasada czy Optional?
1.3 IMPL – Jednak potrzeba testów na szybko!
1.3 KOMENTARZ – Kiedy Mock nie ma sensu?
1.3 HR – Andrzeju, jak Ci na imię?
1.4 WYMAGANIE – Jeszcze tylko mała_kosmetyczna_zmiana bo to wszystko działa troszkę inaczej
1.4 That’s life
Epizod 2
Smutny kodzik — The beginning
2.0 WSTĘP
2.1 WYMAGANIA – Jest taki mały projekcik do zrobienia
2.1 ANALIZA – Modelowanie problemu przez User Interface to nie może być zły pomysł-tak było w szkole
2.1 IMPL – Zobacz młody jak to się robiło przed III wojną Mandżulską
2.1 KOMENTARZ – Zapowiada się jak zwykle
2.1 IMPL – Dobry Main nie jest zły
2.2 WYMAGANIE – tryby działania: Eco, Comfort, Sport – wszystko masz w ekscelu
2.2 IMPL – enum zamiast ifów – to odróżnia seniora od juniora
2.2 KOMENTARZ – Powtarzać się czy nie?
2.3 WYMAGANIE – Kickdown
2.3 ANALIZA
2.3 IMPL – Po co tworzyć tyle klas?!?
2.3 KOMENTARZ – Czy zawsze warto usuwać duplikację kodu?
2.4 WYMAGANIE Łopatki w trybie manualnym i hamowanie silnikiem
2.4 IMPL – Gettery i Settery i mamy hermetyzację
2.4 KOMENTARZ – Obiektowo czy strukturalnie?
2.5 WYMAGANIE To już ostatni ficzer: tryby agresywności
2.5 IMPL – Eksplozja kombinatoryczna
2.5 KOMENTARZ – Nie możesz nie mieć modelu ani architektury – zawsze jakieś masz, czasem po prostu złe
2.6 KONKURS
Epizod 3
Nowy początek
3.0 WSTĘP
3.1 SZEF – Zmiana taktyki
3.1 DEVELOPMENT – Single Responsibility Principe w praktyce
3.1 CODE REV – Praktykant #17
3.2.1 DEVELOPMENT Value Objects – wstęp
3.2.2 DEVELOPMENT Value Objects – czy Enum to zawsze dobry pomysł?
3.2.3 DEVELOPMENT Niespodzianka! Value Objects! – NIE KODUJ, pisz prozę!
3.2.4 DEVELOPMENT Znowu Value Objects – Jak łatwo źle przypisać odpowiedzialność…
3.2.5 DEVELOPMENT Anti Corruption Layer – nie pozwól aby zgnilizna przechodziła na Twój model!
3.2.6 CODE REV – Dzień świra
Epizod 4
Meta-model
4.0 WSTĘP
4.1.1 IMPL Typowy błąd: klasa per gałąź switch
4.1.2 CODE REV Narodziny Uber-Języka
4.2.1 IMPL Trójpodział logiki – meta-model, który uratuje Twoje projekty
4.2.2 CODE REV Zobacz synu jaki debil, woła metodę na interfejsie
4.3.1 IMPL Odchudzamy Driver, separujemy logikę specyficzną dla konkretnego auta do Factory Idiom
4.3.2 CODE REV Rozczulający kodzik
Epizod 5
Nowa architektura
5.1.1 Wstęp
5.1.2 Powrót syna marnotrawnego
5.1.3 Klątwa Staszka
5.1.4 Różnica w spojrzeniu na przepływ danych
5.2.1. Analiza nowej domeny: M2 Competition
5.3.1 Staszek zrobi wszystko lepiej
Epizod 6
add commit push
6.1 Wstęp
6.2 Ports & Adapters bez Hexagonu
6.3 Kodzik
6.4 Testujemy BMW M8 Competition
6.5 StaszekDaemon started
6.6 Epilog
Ile to kosztuje?
Całość jest za darmo
Jeżeli chcesz się odwdzięczyć, to zrób komuś bezinteresowną przysługę
Podziel się tym kursem z innymi
O autorach
Jakub Pilimon
Miłośnik DDD, OOP oraz TDD. Developer/Architekt pod kątem inżynierskim głównie zainteresowany modelowaniem oraz architekturą. Swój wysiłek skupia na czytelności kodu, skalowalności oraz wydajności.
Podczas dotychczasowej kariery projektował oraz implementował systemy dla branży finansowej, medycznej, telekomunikacyjnej oraz energetycznej.
Prywatnie fanatyk piłki nożnej, narciarstwa i jazdy motocyklem.
Sławomir Sobótka
Od 10 lat jestem trenerem i konsultantem w firmie Bottega IT Minds.
W codziennej pracy integruję Domain Driven Design, Event Storming, style architektoniczne, zwinne procesy wytwórcze i zdrowy rozsądek.
Stosuję nadrzędną zasadę: rozpoznać klasę problemu z jaką mamy do czynienia i dobrać do niej odpowiednią klasę narzędzia.
Hobbystycznie interesuję się psychologią pozytywną i kognitywistyką. Lubię myśleć o sobie jako entuzjaście Software Craftsmanship.
slawomir.sobotka@bottega.com.pl