Domain-Driven Design

⚔️ Moc i magia Domain-Driven Design w świecie Heroes III: Mapa Kontekstów i Hydra - co mają wspólnego i jak kąsają Twój biznes?

Zobrazujemy zależności między modułami i zespołami — kto będzie musiał się do kogo dostosować, a gdzie potrzebne są wspólne ustalenia i partnerstwo. Context Mapping jest w stanie uwidocznić Ci problemy niedostrzegalne na pierwszy rzut oka, ale niestety odczuwalne przez wszystkich. Możesz wziąć niebieską pigułkę i dalej żyć w błogiej nieświadomości, aż brutalne realia projektu nie wyrwą Cię z tego marazmu. Albo przeczytać ten wpis...

⚔️ Moc i magia Domain-Driven Design w świecie Heroes III: EventStorming, Event Modeling, stawianie granic i wysoka jakość bez code review

W jaki sposób zbudować model architektury, gotowy do przełożenia na kod? Jak wyznaczyć co musimy zrobić najpierw i nad czym możemy pracować równocześnie? Dostrzeż w fantastycznej domenie Heroes III analogie do realnych projektów i sprawdź jak wykorzystać DDD i Event Modeling w Twojej pracy. Przeprowadzisz szybkie eksperymenty, zwiększysz jakość i unikniesz naparzanek przy code review, a dodatkowo zaoszczędzisz mnóstwo czasu i pieniędzy.

⚔️ Moc i magia Domain-Driven Design w świecie Heroes III: Modelowanie, modularyzacja i produktyzacja + Bounded Context

Statystyki bohatera wpływają na jednostki w bitwie, a wynik bitwy przecież na armię bohatera. Bohatera możemy zatrudnić w tawernie, która może być zbudowana w mieście, ale nie musi... W takim razie jak do tego podejść, aby znowu nie zginąć w gąszczu ifów i relacji między tabelkami z setkami kolumn? Zobacz jak wyznaczyć autonomiczne moduły i umożliwić powstawanie nowych produktów dzięki analogii do procesów znanych z Heroes III.

🍕 Przepis na udany EventStorming krok po kroku!

Jako programiści głównie musimy się uczyć zasad działania danego biznesu, a powstały kod to tylko skutek uboczny tego procesu. Powiedz, jaka jest wartość dobrego kodu, napisanego na czas i w budżecie, przez kogoś, kto nie zrozumiał problemu do rozwiązania? Można go od razu wyrzucić do kosza. Jako developerzy optymalizujemy naszą aplikację, ale nie proces pozyskiwania wiedzy domenowej. A niestety, aby rozwiązać jakiś problem / zautomatyzować działanie czegoś musimy najpierw dogłębnie zrozumieć o co chodzi. Spisane setki stron analizy biznesowej i diagramy UML tutaj nie pomogą. Wiem to z własnego doświadczenia. Ty pewnie niestety też. EventStorming usprawnia proces zwany „knowledge crunching”, czyli wyciągania wiedzy od osób, które ją mają.

📱 Instagram | Ekspresowa skarbnica wiedzy dla programisty i bezpośredni dostęp do ekspertów! Kogo obserwować?

Ciężko Ci się zebrać do czytania książki albo oglądania kursu online? Łatwiej Ci przychodzi scrollowanie na telefonie? Ta skondensowana forma wiedzy może być właśnie dla Ciebie! Ale kogo tutaj znajdziesz? Influencerzy IT, a może celebryci z gumowymi kaczuszkami w wannie? Nie tylko! Czyli w skrócie: kogo z polskiej branży IT, warto obserwować na Instagramie? Codzienna dawka wiedzy nt. Domain-Driven Design, umiejętności miękkich, Event Stormingu, budowania marki osobistej, tworzenia kursów online. A także angażujące formy interakcji, dzielenia się wiedzą i wiele więcej. Instagram to łatwy i szybki dostęp do specjalistów, podobnie jak konferencyjne kuluary. Wystarczy tylko wysłać "privka"!

🕹️ Domain-Driven Design | Google to tylko jeden guzik i dwa ekrany? + Zadanie z EventStormingu

Mnie tak uczyli i Ciebie pewnie też. Tak wykładają przez lata na uczelni, a jednak branża IT idzie do przodu. "Szukajcie rzeczowników" + tabelka i strzałeczki. Czy to jest właśnie legendarny model? Model danych... być może. Model domenowy - obrazujący problem do rozwiązania, o który chodzi w DDD, skupiony na zachowaniach i zdarzeniach — z pewnością nie! To nie rzeczowniki budują zrozumienie... W skrócie: NIE ZACZYNASZ PROJEKTOWANIA SYSTEMU OD BAZY DANYCH. Ale jak to zrobić?

🇵🇱 Polska na kodach, czyli państwo open-source. Kiedy ustawa staje się "pull requestem"?

Polska Rzeczypospolita Opensourcowa... GitHub wkracza na salę sejmową? Jak cudownie to brzmi! Rewolucja w legislacji? Kiedy ustawa staje się "pull requestem"? Kontynuując myśl jednego z polityków, zobaczymy, jak mógłby działać system państwowy oparty na platformie GitHub. A tym samym poznasz funkcjonalności platformy przydatne w Twoim projekcie. Czy programiści przejmują władzę? A co na to wszystko Konstytucja? Z pomocą przychodzi sztuczna inteligencja w postaci ChatGPT! Podobno przy klawiaturze nie rozmawia się o polityce, dlatego postaramy się zostać w tym dobrym tonie i nie zanurzyć się w meandry waśni politycznych, a przy tym dowiedzieć się na czym polega Prompt Engineering. Czas na ustawowy `git blame`!

