A vibe coding mítosza: Az AI írja a kódot, de a rendszert nem tervezi
A vibe coding illúziója: Miért képes az AI kódot írni, de rendszertervezőt nem pótolni
Őszintén szólva: mindannyian átéltük már. Felfedezel egy új AI kódolási eszközt, és hirtelen úgy érzed, bármit meg tudsz építeni. Évekig azt gondoltad: "ha lenne időm megvalósítani ezt az ötletet"? Nos, most itt az idő. Leírod, amit akarsz, iterálsz az AI-val, és megjelenik a termék.
Ez az érzés mámorító. És veszélyes.
A "jó lesz ez így" kód csábítása
Tavaly eldöntöttem, hogy letesztelem, meddig jut a vibe coding egy "egyszerű" memóriafunkcióval az AI ügynökök számára. Tudod, olyanra, ami lehetővé tenné, hogy egy kódolási asszisztens emlékezzen arra, amit korábban tanult, ahelyett hogy minden beszélgetésnél nulláról kezdené.
Mi lehetne nehezebb? Tárolunk néhány tényt, elővesszük őket, ha relevánsak, és jelezzük az ellentmondásokat. Egy okos adatbázis szép API-val.
A kód gyorsan összeállt. Nagyon gyorsan. Az ügynök, amivel dolgoztam, legyártott egy Rust daemont, egy osztályozási rendszert, négy visszakeresési stratégiát local modellekkel történő újrarangsorolással. Bárhol néznéd, lenyűgözőnek tűnt. A tesztek zöldek. A compiler elégedett.
Aztán elkezdtem használni.
Az a helyzet a memóriafunkciókkal, hogy nem igazán a tárolásról szólnak. A jelentésről szólnak. És a jelentés, kiderült, filozófiailag annyira problémás, hogy az alaposan begépelt kódod olyan, mintha rakétát építenél, és elfelejtenéd figyelembe venni a gravitációt.
Az ellentmondás-probléma, amiről senki nem beszél
Az eredeti célom egyszerű volt: ha az ügynök valami újat tanul, ellenőrizze, hogy ellentmond-e annak, amit már "tud." Logikusnak tűnik. Egy memória, ami más emlékekkel ellentmondásban van magyarázat nélkül, nem csak haszontalan — aktívan káros. Szennyezed a context windowt.confliktus információkkal.
Mi lehetne egyszerűbb? Hasonlítsd össze a két tényt. Jelezd az ütközést.
Kivéve.
Mi az ellentmondás egy ilyen rendszerben? Ha az ügynök hétfőn megtanulta, hogy "Projekt X PostgreSQL-t használ", kedden pedig azt, hogy "Projekt X MySQL-t használ", az ellentmondás? Lehet, hogy megváltozott a tech stack. Lehet, hogy az egyik forrás tévedett. Lehet, hogy "Projekt X" különböző projektekre utal. Lehet, hogy "használ" különböző dolgokat jelent különböző kontextusokban.
Az emberek ezt évek alatt felhalmozott здравый смысл, контекст és egyfajta "ez nem stimmel" érzés alapján kezelik, anélkül, hogy pontosan meg tudnák fogalmazni, miért. Az AI-rendszerek magabiztos szöveget generálhatnak bármelyik értelmezésről, de ez a magabiztosság gyakran csak pattern matching, megalapozott megértés nélkül.
Ahol a vibe coding elbukik
A vibe coding remekül működik azoknál a problémáknál, amiket tisztán meg tudsz fogalmazni. Van egy bug? Leírod a tüneteket. Kell egy függvény? Megadod a bemenetet és a kimenetet. Az AI kompetensen kezeli az implementációs részleteket.
De a rendszertervezés — a valódi rendszertervezés — azokról a problémákról szól, amiket nem tudsz tisztán megfogalmazni. Arról szól, hogy előre látod az olyan komponensek közötti interakciókat, amik még nem léteznek. Arról szól, hogy felteszed a "mi van, ha..." kérdést olyan forgatókönyvekre, amiket még el sem képzeltél.
Amikor megkértem az AI asszisztenst, hogy "implementálja az ellentmondás-detektálást", gyakorlatilag egy problémát kértem tőle megoldani, amit én magam sem tudtam pontosan definiálni. Az eredmények... kreatívak lettek. Beljebb mentünk a Belnap-rácsokba, a négyértékű logikába, formális verifikációba Agda bizonyításokkal, Petri hálózatokba. Az asszisztens bármire hajlandó volt, amit javasoltam, és őszintén szólva néhány ötlet tényleg érdekes volt.
De "érdekes" nem jelent "működik".
Az Agda bizonyítás helyes volt. Az architektúra jól dokumentált. És a rendszer mégsem érzékelte megbízhatóan az ellentmondásokat, mert a rossz absztrakciót formalizáltuk. Egy gyönyörű katedrálist építettünk homokos alapra, és sem az AI, sem én nem vettük észre, amíg hónapokat nem fektettünk bele.
A kellemetlen igazság
Íme, amit a vibe coding hívei nem mondanak el: a szoftverfejlesztés nehéz része sosem a kód begépelése volt. A megvalósítandó dolog kitalálása a nehéz.
Ez mindig is igaz volt. Az változott meg, hogy az "lett egy ötletem" és a "van kódom" közötti szakadék drámaian összezsugorodott. Ez őszintén csodálatos prototypinghoz, tanuláshoz, lehetőségek feltérképezéséhez.
De azt is jelenti, hogy gyorsabban és drágábban bukhatsz el, mint valaha. Generálhatsz óriási mennyiségű magabiztos kinézetű kódot, ami a rossz problémát oldja meg, és lehet, hogy csak akkor jössz rá, amikor már egy hibás alapra építettél fel egész rendszereket.
Ami tényleg segít
Mindez nem jelenti, hogy az AI-asszisztált fejlesztés rossz ötlet. Nem az. De az effektív használatához más készségek kellenek, mint a puszta kódolási képesség:
Tudnod kell, mit nem tudsz. Amikor az AI olyan területen javasol megoldást, ami nem az erősséged, nem az a megfelelő pillanat, hogy azt mond: "jó ötlet, implementáld." Az a pillanat, amikor mélyebbre kell ásnod.
A proof of concepteket könyörtelenül tesztelni kell valós felhasználási esetekkel. Ha memóriafunkciót építesz, tölts annyi időt a szétrombolásával, amennyit az építésére fordítottál. Különösen azokat a alapvető feltételezéseket próbáld meg feltörni, amikről nem is tudtad, hogy léteznek.
A magabiztosság nem a tiéd. Amikor egy AI asszisztens nagyon magabiztos egy tervezési döntésben, ez a magabiztosság a modellben van, nem a te megértésedben. Egy rendszer, amit nem értesz mélyen, olyan rendszer, amit nem tudsz karbantartani vagy debugolni.
A rendszertervezés még mindig egy szakma. Használhatod az AI-t a tervek gyorsabb feltérképezésére, a rendszerrészek gyorsabb implementálására, olyan ötletek prototypingjára, amikhez korábban hetek kellettek volna. De továbbra is kell valaki, aki értékelni tudja, van-e értelme a tervnek, helyesen interakcióználnak-e a komponensek, megállják-e a helyüket az alapvető absztrakciók.
A lényeg
Még mindig építem a memóriafunkciómat. Lassan javul. Megtanultam más kérdéseket feltenni, szigorúbban tesztelni, gyanakvóbbnak lenni a "jó lesz ez így" eredményekkel szemben.
De azt is megtanultam, hogy tiszteljem a különbséget a "a kód működik" és a "a rendszer helyes" között. Ez a rés mindig is létezett. Az AI eszközök nem zárták be — csak könnyebbé tették, hogy figyelmen kívül hagyjuk.
A legjobb vibe coderek nem a legjobb prompt-készségekkel rendelkezők. Azok, akik tudják, mikor hibás a vibe.
Szívesen felfedeznéd, mi minden lehetséges az AI-asszisztált hosting és fejlesztés világában? A NameOcean Vibe Hostingja erős infrastruktúrát kínál azokkal az eszközökkel, amikre szükséged van a következő projekted megépítéséhez, deployolásához és skálázásához.