AI-interviewserie 15: Hvad er de almindelige faldgruber ved Vibe Coding?
Selvom Vibe Coding's 'følelse/atmosfære-drevne' tilstand er fantastisk til hurtig prototyping og kreativ udforskning, kan den let falde i flere typiske faldgruber, hvis den ikke kontrolleres. Nedenfor opsummeres fra fem dimensioner: kodekvalitet, vedligeholdelse, sikkerhed, kravudvikling og teamarbejde
1. Kodekvalitetsfaldgruber
Fordi Vibe Coding er afhængig af samtalebaseret iteration, når brugeren fremsætter vage ændringsanmodninger (f.eks. "gør denne knap mere teknologisk"), vil AI have en tendens til at tilføje ny kode i stedet for at refaktorere eksisterende logik. Den ved ikke, hvilken gammel kode der er forældet, og tør ikke slette, hvilket fører til ophobning af redundant og død kode. Samtidig har AI ingen ensartet 'kodestilshukommelse', hver generation kan følge forskellige navnekonventioner (afhængigt af træningsdataens tilfældighed), og brugeren giver sjældent klare specifikationsbegrænsninger, så koden bliver til sidst rodet og uforudsigelig. Opsummeret:
- Redundans og død kode: Efter flere rettelser efterlader AI gamle implementeringer, kommenterede kodeblokke, ubrugte imports, fordi risikoen for sletning er høj, og den vælger at beholde dem.
- Inkonsekvent navngivning og stil: AI trækker tilfældigt stilarter fra træningsdata i forskellige omgange, og hvis brugeren ikke håndhæver standarder, blandes camelCase, understregninger og mellemrum.
- Skjulte logiske fejl: AI har en tendens til at generere kode, der er korrekt for 'almindelige stier', men kanttilfælde (null-værdier, ekstreme værdier, samtidighed) ignoreres ofte, fordi sådanne eksempler er sjældne i træningsdata.
2. Vedligeholdelsesfaldgruber
Vibe Coddings iteration er meget hurtig, og både bruger og AI fokuserer på 'om den aktuelle funktion er brugbar', og der er næsten ingen tid til at skrive dokumentation, kommentarer eller refaktorere. AI mangler langtidshukommelse, tilføjer ikke aktivt docstrings til funktioner og tager ikke hensyn til næste udvikler. Derudover har AI en tendens til at 'løse den aktuelle efterspørgsel', enten overdesigne en generisk ramme (tro at brugeren senere vil have brug for det) eller kopiere og indsætte for hurtig implementering, hvilket fører til forvirret abstraktionsniveau. Opsummeret:
- Manglende dokumentation og kommentarer: AI udskriver som standard 'selvforklarende' kode, men komplekse regex eller algoritmer er svære at forstå; brugeren beder ikke om det, så den skriver ikke dokumentation.
- Overabstraktion eller underabstraktion: AI anvender nogle gange almindelige designmønstre (f.eks. fabrik, strategi), selv når problemet er enkelt; nogle gange kopierer den kodeblokke direkte, fordi den er for doven til at udtrække fælles funktioner.
3. Sikkerhedsfaldgruber
AI's træningsdata indeholder en stor mængde open source-kode, som ikke er fri for historiske sårbarheder (f.eks. SQL-sammenkædning, hårdkodede nøgler). I Vibe Coding beder brugeren sjældent om at 'bruge parametriserede forespørgsler' eller 'læse nøgler fra miljøvariabler', så AI anvender den mest almindelige (og ofte usikre) tilgang. Derudover har AI ingen 'trusselsmodel'-bevidsthed og tjekker ikke aktivt inputfiltrering eller minimering af rettigheder, fordi den kun bekymrer sig om funktionsimplementering. Opsummeret:
- Injectionssårbarheder: AI bruger som standard strengsammenkædning til at konstruere SQL/kommandoer, fordi denne metode er mest almindelig i enkle tutorials.
- Hårdkodede følsomme oplysninger: Eksempler i træningsdata skriver ofte API-nøgler direkte, og AI efterligner dette mønster.
- Overdrevne rettigheder: For nemheds skyld bruger AI ofte
sudoellerw+-tilstand til at åbne filer uden at overveje mindst nødvendige rettigheder.
4. Kravudviklingsfaldgruber
Vibe Coding har ingen klare grænser. Når brugeren siger 'tilføj en funktion mere', vil AI gøre sit bedste for at imødekomme det, men den ved ikke, hvad der er 'uden for omfanget'. AI har heller ikke et prioriteringskoncept og kan implementere tre ekstra funktioner på én gang, hvilket oversvømmer kernefunktionen. Samtidig, når der rettes en ny fejl, gennemgår AI ikke gamle funktioner, hvilket ofte fører til regression, hvor A rettes og B ødelægges. Opsummeret:
- Omfangsspredning: For at 'tilfredsstille brugeren' tilføjer AI aktivt funktioner, der virker relevante, men ikke nødvendige (f.eks. tilføje historik til en lommeregner).
- Funktionsforringelse: Når AI retter en fejl, ændrer den en fælles funktion uden at forstå den globale logik, hvilket forårsager unormal adfærd i andre funktioner, der afhænger af den.
5. Teamarbejdsfaldgruber
Vibe Coddings samtale er privat interaktion mellem individ og AI, som ikke efterlader overførbare specifikationsdokumenter eller designbeslutningsregistreringer. Forskellige teammedlemmer taler hver især med AI og får kode i deres egen stil, hvilket fører til mange konflikter ved sammenfletning. Derudover genererer AI ikke automatisk commit-meddelelser eller ændringslogfiler, så begrundelsen for kodeudvikling går tabt, og vedligeholdelsespersonale må gætte. Opsummeret:
- Ikke-reproducerbare builds: Forskellige personer på forskellige tidspunkter, der bruger den samme prompt, får forskellige implementeringer fra AI (på grund af samplingstilfældighed).
- Manglende ændringssporing: Ingen design dokumenter, ingen commit-meddelelser, der forklarer 'hvorfor denne ændring', koden bliver en sort boks.
评论
暂无已展示的评论。
发表评论(匿名)