Mentionsy Mentionsy
Better Software Design
Better Software Design

100. O AI w strategicznym Domain-Driven Design z Kubą Pilimonem

26.02.2026 ·1 godz 12 min

Better Software Design zaczęło się w 2020 roku od tematów związanych z Domain-Driven Design, gdzie często z Kubą Pilimonem zagłębialiśmy się w kolejne wzorce i przykłady. Po kilku latach wspólnie z Kubą wracamy do tej tematyki, aby sprawdzić, jak zmieniło się nasze postrzeganie Domain-Driven Design i pracy architekta w świecie, który przyspieszył do prędkości mierzonych w tokenach na sekundę. A rozmowę zaczynamy od pytania Kuby, jednego ze słuchaczy podcastu, które pojawiło się przy okazji zbliżającego się odcinka specjalnego z okazji 100 odcinków Better Software Design.

Pamiętam, w jakim szoku byłem, że komuś tak naprawdę, wiesz, się chciało w te wszystkie rzeczy, o których my tam dyskutowaliśmy, tak głęboko wchodzić i to jeszcze potem gdzieś właśnie na Githuba w postaci jakichś notatek wrzucać. Dzisiaj te notatki, wiesz, przygotowalibyśmy AI-em. Chciałem powiedzieć, że to komuś się chciało bez LLM-a, to w ogóle mega szacun, tak. Tak, więc tym bardziej szacunek. A właśnie, jak jesteśmy wiesz co, przy takim temacie. No bo przez te kilka lat udało nam się wspólnie zrobić parę rzeczy. I warsztatów takich otwartych i gdzieś tam zamkniętych, no i Legacy Fighter, który też gdzieś tam takim bardzo fajnym efektem się gdzieś tam odbił w community. Natomiast wiesz, tak sobie teraz myślę, pamiętasz ile czasu i wysiłku my włożyliśmy w przygotowanie tego kodu? Tego takiego, wiesz, zrypanego, na którym chcieliśmy tak naprawdę pokazywać. Jakie tam moglibyśmy pomysły, jak ten kod przygotować, no bo tam się zastanawialiśmy, czy nie zlecić go do tworzenia tego kodu w różnych, wiesz, okolicznościach przyrody.

A dzisiaj byśmy z tego tematu podeszli zupełnie inaczej. Zdecydowanie. Tam było kilka zapętlen, nie? Że nie wiedzieliśmy już de facto, czy potrafimy z tego syfu, co stworzyliśmy, wyjść. Był taki moment z dwa razy. Z tego, co pamiętam, w końcu wyszliśmy, ale to zmieniło też narrację całego szkolenia. Doszliśmy do innych wniosków, niż planowaliśmy. Były takie, pamiętam, dwa kluczowe momenty. Tak, tworzenie tego... Ja parę tych kursów stworzyłem i w nich było dużo kodu, że tak się wyrażę, ale nigdy tyle czasu przy kodzie nie spędziłem, co wtedy po prostu. Napisanie złego, napisanie dobrego i jeszcze przejścia, pamiętasz? Po kolei. Przecież to była masakra. Dla kontekstu, jeżeli ktoś nie kojarzy Legację Fightera, to było takie szkolenie, które właśnie wspólnie tutaj z Kubą Pilimonem i tam z gościnnym udziałem Sławka. Przygotowaliśmy i staraliśmy się tak naprawdę pokazać przejścia refaktoryzacyjne, takie jakie my stosujemy, w kontekście też wykorzystania Domain-Driven Design.

To tyle, co niektóre szkolenia w ogóle trwają, wszystkie łącznie, znaczy całe tygodnie wszystkie. Ale tam wtedy udało się dotknąć 200 takich tematów, które faktycznie gdzieś tam w projektach spędzają czasami, wiesz, sens powiek, bo nawet wiesz co, wczoraj miałem takie otwarte konsultacje, tutaj ktoś przyszedł z mojej strony. Przy okazji zachęcam do zobaczenia slotów takich 30-minutowych, jeżeli ktoś by chciał porozmawiać na tematy związane właśnie z softem. Gdzie poruszyliśmy temat, który właśnie tam rozpracowaliśmy właśnie w Legacy Fighterze i nawet wiesz co, Kuba, nie wiem, ile razy odsyłałem do tego repozytorium, wiesz, do konkretnych commitów, nie? Jakby wszystkie tam commity były na ciebie, bo ty finalnie to merge'owałeś, wiesz, z tego takiego naszego roboczego repo, nie? Natomiast pamiętam, że też mi tam w kilku miejscach, no... Mariusz bardzo dużo robił, tak? Chciałbym, żeby to wybrzmiało. Pisał w Javce bardzo dzialnie, ja z toną Emrejta... Stary ph-powiedź, stary ph-powiedź pisał wtedy w Javie, to...