🦁 Domain-Driven Design | Bounded Context | Być albo nie być? + zadanie praktyczne!

Pytanie brzmi: kim Ty jesteś? To najważniejsze zdanie, jakie pada w znanej bajce "Król Lew". Odpowiedź na nie totalnie zmienia bieg wydarzeń. Dlatego po poznaniu podstawowych zasad podziału na moduły, będziesz dla swojego projektu, niczym dobry Rafiki (w suahili znaczy przyjaciel) dla zagubionego w świecie Simby. Uchronisz go od sięgnięcia samego dna! Twój kod nie raz potrzebuje pomocy, w zrozumieniu kim właściwie jest. Kolejne instrukcje if-else i rozgałęzienia procesów biznesowych pokazują, że nie jest to takie oczywiste. A niewłaściwy podział na moduły, doprawiony mikroserwisami prowadzi do nieuchronnej katastrofy w projekcie.

🔸 Figma | Przeprowadź EventStorming z gotowym szablonem!

Kotlin jest tylko do aplikacji mobilnych, a Figma nadaje się tylko do robienia mockupów? Jedno i drugie to wielkie kłamstwo! Przeprowadzić EventStorming zdalnie? Jeszcze niedawno sam twórca metody, Alberto Brandolini intencjonalnie zostawił w swojej książce pustą stronę na ten temat. Więc to niemożliwe. Jednak... prawda bywa przeterminowana. Rok 2020 udowodnił, że to bzdura! Szukasz narzędzia, które pozwoli Ci zacząć w łatwy sposób? Użyj mojego sprawdzonego szablonu do EventStormingu za pomocą Figmy!

🐕 O psie, który jeździł koleją. 🚂 Jak zapłacić za koszyk w serwisie PKP? Odrobaczanie systemu.

O psie, który jeździł koleją, albo bardziej o naszym polskim PKPowym `isPies` czy "kłopotliwych zniżkach" słyszał w branży IT już prawie każdy. Chociaż w międzyczasie doszła "szybka szpachla ifem" w postaci fragmentu `if(ZakupBiletuUtil().isCOVID())`, to dzisiaj także nie o tym. Dzisiaj historia z życia na kodach wzięta. Co stanie się, kiedy trzech programistów podejmie się karkołomnego wyzwania zapłacenia za jedyny bilet w koszyku? Czy zwyciężą "Cannot read properties of null"? W jaki sposób wyruszą w swoją podróż? Czy przeprowadzą odrobaczanie? A może się poddadzą? Przeczytaj, jak 3 programistów bilet na PKP kupowało i pokonali siejącego czerwone logi buga, który mieszkał w przypadku brzegowym.

Event Modeling & Modularny Monolit | Od kolorowych karteczek do kodu poprzez TDD

Mikroserwisy — to słowo, na które programistą świecą się oczka, a rekruterzy próbują złowić kandydatów żądnych nowych technologi. Zobacz najpierw jak prawidłowo podzielić monolit na moduły. Wtedy uchronisz się też przed złym cięciem na mikroserwisy i megaporażką Twojego projektu! To wszystko doprawione szczyptą EventModelingu, tak żeby Twój design systemu był zrozumiały nawet dla biznesu!

Jak opanować Domain-Driven Design i Event Sourcing? Mapa rozwoju dla Ciebie

Chcesz dzisiaj zmienić swoje programistyczne myślenie? Przestać widzieć świat w bazach danych i tabelkach a zacząć modelować procesy biznesowe? Wiesz, że można inaczej niż ciągły CRUD w myśl Controller/Service/Repository? Przygotowałem dla Ciebie Miro Board z mapą, która poprowadzi Cię przez krainę Domain-Driven Design, Event Sourcingu i innych ważnych zagadnień. Dzięki temu możesz zostać Developerem, z jakim chce się pracować, a biznes będzie liczył się z Twoim zdaniem.

Emoji-Driven Development | Jak skutecznie zachęcić zespół do pisania (i czytania!) testów jednostkowych dzięki DSL

Umiesz pisać w Test-Driven Development? A czytać testy Twoich kolegów też umiesz? Jako programiści o wiele częściej przeglądamy kod, niż piszemy coś nowego. Dlatego nawet ważniejsza od otwartości na zmiany jest czytelność. Zobacz, jak zastosowanie specjalnego Domain-Specific Language, może zapewnić jedno i drugie w Twoim projekcie.

Listy starego diabła do młodego | Programistyczne pokusy: Primitive Obsession i wyjątki

Więcej grzechów nie pamiętam... Puk, puk! Czy, aby na pewno? Zdajesz sobie sprawę, co ostatnio zakodowałeś? Zobacz jakim pokusom ulegamy w codziennej pracy, czasem nie mając o nich pojęcia, nawet po wielu latach programistycznej kariery. Czy wiesz, że choćby deklaracja metody, może być jednym wielkim kłamstwem i skutkować stratami milionów? Poznaj The Worst Practices od najgorszych programistów!

Mailing Domain-Driven Design

Wciąż za mało życiowych cheatów?

Zostaw swój adres e-mail i zobacz moje spojrzenie na codzienność programisty.

Na sam początek opowiem Ci o zetknięciu z Domain-Driven Design, zmianie myślenia i nowej erze mojego programistycznego ja.

Możesz liczyć na materiały o Event Sourcingu, Event Modelingu, DDD, programowaniu obiektowym i funkcyjnym oraz innych powiązanych tematach.

Na pewno poświęcę trochę maili umiejętnością miękkim.

Będziesz też informowany o nowościach Życia na kodach prosto na Twoją skrzynkę!