← 返回列表

Séria AI pohovorov 15: Aké sú bežné nástrahy Vibe Codingu?

Aj keď je režim Vibe Codingu „riadený pocitom/atmosférou“ skvelý pri rýchlom prototypovaní a kreatívnom skúmaní, bez kontroly ľahko spadnete do niekoľkých typických nástrah. Nižšie sumarizujeme z piatich dimenzií: kvalita kódu, udržiavateľnosť, bezpečnosť, vývoj požiadaviek, tímová spolupráca.

1. Nástrahy kvality kódu

Pretože Vibe Coding sa spolieha na dialógové iterácie, keď používateľ predloží nejasnú požiadavku na úpravu (napr. „Nech je toto tlačidlo viac technologické“), AI má tendenciu pridávať nový kód namiesto refaktorovania existujúcej logiky. Nevie, ktorý starý kód je už nefunkčný, a bojí sa ho zmazať, čo vedie k hromadeniu redundantného a mŕtveho kódu. AI zároveň nemá jednotnú „pamäť na štýl kódu“ – každé generovanie môže dodržiavať iné konvencie pomenovania (v závislosti od náhodnosti tréningových vzoriek) a používateľ len zriedka poskytne jasné normy, výsledkom čoho je neprehľadný a nepredvídateľný kód. Zhrnuté:
1. Redundancia a mŕtvy kód: Po viacnásobných opravách AI ponechá staré implementácie, zakomentované bloky kódu a nepoužité importy, pretože riziko vymazania je vysoké a radšej ich zachová.
2. Nekonzistentné pomenovanie a štýl: AI v rôznych kolách náhodne vyberá štýly z tréningových dát a ak používateľ neurčí normy, zmiešajú sa camelCase, podčiarkovníky a medzery.
3. Skryté logické chyby: AI má tendenciu generovať kód, ktorý je správny pre „bežné cesty“, ale okrajové podmienky (nulové hodnoty, extrémne hodnoty, konkurencia) sú často ignorované, pretože takýchto príkladov je v tréningových dátach málo.


2. Nástrahy udržiavateľnosti

Rýchlosť iterácií Vibe Codingu je extrémne vysoká, používateľ aj AI sa sústreďujú na to, „či je aktuálna funkcia použiteľná“, a takmer nie je čas na písanie dokumentácie, komentárov alebo refaktorovanie. AI nemá dlhodobú pamäť, aktívne nepridáva docstringy k funkciám a nemyslí na ďalšieho vývojára, ktorý prevezme kód. AI má navyše tendenciu „riešiť aktuálnu potrebu“ – buď predimenzuje univerzálny rámec (v domnienke, že ho používateľ neskôr využije), alebo kopíruje a vkladá rýchle riešenia, čo vedie k zmätku v úrovniach abstrakcie. Zhrnuté:
1. Nedostatok dokumentácie a komentárov: AI štandardne generuje „samovysvetľujúci“ kód, ale skutočne zložité regulárne výrazy alebo algoritmy sú ťažko pochopiteľné; používateľ to nevyžaduje, takže AI dokumentáciu nepíše.
2. Prehnaná abstrakcia alebo nedostatočná abstrakcia: AI niekedy používa bežné návrhové vzory (napr. továreň, stratégia), aj keď je problém jednoduchý; inokedy z lenivosti neextrahuje spoločné funkcie a priamo kopíruje bloky kódu.


3. Bezpečnostné nástrahy

Tréningové dáta AI obsahujú množstvo open-source kódu, ktorý nie je bez historických zraniteľností (napr. spájanie SQL reťazcov, pevne zakódované kľúče). Pri Vibe Codingu používateľ len zriedka aktívne požaduje „používanie parametrizovaných dotazov“ alebo „čítanie kľúčov z premenných prostredia“, a AI preto používa najčastejší (a často nebezpečný) vzor. AI navyše nemá povedomie o „hrozobnom modeli“ a aktívne nekontroluje filtrovanie vstupov ani minimalizáciu oprávnení, pretože sa zameriava len na implementáciu funkcií. Zhrnuté:
1. Injekčné zraniteľnosti: AI štandardne používa spájanie reťazcov na vytváranie SQL/príkazov, pretože tento spôsob je najčastejší v jednoduchých návodoch.
2. Pevne zakódované citlivé informácie: V tréningových vzorkách sú často pevne zakódované API kľúče, a AI tento vzor napodobňuje.
3. Nadmerné oprávnenia: AI pre pohodlie často používa sudo alebo režim w+ na otvorenie súborov bez ohľadu na minimálne potrebné oprávnenia.


4. Nástrahy vývoja požiadaviek

Vibe Coding nemá jasné hranice. Keď používateľ povie „pridaj ešte jednu funkciu“, AI sa ju snaží splniť, ale nevie, čo je „mimo rozsahu“. AI tiež nemá koncept priority – môže súčasne implementovať tri ďalšie funkcie, čím sa základná funkcia rozplynie. Pri každej oprave novej chyby AI nereviduje staré funkcie, takže často dochádza k regresii – opraví sa A, ale pokazí sa B. Zhrnuté:
1. Rozširovanie rozsahu: AI, aby „potešila používateľa“, aktívne pridáva zdanlivo súvisiace, ale nepotrebné funkcie (napr. kalkulačka s históriou).
2. Regresia funkcií: Pri oprave chyby AI, keďže nepozná globálnu logiku, upraví jednu verejnú funkciu, čím spôsobí chybu v iných funkciách, ktoré na nej závisia.


5. Nástrahy tímovej spolupráce

Dialógový proces Vibe Codingu je súkromná interakcia jednotlivca s AI, bez zanechania prenosných špecifikačných dokumentov alebo záznamov o návrhových rozhodnutiach. Rôzni členovia tímu vedú dialógy s AI samostatne, výsledkom sú kódy v rôznych štýloch, ktoré pri spájaní spôsobujú množstvo konfliktov. AI navyše automaticky negeneruje commit správy ani denníky zmien, dôvody vývoja kódu sa strácajú a neskorší správcovia musia len hádať. Zhrnuté:
1. Nereprodukovateľné zostavy: Rôzni ľudia v rôznom čase s rovnakým promptom dostanú rôzne implementácie (kvôli náhodnosti vzorkovania).
2. Nedostatok sledovania zmien: Chýbajú návrhové dokumenty, commit správy vysvetľujúce „prečo sa to zmenilo“, kód sa stáva čiernou skrinkou.

评论

暂无已展示的评论。

发表评论(匿名)