{"id":2338,"date":"2026-06-29T04:00:41","date_gmt":"2026-06-29T04:00:41","guid":{"rendered":"https:\/\/news.jurskitech.pl\/blog\/uncategorized\/jak-zle-uzycie-ai-w-kodzie-generuje-dlug-techniczny-3-przypadki\/"},"modified":"2026-06-29T04:00:41","modified_gmt":"2026-06-29T04:00:41","slug":"jak-zle-uzycie-ai-w-kodzie-generuje-dlug-techniczny-3-przypadki","status":"publish","type":"post","link":"https:\/\/news.jurskitech.pl\/blog\/warto-wiedziec\/jak-zle-uzycie-ai-w-kodzie-generuje-dlug-techniczny-3-przypadki\/","title":{"rendered":"Jak z\u0142e u\u017cycie AI w kodzie generuje d\u0142ug techniczny? 3 przypadki"},"content":{"rendered":"<h2 id=\"jakzeuycieaiwkodziegenerujedugtechniczny3przypadki\">Jak z\u0142e u\u017cycie AI w kodzie generuje d\u0142ug techniczny? 3 przypadki<\/h2>\n<p>S\u0142yszysz to na ka\u017cdym konferencyjnym panelu: \u201eAI zwi\u0119ksza produktywno\u015b\u0107 programist\u00f3w\u201d, \u201eGeneratywna AI pisze kod 10x szybciej\u201d, \u201ePrzysz\u0142o\u015b\u0107 to asystenci AI\u201d. Prawda jest bardziej skomplikowana. Owszem, narz\u0119dzia takie jak GitHub Copilot czy ChatGPT potrafi\u0105 przyspieszy\u0107 rutynowe zadania. Ale bez odpowiedniego nadzoru wpuszczasz do kodu co\u015b znacznie gorszego ni\u017c przeci\u0119tny junior \u2013 d\u0142ug techniczny w formie pozornie dzia\u0142aj\u0105cego, ale trudnego w utrzymaniu kodu.<\/p>\n<p>W JurskiTech od lat patrzymy na kod pisany przez AI i widzimy te same b\u0142\u0119dy. Nie chodzi o to, \u017ceby z AI nie korzysta\u0107 \u2013 tylko \u017ceby robi\u0107 to \u015bwiadomie. Oto trzy sytuacje, w kt\u00f3rych AI zamiast pom\u00f3c, realnie szkodzi.<\/p>\n<h3 id=\"1kopiowaniekodubezkontekstudziaawicjestdobrze\">1. Kopiowanie kodu bez kontekstu \u2013 \u201edzia\u0142a, wi\u0119c jest dobrze\u201d<\/h3>\n<p>Najcz\u0119stszy b\u0142\u0105d: programista prosi AI o rozwi\u0105zanie konkretnego problemu, dostaje blok kodu, wkleja go i idzie dalej. Problem w tym, \u017ce AI nie zna architektury Twojego systemu, konwencji nazewniczych, u\u017cytych bibliotek ani stylu kodu. To troch\u0119 jak poproszenie losowego developera z internetu o napisanie funkcji \u2013 raz zadzia\u0142a, ale po miesi\u0105cu okazuje si\u0119, \u017ce ten kawa\u0142ek kodu jest niesp\u00f3jny z reszt\u0105, u\u017cywa innego patternu i \u0142amie regu\u0142y ESLint.<\/p>\n<p><strong>Przyk\u0142ad z \u017cycia:<\/strong> Klient przyszed\u0142 do nas z aplikacj\u0105 Node.js, w kt\u00f3rej jedna z us\u0142ug u\u017cywa\u0142a <code>async\/await<\/code> w stylu callback hell, inna korzysta\u0142a z <code>Promise.all<\/code> bez obs\u0142ugi b\u0142\u0119d\u00f3w, a jeszcze inna mia\u0142a synchronizacj\u0119 na sztywno. Wszystko dzia\u0142a\u0142o \u2013 ale refactoring zaj\u0105\u0142 dwa tygodnie, bo ka\u017cda cz\u0119\u015b\u0107 by\u0142a napisana w innym \u201eidiolekcie\u201d wygenerowanym przez AI.<\/p>\n<p><strong>Konsekwencje:<\/strong> Ka\u017cda zmiana wymaga wi\u0119cej analizy, testy s\u0105 mniej przewidywalne, a onboarding nowych cz\u0142onk\u00f3w zespo\u0142u staje si\u0119 koszmarem. D\u0142ug techniczny ro\u015bnie wyk\u0142adniczo.<\/p>\n<h3 id=\"2generowanieduplikatwainiewieejutomasz\">2. Generowanie duplikat\u00f3w \u2013 \u201eAI nie wie, \u017ce ju\u017c to masz\u201d<\/h3>\n<p>AI nie ma pami\u0119ci d\u0142ugoterminowej (chyba \u017ce dasz jej kontekst). Je\u015bli poprosisz o funkcj\u0119 walidacji emaila, dostaniesz j\u0105 \u2013 nawet je\u015bli taka funkcja istnieje ju\u017c w projekcie. W efekcie powstaj\u0105 setki linii zduplikowanego kodu, kt\u00f3ry r\u00f3\u017cni si\u0119 drobnymi szczeg\u00f3\u0142ami. Potem, gdy trzeba zmieni\u0107 logik\u0119 walidacji, programista musi pami\u0119ta\u0107 o poprawieniu jej w trzech miejscach.<\/p>\n<p><strong>Obserwacja z rynku:<\/strong> W jednym z naszych audyt\u00f3w znale\u017ali\u015bmy 7 r\u00f3\u017cnych implementacji sortowania tablicy obiekt\u00f3w \u2013 ka\u017cda wygenerowana przez AI w odpowiedzi na podobne zapytanie. \u017badna nie by\u0142a ca\u0142kowicie z\u0142a, ale wszystkie by\u0142y niepotrzebne.<\/p>\n<p><strong>Konsekwencje:<\/strong> Wi\u0119ksze ryzyko b\u0142\u0119d\u00f3w (np. zapomnisz o jednej kopii), trudniejsze testowanie, wi\u0119kszy rozmiar kodu do utrzymania. To prosta droga do spaghetti.<\/p>\n<h3 id=\"3brakobsugibdwikrawdziaizakadawiatidealny\">3. Brak obs\u0142ugi b\u0142\u0119d\u00f3w i kraw\u0119dzi \u2013 \u201eAI zak\u0142ada \u015bwiat idealny\u201d<\/h3>\n<p>AI cz\u0119sto generuje kod, kt\u00f3ry dzia\u0142a w 90% przypadk\u00f3w \u2013 tych standardowych. Ale pomija obs\u0142ug\u0119 b\u0142\u0119d\u00f3w, sytuacje brzegowe, timeouty, wyj\u0105tki sieciowe czy nieprawid\u0142owe dane wej\u015bciowe. Programista, kt\u00f3ry wkleja taki kod bez modyfikacji, wprowadza do systemu cich\u0105 bomb\u0119.<\/p>\n<p><strong>Przyk\u0142ad z \u017cycia:<\/strong> Wygenerowana funkcja fetch z <code>await response.json()<\/code> \u2013 bez sprawdzenia <code>response.ok<\/code>. W \u015brodowisku deweloperskim API zawsze odpowiada poprawnie. Na produkcji, po zmianie API, aplikacja pada\u0142a z b\u0142\u0119dem parsowania JSON. AI nie przewidzia\u0142o, \u017ce odpowied\u017a mo\u017ce by\u0107 pusta lub mie\u0107 status 500.<\/p>\n<p><strong>Konsekwencje:<\/strong> Niestabilno\u015b\u0107, trudne do zdiagnozowania b\u0142\u0119dy, wi\u0119ksze koszty operacyjne. Kto\u015b to musi potem poprawi\u0107 \u2013 a to ju\u017c nie jest darmowe.<\/p>\n<h3 id=\"podsumowanieaijakonarzdzieniezastpstwo\">Podsumowanie: AI jako narz\u0119dzie, nie zast\u0119pstwo<\/h3>\n<p>AI w kodzie nie jest z\u0142em. Jest fantastycznym narz\u0119dziem do generowania boilerplate\u2019\u00f3w, pisania test\u00f3w jednostkowych, refaktoryzacji prostych fragment\u00f3w czy szybkiego prototypowania. Problem zaczyna si\u0119, gdy traktujemy je jak zast\u0119pstwo dla my\u015blenia \u2013 gdy wklejamy kod bez zrozumienia, bez dostosowania do kontekstu, bez test\u00f3w.<\/p>\n<p>D\u0142ug techniczny generowany przez AI jest podst\u0119pny, bo nie objawia si\u0119 od razu. Wygl\u0105da jak dzia\u0142aj\u0105cy kod. Ale po kilku miesi\u0105cach, gdy zesp\u00f3\u0142 pr\u00f3buje doda\u0107 now\u0105 funkcj\u0119, okazuje si\u0119, \u017ce po\u0142owa kodu wymaga przepisania.<\/p>\n<p><strong>Rekomendacja:<\/strong> Ustalcie w zespole zasady korzystania z AI \u2013 np. ka\u017cdy wygenerowany fragment musi by\u0107 przejrzany przez drugiego developera, nie wolno wkleja\u0107 kodu bez test\u00f3w, a AI ma by\u0107 u\u017cywane tylko do zada\u0144, kt\u00f3re zesp\u00f3\u0142 dobrze rozumie. W JurskiTech sami korzystamy z AI, ale zawsze z krytycznym okiem. Bo kod, kt\u00f3ry \u201etylko dzia\u0142a\u201d, to jeszcze nie dobry kod.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jak z\u0142e u\u017cycie AI w kodzie generuje d\u0142ug techniczny? 3 przypadki S\u0142yszysz to na ka\u017cdym konferencyjnym panelu: \u201eAI zwi\u0119ksza produktywno\u015b\u0107 programist\u00f3w\u201d, \u201eGeneratywna AI pisze kod 10x szybciej\u201d, \u201ePrzysz\u0142o\u015b\u0107 to asystenci AI\u201d. Prawda jest bardziej skomplikowana. Owszem, narz\u0119dzia takie jak GitHub Copilot czy ChatGPT potrafi\u0105 przyspieszy\u0107 rutynowe zadania. Ale bez odpowiedniego nadzoru wpuszczasz do kodu co\u015b<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[445,704,267,435,292],"class_list":["post-2338","post","type-post","status-publish","format-standard","hentry","category-warto-wiedziec","tag-agenci-ai","tag-audyt-kodu","tag-best-practices","tag-dlug-techniczny","tag-jakosc-danych"],"_links":{"self":[{"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/posts\/2338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/comments?post=2338"}],"version-history":[{"count":0,"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/posts\/2338\/revisions"}],"wp:attachment":[{"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/media?parent=2338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/categories?post=2338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/news.jurskitech.pl\/blog\/wp-json\/wp\/v2\/tags?post=2338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}