AI-intervjuserie 15: Vilka är de vanliga fallgroparna med Vibe Coding?
Vibe Codings "känsla/stämningsdrivna" modell är visserligen behaglig vid snabb prototypframställning och kreativ utforskning, men om den inte kontrolleras är det lätt att falla i flera typiska fallgropar. Nedan sammanfattas ur de fem dimensionerna kodkvalitet, underhållbarhet, säkerhet, kravutveckling och teamarbete
1. Fallgropar med kodkvalitet
Eftersom Vibe Coding bygger på dialogbaserad iteration, när användaren varje gång lägger fram vaga ändringsbehov (som "gör den här knappen mer tekniskt avancerad"), tenderar AI:n att lägga till ny kod snarare än att omstrukturera befintlig logik. Den vet inte vilken gammal kod som är inaktuell och vågar inte ta bort den, vilket leder till en ackumulering av redundans och död kod. Samtidigt har AI:n inget enhetligt "kodstilsminne", varje generation kan följa olika namngivningskonventioner (beroende på slumpen i träningsdatan), och användaren ger sällan tydliga normer, vilket slutligen gör koden rörig och oförutsägbar. Sammanfattningsvis:
- Överflödig och död kod: Efter flera reparationer lämnar AI:n kvar gamla implementationer, kommenterade kodblock, oanvända importer, eftersom det är hög risk att ta bort och den väljer att behålla.
- Inkonsekvent namngivning och stil: AI:n drar slumpmässigt från träningsdata i olika omgångar, om användaren inte tvingar normer blandas camelCase, understreck och mellanslag.
- Dolda logiska fel: AI:n tenderar att generera kod som är korrekt för "vanliga vägar", men randvillkor (nullvärden, extremvärden, samtidighet) förbises ofta eftersom sådana exempel är få i träningsdatan.
2. Fallgropar med underhållbarhet
Vibe Codings iterationstakt är mycket hög, både användaren och AI:n fokuserar på "om den aktuella funktionen är användbar", och det finns nästan ingen tid att skriva dokumentation, kommentarer eller omstrukturera. AI:n saknar långtidsminne och lägger inte aktivt till docstrings för funktioner, och tar inte hänsyn till nästa utvecklare som tar över. Dessutom tenderar AI:n att "lösa det omedelbara behovet", antingen genom att överdesigna en generisk ram (tror användaren kommer att behöva den senare) eller genom att kopiera och klistra för snabb implementering, vilket leder till förvirrad abstraktionsnivå. Sammanfattningsvis:
- Brist på dokumentation och kommentarer: AI:n producerar som standard "självförklarande" kod, men komplexa regex eller algoritmer är svåra att förstå; om användaren inte begär det, skriver den inte dokumentation.
- Överabstraktion eller underabstraktion: AI:n använder ibland vanliga designmönster (som fabrik, strategi) även för enkla problem; ibland kopierar den bara kodblock för att den är för lat för att extrahera gemensamma funktioner.
3. Fallgropar med säkerhet
AI:ns träningsdata innehåller en stor mängd öppen källkod, där det finns många historiska sårbarheter (som SQL-konkatenering, hårdkodade nycklar). I Vibe Coding ber användaren sällan aktivt om "använd parametriserade frågor" eller "läs nycklar från miljövariabler", så AI:n använder det vanligaste (och ofta osäkra) mönstret. Dessutom har AI:n inget "hotmodellsmedvetande", den kontrollerar inte aktivt inmatningsfiltrering eller minimering av behörigheter, eftersom den bara bryr sig om funktionsimplementering. Sammanfattningsvis:
- Injektionssårbarheter: AI:n använder som standard strängkonkatenering för att konstruera SQL/kommandon, eftersom detta är vanligast i enkla handledningar.
- Hårdkodad känslig information: Exempel i träningsdata har ofta hårdkodade API-nycklar, AI:n imiterar detta mönster.
- Överdrivna behörigheter: För bekvämlighets skull använder AI:n ofta
sudoellerw+-läge för att öppna filer, utan att överväga minimal nödvändig behörighet.
4. Fallgropar med kravutveckling
Vibe Coding har inga tydliga gränser. När användaren säger "lägg till en funktion till", försöker AI:n uppfylla det, men den vet inte vad som är "utanför omfattningen". AI:n har inte heller något koncept av prioritering, den kan implementera tre ytterligare funktioner samtidigt, vilket gör att kärnfunktionen drunknar. Samtidigt, när ett nytt fel fixas, går AI:n inte tillbaka och kontrollerar gamla funktioner, vilket ofta leder till regression där A fixas men B går sönder. Sammanfattningsvis:
- Omfångskrypning: För att "göra användaren nöjd" lägger AI:n aktivt till funktioner som verkar relevanta men inte nödvändiga (som en miniräknare med historik).
- Funktionsförsämring: När AI:n fixar en bugg, eftersom den inte förstår den globala logiken, ändrar den en gemensam funktion, vilket leder till att andra funktioner som är beroende av den blir onormala.
5. Fallgropar med teamarbete
Vibe Codings dialogprocess är privat interaktion mellan individ och AI, och lämnar inga överförbara specifikationsdokument eller designbeslutsregister. Olika teammedlemmar pratar med AI:n var för sig och får kod med olika stilar, vilket leder till många konflikter vid sammanslagning. Dessutom genererar AI:n inte automatiskt commit-meddelanden eller ändringsloggar, anledningen till kodens utveckling går förlorad, och senare underhållare måste gissa. Sammanfattningsvis:
- Icke-reproducerbara byggen: Olika personer vid olika tidpunkter med samma prompt får olika implementationer från AI:n (på grund av slumpmässig provtagning).
- Brist på ändringsspårning: Inga designdokument, inget commit-meddelande som förklarar "varför denna ändring", koden blir en svart låda.
评论
暂无已展示的评论。
发表评论(匿名)