W wpisie na temat celów programistycznych wspomniałem, że będę potrzebował domeny do zakodzenia, aby te cele osiągnąć. Wybór miał paść pomiędzy domeną głosowania a szczepień. Jednak nie będzie to ani jedno, ani drugie. Ostatecznie zdecydowałem się na domenę… obsługi parkingu. Już zaraz napiszę dlaczego. Jednak zanim to nastąpi to cieszę się bardzo, że problem dotyczący wyboru mam już za sobą. Niby jest to trywialna sprawa, ale jakoś wyjątkowo sprawiła mi trudność. Dobra, do rzeczy.

Brak zdecydowania

Spędziłem, żeby nie powiedzieć, zmarnowałem, tydzień nad wyborem odpowiedniej domeny. Na poczatku podjąłem się weryfikacji domeny głosowania. Wypisałem sobie wymagania i od razu zacząłem kodować. Jakie było moje zaskoczenie ile to potrzeba napisać kodu, aby stworzyć naprawdę brzydkiego potworka. Powiem wręcz, że cierpiałem przy tym. Jednak takie było moje założenie, aby stworzyć coś naprawdę brzydkiego do nauki. Zacząłem od stworzenia kilku encji, repozytoriów i kontrolerów. Następnie przyszedł czas na serwisy… Idąc w stronę anemicznego modelu musiałem całą logikę odzwierciedlić poprzez settery. I przyznam, że tutaj poległem… Po zakodowaniu piątej reguły biznesowej straciłem chęć do pisania kolejnych. Z tego właśnie powodu porzuciłem domenę głosowania. Niby nie była ona niczemu winna, ale dostało się jej za powyższe błędy.

Przyszła więc chwila na domenę szczepień. Spróbowałem podejść do problemu od drugiej strony strony. Nie skupiłem się na początku na spisaniu wymagań. Przeszedłem od razu do kodu. Jednak wyszło to jeszcze gorzej niż we wcześniejszym przypadku. Zdążyłem zakodzić encje i relacje między nimi. Od razu po tym zaprzestałem dalszego rozwoju aplikacji. Straciłem zapał, a wraz z nim chęć do grzebania w domenie szczepień. Jak więc żyć?

Nowy start

Dwa pomysły nie wypaliły. Co mi pozostało? Wymyślić trzeci! Oczywiście patrząc wstecz i wyciągając wnioski z wcześniejszych doświadczeń. Spisałem więc wszystkie wymagania dotyczące domeny parkingu jakie przyszły mi do głowy. Zrobiłem intensywną, ale niepogłębioną, analizę. Wylałem wszystko co miałem w głowie na papier. Następnie zostawiłem to w takim stanie na jakiś czas.

Przysiadłem ponownie do moich przemyśleń i zastanowiłem się ile to będzie kodu do napisania. Dodam jeszcze najważniejszą rzecz, brzydkiego kodu. Od razu przypomniały mi się męczarnie z poprzednich podejść. Jednak, aby nie stracić zapału, uznałem że trzeba coś zmienić. Wpadły mi do głowy dwa pomysły.

Pierwszym z nich jest to, że nie wszystko muszę zakodzić w stylu, który mi nie odpowiada. Aby poćwiczyć pisanie testów i robienie refaktoringu na “zastanym” kodzie wystarczy mi mały wycinek całej domeny. Mógłbym wybrać 2-3 poddomeny i je ze sobą splątać w anemiczny sposób. Wtedy do napisania miałbym może maksymalnie 5 reguł. Takie coś już jest dla mnie jak najbardziej znośne. W następnej fazie poprawiłbym ten stan i mógłbym dokładać następne klocki, ale już w sposób mi odpowiadający.

Drugim pomysłem jest skorzystanie z jakże popularnych LLMów. ChatGPT na pewno pomoże mi napisać brzydki kodzik, a na koniec jeszcze mi za to podziękuje! Z jakiego powodu ja mam cierpieć, skoro może to za mnie zrobić “dedykowane do tego” narzędzie. Jestem ciekaw jak mi się to sprawdzi. Zobaczymy niebawem.

Podsumowanie

Etap kodowania nie zawsze musi być przyjemny. Jeśli zmieniliśmy swój mindset, to pisanie “nieleżacego” nam kodu jest naprawdę trudne i męczące. Może to nawet wpłynąć na inne aspekty jak chociażby kodowaną domenę. Dlatego warto podchodzić do tego tematu z rozwagą. Jestem ciekawy jak wpłynie na moje samopoczucie skorzystanie z tych dwóch pomysłów, które przytoczyłem powyżej. Będę informował na bieżąco, so stay tuned!