Przerost formy nad treścią – jak AI i „dobre praktyki” zabijają prostotę kodu
W ostatnich latach frontend i backend przeszedł prawdziwą rewolucję. Frameworki, wzorce projektowe, standardy, dependency injection, interfejsy, architektury warstwowe – wszystko to miało ułatwić nam życie. A jednak wielu programistów, w tym ja, zaczyna zadawać sobie pytanie:
Czy poziom skomplikowania, jaki sami tworzymy, nie prowadzi nas do absurdu?
Kod piękny, ale bezużyteczny
Wielokrotnie spotkałem się z sytuacją, w której AI (np. Claude) wygenerowało świetnie wyglądający kod. Interface’y, repozytoria, separacja odpowiedzialności, komentarze, testy jednostkowe – wszystko wygląda jak z książki o czystej architekturze.
Tyle że ten kod… nie działa.
Albo nie rozwiązuje problemu. Albo wymaga 40 plików do obsłużenia jednego żądania GET /wyniki z prostego API lotto. Całość mogłaby zostać napisana w 30 minut — a pochłania dziesiątki godzin przez samą strukturę.
AI i akademickie podejście do prostych problemów
AI dziś nie pisze kodu kontekstowo. Pisze kod zgodny ze „standardem”, który istnieje w próżni. Dla świata, nie dla Ciebie. Dla idealnego projektu, nie MVP. Kod jest zbyt generyczny, zbyt wzorcowy, zbyt abstrakcyjny.
Efekt? Jako programista zamiast rozwiązywać problem — debuguję łańcuch zależności stworzony przez AI, które nigdy nie uruchomiło tego kodu.
Czyli… wracamy do jQuery?
Nie o to chodzi. Chodzi o zdrowy pragmatyzm. jQuery jest symbolem prostoty — takiej, która dla wielu projektów nadal jest wystarczająca. Nie potrzebujesz SPA, Reacta, Reduxów, TypeScripta i DI, żeby pokazać listę produktów z API. Wystarczy fetch() i odrobina rozsądku.
To nie znaczy, że nie warto znać wzorców. Warto. Ale trzeba wiedzieć, kiedy z nich zrezygnować.
Złoty środek
- Architektura powinna rosnąć z projektem. Nie odwrotnie.
- DI, CQRS i interfejsy? Tylko jeśli masz więcej niż jedną implementację.
- Frameworki? Tak, ale tylko jeśli problem naprawdę tego wymaga.
- AI? Tak, ale w oparciu o własne zasady, nie gotowe „idealne” schematy.
Podsumowanie
Kod ma działać. Ma rozwiązywać problem. Ma być zrozumiały dla człowieka, który go jutro będzie utrzymywać. Jeśli coś można zrobić w 30 minut, nie komplikuj tego dla zasady.
Nie bój się iść pod prąd. Najlepszy kod to nie ten, który wygląda jak z podręcznika – tylko ten, który działa, jest czytelny i ma sens tu, gdzie naprawdę go potrzebujesz.

