AI i alati Studija slučaja

Claude Code u praksi: iskustvo sa 160 komitova i AI pair programming-om na realnom projektu

· 7 min
Sadržaj

Nisam pisao PHP deceniju. Moj AI partner nikada nije pisao PHP.

Mi smo bili sjajan tim.

160 komitova. 47 dana. Jedna platforma sa 250.000 korisnika potpuno obnovljena. I ni u jednom trenutku nisam copy-paste-ovao kod bez razumevanja šta radi.

To je poenta koju većina ljudi ne shvata kada pričaju o AI programiranju. Ovo nije bilo generisanje koda. Ovo je bilo pair programming.

Razlika koja menja sve

Generator koda izbacuje snippet-e. Vi ih kopirate. Možda rade. Možda ne. Vi niste sigurni zašto.

Pair programmer razume kontekst. Prati logiku kroz više fajlova. Predlaže rešenja koja uzimaju u obzir celu arhitekturu. I objašnjava svoje razmišljanje.

Sa monorepom od 5 aplikacija — PHP tema, PHP plagin, Node.js API, React Email šabloni, Playwright testovi — taj kontekst je bio neprocenjiv.

Pitam o bagu u WordPress temi. Claude proverava Node API da vidi da li je problem tamo. Pronalazi da callback ne šalje ispravan header. Predlaže fix u oba fajla. Objašnjava zašto.

To nije generisanje koda. To je saradnja.

Gde je AI sjajio

Boilerplate i pattern konzistentnost.

Kada pišete šestu PHP klasu koja prati isti obrazac, AI zna obrazac. Generiše skeleton. Vi popunjavate logiku. Svi fajlovi izgledaju konzistentno bez da vi ručno kopirate i menjate.

Membership sistem ima 6 custom klasa: Access Service, Quota Service, Library Service, Ledger Service, Verification Service, Download Gate. Sve prate isti obrazac. Sve su konzistentne. AI je generisao strukturu, ja sam pisao logiku.

Debugging u 3 ujutru.

Postoji posebna vrsta baga koji se javlja samo u produkciji, samo za određene korisnike, samo u određeno vreme. Vi ste umorni. Ne možete da razmišljate jasno.

AI ne umara. Može da analizira log-ove, predloži hipoteze, generiše debug kod. Može da pogleda problem iz više uglova dok vi zurite u ekran.

Nije uvek u pravu. Ali uvek ima ideju.

Dokumentacija koju ljudi preskaču.

48 markdown fajlova. Tokom implementacije, ne posle.

Svaki doc je nastao tako što sam objasnio AI-ju šta gradimo. AI je to formatirao u dokumentaciju. Ja sam pregledao i dopunio.

To nije bilo dodatno vreme. To je bilo deo procesa. I ta dokumentacija je postala kontekst za sledeću funkcionalnost.

Cross-language fluency.

Jedan dan: PHP WordPress hook. Sledeći dan: TypeScript Hono API. Sledeći dan: Playwright test. Sledeći dan: Bash deploy skripta. Sledeći dan: SQL migracija.

AI govori sve te jezike tečno. Ja sam govorio neke od njih pre 10 godina. AI je bio prevodilac i učitelj istovremeno.

Gde sam ja bio neophodan

Poslovna logika.

700 odgovora na anketu. Nijedno AI ne zna šta studenti sa Balkana zaista trebaju. Nijedna količina treniranja ne može da zameni direktan razgovor sa korisnicima.

Napomena o anketi: Tih 700 odgovora nije stiglo odjednom. Anketa je trajala 4-5 meseci — pop-up na sajtu i email kampanje postojećim korisnicima. Feedback se akumulirao postepeno, i svaka nova grupa odgovora je uticala na odluke koje smo donosili u tom trenutku. Nije bio jedan veliki "istraživački sprint" već kontinuiran dijalog sa korisnicima dok smo gradili.

Diminishing returns logika — 14/7/3/0 dana za uzastopne upload-ove — je proizašla iz razumevanja da korisnici gaming-uju sisteme. AI može da implementira logiku. Ne može da je smisli.

UX odluke.

Two-step download flow: potvrda pre potrošnje kredita. Mala UX promena, veliki signal poverenja.

AI može da generiše UI. Ne može da zna da korisnici paniče kada vide da im je kredit potrošen a download nije uspeo.

Trust i compliance odluke.

Stripe je rekao ne. PayPal je rekao ne. Google Ads je rekao ne. Preformulisao sam ceo poslovni model da bih dobio "da".

AI ne razume regulatorne nijanse. Ne zna da "kupovina dokumenata" zvuči drugačije od "pristup biblioteci". Ne zna da "virtuelni poeni" podižu crvene zastave.

Sekvenciranje migracija.

Redosled operacija kod kompleksnih migracija je kritičan. Pogrešan redosled = izgubljeni podaci.

myCRED → custom membership. ACF fields → native taxonomy. Ultimate Member → custom auth. Svaka migracija je zavisila od prethodne. AI je mogao da napiše svaku migraciju. Nije mogao da odredi redosled.

Tipičan dan

Jutro: Čitam šta je Claude predložio sinoć za problem koji nisam mogao da rešim. Možda je rešenje dobro. Možda nije. Testiram.

Pre podne: Pišem specifikaciju za novu funkcionalnost. Claude predlaže implementaciju. Diskutujemo arhitekturu. Slažemo se (ili ne).

Popodne: Kodiram. Claude generiše, ja pregledam. Claude debugguje, ja verifikujem. Claude dokumentuje, ja dopunjujem.

Veče: Zapisujem šta nije završeno. Claude predlaže pristup za sutra. Spavam (Claude ne spava).

Iskrena procena

Claude Code nije zamenio tim. Učinio je solo developera održivim tamo gde to ne bi trebalo da bude moguće.

Sa tradicionalnim pair programming-om, potrebna su dva developera. Sa AI pair programming-om, potreban je jedan developer i disciplina da koristi AI kao partnera, ne kao čarobni štapić.

Disciplina znači:

  • Razumeti kod pre nego što ga komituješ
  • Testirati pre nego što proglasiš da radi
  • Dokumentovati dok gradiš, ne posle
  • Znati kada AI greši (često) i ispraviti

Magija nije u AI-ju. Magija je u tome što možete da održavate momentum koji inače zahteva ceo tim. Jedan developer sa AI može da uradi posao koji bi inače zahtevao 2-3 developera. Ali samo ako taj developer zna šta radi.

AI amplifikuje sposobnost. Ne stvara je.

AI pair programming nije budućnost kodiranja. To je sadašnjost. Ali funkcioniše samo ako razumete da AI nije zamena za znanje — to je multiplikator znanja koje već imate.

160 komitova nije impresivno. Impresivno je da je jedan developer mogao da održi kvalitet kroz 160 komitova, 5 različitih jezika, i 47 dana bez sagorevanja.