Există două narațiuni predominante despre vibe coding. Prima este că poți scrie o singură propoziție, iar AI-ul îți va returna o aplicație de un milion de dolari. A doua este că, deoarece AI-ul scrie tot codul, oamenii nu au idee ce se află în interior. Prin urmare, trebuie să eșueze în cele din urmă și să provoace o apocalipsă la scară largă.
Ambele narațiuni sunt caricaturi ale realității. În articole anterioare, am vorbit despre munca mea la o varietate de proiecte vibe-coded. Am văzut cum sunt atât uimitoare, cât și multă muncă. În acest articol, voi aprofunda întrebările legate de întreținere și sustenabilitate care apar atunci când cedezi controlul codării unei mașini.
Când eram un tânăr product manager, am fost trimis în Los Angeles să-l sprijin pe VP-ul nostru de vânzări. A decis să mă ducă la unul dintre restaurantele lui preferate. Acest restaurant era specializat în bucătărie fusion, ceea ce însemna că bucătarul amesteca multe influențe diferite în mâncarea lui. Avea reputația pentru specialitatea bucătarului, care era orice decidea bucătarul să creeze pentru tine în acea seară.
Îmi amintesc că mă întrebam în ce m-am băgat. Știam că voi primi mâncare, dar nu aveam idee ce va trebui să ingerez. După cum s-a dovedit, mâncarea pe care am mâncat-o în acea seară era... ciudată. Era comestibilă. Nu era un loc unde aș merge din nou de bunăvoie.
Codarea agentică este foarte asemănătoare cu a merge la acel restaurant. Știi că reputația AI-ului de codare pe care îl folosești este bună, dar nu ai idee ce ți se va livra. Ai puțină perspectivă asupra codului real care vine de la AI. Practic, va trebui să-l mănânci, indiferent de ce ți s-a servit.
Când ai agenți care îți scriu codul, este ca și cum ai avea o mulțime de contractori sau subordonați care îți scriu codul. Până nu îl testezi și evaluezi, nu ai idee ce vei primi.
Totul se bazează pe promptul tău. Garbage-in, garbage-out are o semnificație mult mai profundă decât ar sugera vechea frază banală. Dacă nu promptezi suficient de clar și nu menții conversația cu suficientă claritate și supraveghere, codul pe care îl vei primi de la AI va fi greu de digerat.
Managerii de inginerie s-au confruntat cu provocarea de a gestiona contractori sub supravegherea lor încă din vremea piramidelor. Atribuirea muncii și evaluarea produsului de lucru este ceea ce fac managerii de inginerie. Menținerea calității și controlului în acest proces este esența ingineriei software.
Pe de altă parte, deși mult din pesimismul vibe-coding este hiperbolă, există și adevăr acolo. Fără standarde și practici de calitate, ai putea ajunge cu cod problematic. În acest articol, vom discuta miturile din jurul codării agentice și cele mai bune practici care te vor ajuta să obții de la AI-uri ceea ce ai cerut.
Mulți susținători ai codării AI recomandă furnizarea AI-ului de documente de cerințe profunde și bogate. Cu toate acestea, experiența mea este că AI-urile pot interpreta greșit un singur element al acelui document profund și pot deraia complet în moduri pe care nu le poți urmări sau găsi.
Prefer să dau AI-ului o singură sarcină simplă. Odată ce aceasta a fost finalizată cu succes, îi dau alta. Astfel, există mai puține oportunități ca fie AI-ul, fie eu să pierdem urma planului general.
Ca dezvoltator unic, obișnuiam să scriu cod linie cu linie. Transpiram pentru fiecare linie. Știam totul despre codul meu. Dar când eram manager de inginerie, trebuia să mă bazez pe echipele mele și pe dezvoltatorii individuali din echipele mele.
Sigur, aveam codori (aproximativ echivalentul agenților). Dar tot trebuia să construiesc o disciplină de testare și integrare în sistem, pentru a fi sigur că ceea ce era trimis de oricare dintre codorii sau contractorii noștri funcționa cu totul altceva.
Dacă vei folosi codarea agentică, va trebui să faci la fel. Puncte de control la fiecare etapă. Urmărește cu atenție integrarea. Presupune că primești livrări de la contractori externi și, prin urmare, trebuie să le verifici munca înainte de a o încorpora în proiectul tău principal.
Am un prieten de care mă tem să împărtășesc sof