Čovjek vs AI: Kako provjeriti AI kod prije objave [Savjeti]
Prestani lagati sebi: AI ne piše kod, on ga pogađa
Prestani kupovati priču o ‘kodu koji radi iz prve’. To je marketinška prevara koja će ti srušiti server u tri ujutro kada najmanje očekuješ. Tvoj LLM, bio to Claude, GPT-4 ili neki lokalni model, ne razumije logiku; on samo pogađa sljedeći najvjerovatniji token u nizu. Ako samo kopiraš i lijepiš ono što ti izbaci, ti ne programiraš, ti se kockaš sa svojim biznisom. Ti si taj koji mora držati kontrolu, a tvoj AI je samo pripravnik koji previše priča. Većina developera danas pravi kardinalnu grešku i zaboravlja da siguran AI kod zahtijeva ljudski skalpel, a ne slijepo povjerenje.
Zašto ti treba ‘Digitalni Multimetar’: Iskorijeni halucinacije u logici
Kada popravljaš struju u kući, ne nagađaš koja je žica pod naponom. Koristiš multimetar. Kod AI generisanog koda, tvoj ‘multimetar’ je statička analiza koda. Svaki put kad dobiješ blok koda, moraš ga provući kroz alat koji provjerava sintaksu i poznate ranjivosti prije nego što uopšte razmisliš o pokretanju. Miris ozona u workshopu je znak da je nešto pregorjelo; u kodu, taj ‘miris’ je predugačka funkcija koju AI voli da izbaci kako bi izgledao pametnije. To će pasti. AI često ubacuje biblioteke koje više ne postoje ili verzije koje imaju kritične propuste. Često se dešava da AI predloži rješenje koje je zastarjelo jer su mu podaci za trening stali prije dvije godine. Nemoj biti papak koji instalira biblioteku staru pet godina samo zato što je chatbot to rekao.
WARNING: Nikada, ali apsolutno nikada ne unosi stvarne API ključeve ili lozinke u promptove javnih AI modela. Čak i ako ih kasnije obrišeš, podaci ostaju u memoriji modela i mogu procuriti drugim korisnicima kroz buduće odgovore. 120v struja te može ubiti, a curenje API ključa ti može isprazniti bankovni račun u sekundi.

Anatomija propasti: Kad zaboraviš sanitizaciju inputa
Sjedio sam sa Zoranom, starim sistem administratorom, prošle sedmice. Pokazao mi je bazu podataka koja je bila ‘očišćena’ jer je AI asistent zaboravio dodati escape karaktere u SQL upit. AI voli pisati čist, estetski lijep kod, ali često zaboravlja na ‘prljave’ detalje poput SQL injekcija ili Cross-Site Scripting (XSS) zaštite. Ako tvoj kod prima bilo kakav unos od korisnika, smatraj taj unos zaraženim. AI to često previdi jer pokušava da ti ugodi i da ti najkraće moguće rješenje. Kraći put je često put do provalije. Ako želiš izbjeći tužbe, pročitaj pravne aspekte AI-ja jer te niko neće braniti na sudu govoreći ‘tako mi je ChatGPT napisao’.
Zašto unit testovi nisu opcija, nego obaveza?
Unit testovi su kao potporni stubovi na nadstrešnici. Ako ih nemaš, konstrukcija će možda stajati dok je sunčano, ali će se srušiti pod prvim snijegom. Svaki put kad AI generiše funkciju, natjeraj ga da napiše i unit testove za tu istu funkciju. Ali pazi, AI će i u testovima lagati. Provjeri testne slučajeve (edge cases). Šta ako je unos nula? Šta ako je string prazan? Šta ako je fajl veći od 2GB? AI obično piše testove za ‘sunčane scenarije’. Ti budi onaj koji donosi oluju.
The Anatomy of a Screw-Up: Slučaj nestale memorije
Evo kako izgleda katastrofa u praksi. Jedan klijent je koristio AI da napiše Python skriptu za obradu slika. Kod je izgledao sjajno. Flush-mounted, reklo bi se. Ali AI je koristio biblioteku koja nije automatski zatvarala fajl deskriptore unutar petlje. Na prvih deset slika, sve je radilo. Na deset hiljada slika, server je ostao bez memorije i srušio je cijeli klaster. Šteta? Pet sati downtime-a i izgubljeni klijenti. Da su pratili performance monitoring, vidjeli bi da kriva zauzeća memorije raste kao luda. AI ne osjeća ‘težinu’ koda; on samo slaže cigle, ne pitajući se da li je temelj od pijeska.
Kako provjeriti performanse bez gubljenja vremena?
Koristi profilere. To su alati koji ti tačno govore koliko procesorske snage troši svaka linija koda. AI često piše neefikasne petlje (O(n^2) umjesto O(n log n)). Ako ti aplikacija postane spora nakon dodavanja AI koda, nemoj samo dodavati još RAM-a. To je kao da sipaš više goriva u auto kojem cure crijeva. Zakrpi rupu u kodu.
Code Reality Check: Lokalni zakoni i privatnost
Napomena: GDPR i lokalni zakoni o zaštiti podataka u Bosni i Hercegovini ne mare za to što ti je ‘asistent’ napisao kod. Ako tvoj kod šalje podatke korisnika na servere u SAD bez enkripcije, ti si u prekršaju. Provjeri gdje idu tvoji podaci. Mnogi AI modeli predlažu integracije sa trećim stranama (third-party APIs) koje možda ne zadovoljavaju tvoje sigurnosne standarde. Uvijek provjeri dokumentaciju svake biblioteke koju ti AI predloži. Nemoj samo jam-ovati kod u produkciju.
Pitanje stručnjaka: Može li AI sam sebe debugovati?
Da li AI može popraviti svoje greške? Kratak odgovor: ponekad. Ako mu daš error log, on će pokušati da ga zakrpi, ali često će u tom procesu stvoriti dva nova bug-a. To je kao da koristiš selotejp da popraviš cijev koja puca. Drži vodu dok majstori odu. Ti moraš biti majstor koji će na kraju zavrnuti pravi ventil i osigurati spoj.
Zadnji pregled: Prije nego što pritisneš Deploy
Prije nego što tvoj kod vidi svjetlo dana, prođi kroz ovu listu. Prvo, pročitaj svaku liniju. Ako ne razumiješ šta linija radi, obriši je. Drugo, pokreni sigurnosni skener. Treće, testiraj kod na malom uzorku podataka koji nisu kritični. DIY programiranje uz pomoć AI-ja je moćno, ali zahtijeva čvrstu ruku. Tvoj arm će te boljeti od silnog skrolovanja i provjeravanja, ali to je cijena kvaliteta. Ne budi lijen. Programiranje je zanat, a zanatlija se poznaje po alatima koje koristi i po tome koliko mu je radionica čista. Drži svoj kod čistim, a svoj AI na kratkom lancu.