Chodzi nam, tak zakładam, Mariuszowi chodził, bo go znam, o pewnego rodzaju uogólnienie, że ja badam sobie tę sytuację i jestem w stanie zminimalizować ryzyko takiej sytuacji, kiedy dowiedziałem się czegoś, a jednak jest inaczej, a nie o pewność, bo pewności nikt mi nigdy nie da. Ale sam fakt, że badam, to minimalizuje prawdopodobieństwo wtopy. Tak, a kolejną rzeczą, którą bym tutaj dorzucił, i wiesz, jakby to też mi pokazuje, jakimi podobnymi kategoriami myślimy, co zresztą, wiesz, jak tutaj wspomniany wcześniej Legacy Fighter mi pokazał, że okej, jest masa miejsc, gdzie tak naprawdę jesteśmy praktycznie na tej samej stronie, tej samej książce, a czasami do tych samych problemów podchodzimy zupełnie inaczej. I to też była dla mnie niesamowita lekcja, wiesz, tam zderzać przez chyba pół roku, kiedy to tworzyliśmy nasze podejścia. Natomiast w tym przypadku faktycznie jakbym miał już te dwa moduły, czy te dwa konteksty, może nawet ich większą liczbę,

Kilka sekund czasem, nie? Może do minut. A zrozumienie tego kodu przez człowieka nadal trwa tyle samo, co wcześniej. Czyli mamy teraz, można powiedzieć, taką mega asymetrię w produkcji kodu i jego konsumpcji. Kiedyś tak nie było. No bo jednak tworzenie kodu też trwało. Musiałeś usiąść, zakazać rękawy, tak jak my przy Legacy Fighterze, jak na przykład Revealowałem twój kodzik, czy ty mój? To nie było tak, że ja ci wrzuciłem, mam nadzieję w sumie, pull requesta 700 plików wygenerowanych przez jakiegoś agenta, ja sobie to obejrzałem i Mariusz pisał looks good to me. No tak nie było. Po prostu było mniej kodu do oceny, zrozumienie trwało długo, ale napisanie trwało krócej, więc nie było takiej asymetrii. To mi tego właśnie podkreśla, że to, o czym mówił ostatnio Łukasz Szydło z Marcinem Markowskim, bo też dotknęliśmy właśnie dokładnie tego samego tematu, że kod powstaje w takim tempie, ale nasze zdolności reviewowania i przeglądania tego kodu jakby się nie zmieniły.

To jest dla mnie ciągle, ja to nazywam researchem mimo wszystko. Mimo, że wiem, że to jest jakby w naszej branży nazywane analizą. Natomiast w miejscach, o których mówiliśmy do tej pory w tym naszym odcinku, czyli ja muszę coś uogólnić, na przykład wracając do pytania twojego słuchacza, bo masz kilka krajów i tam są różne procesy, chcesz się jakoś uogólnić jakimś sprytniejszym modelem, To jest dużo trudniejsze niż suma przypadków. To jest dla mnie analiza i w tych miejscach dla mnie narzędzie pod tytułem LLM sprawdza się średnio. Tak po prostu, jak go użyję na pałę, podziel mi to na moduły, mam takie kraje, będą kolejne kraje, sprawdza się średnio. Jeżeli mogę się wtrącić, bo ja mam bardzo podobne doświadczenia. Jakiś czas temu na przykładzie właśnie naszego Legacy Fightera, gdzie na początku mieliśmy, wiesz, system, który był wybełtany, wiesz, mech, patyki i kamienie, a na końcu mieliśmy system zmodularyzowany.

Pokazano wszystkie 6 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.