Šta je vibe coding?
Vibe coding je izrada softvera u kojoj AI alatu opišete šta želite i prihvatite kod koji napiše, uglavnom bez čitanja i pregleda. Rezultat ocjenjujete klikanjem kroz aplikaciju, da vidite radi li naizgled kako treba. Kada se nešto pokvari, opišete problem i pustite AI alat da pokuša ponovo.
Izraz se proširio početkom 2025. godine, kada su chat asistenti, AI editori koda i alati za izradu aplikacija u browseru postali sposobni napraviti aplikaciju koja radi iz nekoliko promptova.
Ovaj članak je za osnivače, vođe proizvoda i operativne rukovodioce koji su vidjeli da aplikacija nastala vibe codingom radi, ili su je sami napravili. Pitaju se može li takva aplikacija nositi dio poslovanja, ili da li je sigurno obećanje dobavljača o softveru koji je izradio AI. I sami svaki dan koristimo AI agente za programiranje, pa je pitanje ovdje šta se dešava oko AI-ja: ko čita kod, šta ga provjerava i kome pripada.
Kada je vibe coding razuman izbor
Vibe coding ima smisla kada je softver mali, kada od njega malo zavisi i kada ga koristi samo osoba koja ga je napravila. Ako se pokvari, izgubite popodne, a u pitanju nisu ni podaci kupaca ni novac. To pokriva popriličan dio korisnog posla:
- Lični alati, kao što je evidencija vlastitih zadataka ili kalkulator za ponudu koju pripremate svake sedmice.
- Interni eksperimenti koje nekoliko kolega isprobava sedmicu dana, na izmišljenim ili javnim podacima.
- Ideja koju želite isprobati prije nego što u nju uložite. Prva verzija koja radi, napravljena za vas, pokazuje šta ideji treba, pa ideju kasnije lakše objasnite programeru ili dobavljaču.
- Skripte za jednokratnu upotrebu: jednokratno čišćenje podataka, pretvaranje između dva formata datoteka, provjera koju pokrenete jednom i obrišete.
- Učenje o tome kako se softver slaže, tako što AI alat zamolite da objasni šta je napisao.
Stvari se mijenjaju kada drugi ljudi počnu zavisiti od alata: kolege koje ga koriste svaki dan, kupci koji se prijavljuju ili lični podaci koji pripadaju nekom drugom. Alati često do te tačke stignu postepeno, a da niko nije odlučio da trebaju.
Šta se kvari kada stignu stvarni korisnici i podaci
Aplikacije nastale vibe codingom obično se kvare u dijelovima koje klikanjem ne vidite: nema testova, postoje sigurnosni propusti, s ličnim podacima se postupa nemarno, a kod niko ne razumije kada nešto pođe po zlu. Aplikacija može izgledati gotovo i ipak imati sve te probleme, jer se nijedan od njih ne vidi na ekranu.
Nema testova
Niko nije zapisao šta aplikacija treba raditi, pa ništa ne provjerava da to i dalje radi. Svaku izmjenu neko testira klikanjem, a putevi na koje niko ne klikne, kao što su otkazana narudžba, datum na kraju mjeseca ili obrazac poslan dvaput, ostaju neprovjereni dok na njih ne naiđe korisnik.
Sigurnosni propusti
Tri problema su česta u kodu koji niko nije pregledao, i svaki se može provjeriti:
- Izloženi ključevi: API ključevi ili lozinke baze podataka upisani u kod koji radi u browseru, gdje ih svako može pročitati, ili spremljeni u repozitorij koda.
- Nedostaju provjere pristupa: ekran skriva zapise drugog kupca, ali server ih vraća svakome ko promijeni ID u zahtjevu. Isti problem ima hostovana baza podataka čija pravila pristupa nikad nisu uključena.
- Injection (ubacivanje): tekst koji korisnik upiše ide direktno u upit bazi podataka ili u prompt, pa posebno sastavljen unos može pročitati ili izmijeniti podatke do kojih nikad ne bi smio doći.
Lični podaci i GDPR
Kada aplikacija počne čuvati imena, e-mail adrese ili zapise o kupcima, primjenjuje se GDPR. Morate znati koje lične podatke aplikacija drži, gdje se obrađuju, koji dobavljači s njima rade i prema kojem ugovoru, i kako obrisati podatke osobe kada to zatraži. U aplikaciji nastaloj vibe codingom lični podaci mogu završiti u logovima, u promptovima koji idu pružaocu AI usluga ili u regiji hostinga koju niko nije izabrao. Ovo su opće informacije i nisu pravni savjet, pa svoju situaciju provjerite sa službenikom za zaštitu podataka ili pravnim savjetnikom.
Kod koji niko ne razumije
Kada se nešto pokvari u ponedjeljak ujutro, neko mora pronaći uzrok. Ako niko nije čitao kod, jedini put je ponovo pitati AI alat, a on može popraviti simptom i usput promijeniti nešto drugo. Osoba koja je napravila aplikaciju možda je otišla, ili nikad nije znala kako aplikacija radi iznutra.
Zavisnosti koje niko ne prati
AI alati slobodno dodaju pakete. Svaki paket je tuđi kod koji treba ažurirati kada se pronađe sigurnosni problem, a neki se više ne održavaju. AI alati mogu predložiti i nazive paketa koji ne postoje, a napadač takav naziv može registrovati i ispuniti zlonamjernim kodom. Bez spiska zavisnosti niko ne zna kada je ažuriranje važno.
Troškovi rada
Kod koji radi za stotinu zapisa može biti spor i skup sa stotinu hiljada. Tipični uzroci su upit koji učitava cijelu tabelu da prikaže jedan red, poziv bazi podataka za svaku stavku na listi i poziv modelu pri svakom učitavanju stranice kada bi bio dovoljan jedan dnevno. Troškovi rastu s upotrebom, često bez postavljenog ograničenja potrošnje.
Izmjene koje pokvare druge funkcije
Zamolite AI alat da promijeni izgled fakture i on može usput prepisati obradu datuma od koje zavisi mjesečni izvještaj. Bez testova korisnik prijavi kvar tek nekoliko dana kasnije. Svaka popravka nosi isti rizik, pa je aplikaciju sve teže mijenjati što duže radi.
Po čemu se razlikuje agentic engineering
Agentic engineering je izrada softvera u kojoj iskusni programeri rade s AI agentima za programiranje. Programer dijeli posao na jasno ograničene zadatke, piše specifikaciju i testove, pušta agenta da napiše kod i pregleda svaku izmjenu prije nego što uđe u glavni kod. Programer odlučuje o arhitekturi i odgovara za ono što se pusti u rad.
Oba pristupa koriste AI za pisanje koda i oba mogu biti brza prvog dana. Tako radimo na vlastitim projektima i na projektima za klijente, a naš članak o tome kako izrađujemo SaaS uz AI agente za programiranje detaljno opisuje definisanje zadataka, testove unaprijed i pregled koda.
Kada vam dobavljač kaže da je njegov softver izrađen uz AI, to samo po sebi malo govori o kvalitetu. Pitajte ko pregleda svaku izmjenu prije nego što uđe u glavni kod, koji se testovi automatski pokreću i jesu li repozitorij koda i nalozi za hosting na vaše ime.
Kako se dva pristupa razlikuju
Glavna razlika je u tome ko preuzima odgovornost za kod. Kod vibe codinga prihvatate ono što AI alat napiše kada aplikacija naizgled radi. Kod agentic engineeringa programer to pregleda, testovi to provjeravaju, a tim zadržava dizajn koji razumije. To na početku košta nešto brzine, a softver ostaje siguran za kasnije izmjene.
| Karakteristika | Vibe coding | Agentic engineering |
|---|---|---|
| Ko pregleda kod | Obično niko; aplikacija se ocjenjuje klikanjem | Iskusni programer pregleda svaku izmjenu prije nego što uđe u glavni kod |
| Testovi | Rijetko se pišu, pa problemi izađu na vidjelo kada na njih naiđu korisnici | Pišu se za tokove koji su važni, često prije koda, i pokreću se pri svakoj izmjeni |
| Sigurnost | Zavisi od toga šta je AI alat slučajno napisao | Provjere pristupa, ključevi, lozinke i zavisnosti provjeravaju se u pregledu i automatskim skeniranjem |
| Ko razumije sistem | Često niko, uključujući osobu koja je pisala promptove | Programeri koji su osmislili arhitekturu, uz bilješke i dokumentaciju u repozitoriju |
| Brzina prvog dana | Vrlo brzo do prve verzije koja radi | Brzo, uz vrijeme uloženo na početku u obim, specifikacije i testove |
| Brzina nakon šest mjeseci | Opada, jer svaka izmjena može pokvariti nešto drugo | Ostaje ista, jer testovi hvataju kvarove, a kod ostaje čitljiv |
| Dobro odgovara za | Lične alate, brze eksperimente, jednokratne skripte i učenje | Softver na koji se godinama oslanjaju kupci, kolege ili revizori |
Jedno može slijediti drugo. Osnivač može vibe codingom isprobati ideju, a zatim je dati na ponovnu izradu s pregledom i testovima kada ljudi počnu zavisiti od nje. Prva verzija i dalje pokazuje ekrane, podatke i pravila koja pravom sistemu trebaju.
Šta uraditi ako vaše poslovanje radi na aplikaciji nastaloj vibe codingom
Ako vaše poslovanje već radi na aplikaciji nastaloj vibe codingom, rijetko je morate baciti. Utvrdite šta radi i čega se dotiče, zaštitite podatke i ključeve, postavite testove oko tokova koji su važni, a zatim za svaki dio odlučite šta zadržati, preraditi ili izraditi ponovo. Koracima idite ovim redom:
- 01Popišite šta radi i ko je koristi. Za svaku funkciju zapišite ko se oslanja na nju i šta se dešava ako stane na jedan dan. To pokazuje odakle početi.
- 02Provjerite gdje su podaci i ključevi. Pronađite svaki API ključ, lozinku i vezu s bazom podataka, premjestite ih iz koda u sistem za čuvanje tajnih podataka i zamijenite svaki ključ koji je bio izložen. Zabilježite koje lične podatke aplikacija drži, gdje je hostovana i koji ih pružaoci usluga primaju.
- 03Dodajte testove oko tokova koji su važni. Počnite s putevima koji rade s novcem, narudžbama ili podacima kupaca. Testovi koji bilježe kako se aplikacija danas ponaša omogućavaju da je mijenjate, a da te tokove neprimjetno ne pokvarite.
- 04Uradite sigurnosni pregled. Provjerite da server primjenjuje pravila pristupa na svakom ekranu i API ruti, potražite injection u obrascima i promptovima, ažurirajte ili uklonite ranjive pakete i potvrdite da logovi ne drže lične podatke koji im ne trebaju.
- 05Za svaki dio odlučite: zadržati, preraditi ili izraditi ponovo. Dijelovi koji prođu testove i pregled mogu ostati. Dijelove koji rade, a niko ih ne može pratiti, treba preraditi. Dijelove s pogrešnim modelom podataka ili bez kontrole pristupa često je brže izraditi ponovo nego sigurno zakrpiti. Neke je možda bolje zamijeniti standardnim softverom, a naš vodič izraditi ili kupiti pomaže u toj odluci.
- 06Stavite je u repozitorij koji je vaš, s automatskim puštanjem u rad i praćenjem. Premjestite kod u repozitorij pod nalogom vaše organizacije, s automatskim puštanjem novih verzija, backupom, upozorenjima o greškama i pristupom za više od jedne osobe, da aplikacija više ne zavisi od jednog laptopa ili AI naloga jedne osobe.
Ako je aplikacija alat koji koristite samo vi, većina ovoga traži više truda nego što vrijedi. Ako se na nju oslanjaju kupci ili kolege, ove korake može proći interni programer, ili ih možete prepustiti agenciji za razvoj softvera po mjeri. Za proizvod koji prodajete, naša stranica o izradi SaaS proizvoda opisuje temelje koje prvo treba provjeriti: odvojenost podataka svakog klijenta (tenant isolation), uloge i prava pristupa, i naplatu.
Pitanja o kodu koji piše AI
Da li je vibe coding siguran?
Vibe coding je dovoljno siguran za alate koje koristite samo vi, bez ličnih podataka, novca ili pristupa kupaca. Kada od aplikacije počnu zavisiti drugi ljudi ili njihovi podaci, tretirajte je kao softver koji niko nije pregledao: neka neko pročita kod, dodajte testove i provjerite izložene ključeve, nedostajuće provjere pristupa i injection prije nego što se na nju oslonite.
Može li se aplikacija nastala vibe codingom pustiti u rad?
Ponekad, nakon pregleda, testova i sigurnosne provjere. Neke takve aplikacije rade prave stvari i trebaju rad samo na onome što ekran ne pokazuje: tajnim podacima, pravilima pristupa, obradi podataka, zavisnostima i praćenju. Druge imaju model podataka ili strukturu zbog kojih je ponovna izrada brži put.
Puštanje u rad znači i da je neko nakon toga odgovoran za ažuriranja, backup i popravke. Odlučite ko je to prije nego što kupci počnu koristiti aplikaciju.
Koriste li profesionalni programeri AI za pisanje koda?
Koriste. Mnogi profesionalni programeri svaki dan koriste AI alate, od prijedloga u editoru koda do AI agenata za programiranje koji preuzmu cijeli zadatak i vrate izmjenu na pregled. Od vibe codinga ih razlikuje to što programer čita i testira ono što AI alat napravi i ostaje odgovoran za to.
Da li je agentic engineering samo vibe coding s dodatnim koracima?
AI dio izgleda slično: neko opiše zadatak, a agent napiše kod. Dodatni koraci su specifikacija, testovi, pregled svake izmjene i odgovornost za arhitekturu. Od njih zavisi da li se softver i za godinu dana može sigurno mijenjati.