Tokom posljednje dvije godine, moj tim u Work & Co i ja smo testirali i postupno integrirali alate za AI kodiranje kao što su Copilot, Cursor, Claude i ChatGPT kako bi nam pomogli da isporučimo web iskustva koja koriste mase. Doduše, nakon nekog početnog skepticizma i nekoliko aha trenutaka, razni AI alati su se našli u mojoj svakodnevnoj upotrebi. Vremenom je lista aplikacija za koje smo otkrili da ima smisla dopustiti AI da preuzme kontrolu počela da raste, pa sam odlučio da podelim neke praktične slučajeve upotrebe AI alata za ono što ja zovem „odgovorni programer“. Šta mislim pod odgovornim programerom? Moramo se pobrinuti da isporučimo kvalitetan kod kakav očekuju naši dionici i klijenti. Naši doprinosi (tj. zahtjevi za povlačenjem) ne bi trebali postati opterećenje za naše kolege koji će morati pregledati i testirati naš rad. Također, u slučaju da radite za kompaniju: Alati koje koristimo moraju biti odobreni od strane našeg poslodavca. Osjetljivim aspektima kao što su sigurnost i privatnost treba postupati pravilno: nemojte lijepiti tajne, podatke o klijentima (PII) ili vlasnički kod u alate bez odobrenja politike. Tretirajte to kao kod stranca na internetu. Uvijek testirajte i provjerite. Napomena: Ovaj članak pretpostavlja vrlo osnovno poznavanje alata za AI kodiranje kao što je Copilot unutar VSCode ili Cursor. Ako vam sve ovo zvuči potpuno novo i nepoznato, Github Copilot video tutorijali mogu biti fantastična polazna tačka za vas.

Korisne aplikacije alata za AI kodiranje Napomena: Sljedeći primjeri će se uglavnom fokusirati na rad u JavaScript baziranim web aplikacijama kao što su React, Vue, Svelte ili Angular. Sticanje razumijevanja nepoznate kodne baze Nije neuobičajeno raditi na uspostavljenim kodnim bazama, a pridruživanje velikoj naslijeđenoj bazi kodova može biti zastrašujuće. Jednostavno otvorite svoj projekat i svog AI agenta (u mom slučaju Copilot Chat u VSCode) i počnite postavljati pitanja baš kao što biste postavili kolegi. Općenito, volim razgovarati sa bilo kojim AI agentom baš kao što bih sa drugim čovjekom. Evo preciznijeg primjera upita: "Dajte mi pregled arhitekture visokog nivoa: ulazne tačke, rutiranje, auth, sloj podataka, alati za pravljenje. Zatim navedite 5 fajlova za čitanje po redu. Objašnjenja tretirajte kao hipoteze i potvrdite skokom na referencirane datoteke."

Možete nastaviti postavljati dodatna pitanja poput „Kako detaljno funkcionira usmjeravanje?“ ili „Razgovarajte me o procesu i metodama provjere autentičnosti“ i to će vas odvesti do korisnih uputa da bacite malo svjetla u mrak nepoznate kodne baze. Triaging Breaking Changes prilikom nadogradnje zavisnosti Ažuriranje npm paketa, posebno kada dolaze s nadolazećim promjenama, može biti zamoran i dugotrajan posao, i natjerati vas da otklonite priličnu količinu regresija. Nedavno sam morao da nadogradim biblioteku vizuelizacije podataka plotly.js na jednu glavnu verziju izdanja sa verzije 2 na 3, i kao rezultat toga, označavanje ose u nekim grafovima je prestalo da radi. Nastavio sam pitati ChatGPT: "Ažurirao sam svoj Angular projekat koji koristi Plotly. Ažurirao sam plotly.js — dist paket sa verzije 2.35.2 na 3.1.0 — i sada su oznake na x i y osi nestale. Šta se dogodilo?"

Agent se odmah vratio s rješenjem (uvjerite se sami u nastavku). Napomena: I dalje sam provjerio objašnjenje u odnosu na službeni vodič za migraciju prije slanja popravka.

Sigurno repliciranje refaktora preko datoteka Rastuće baze kodova sasvim sigurno otkrivaju mogućnosti za konsolidaciju koda. Na primjer, primjećujete dupliciranje koda u datotekama koje se mogu izdvojiti u jednu funkciju ili komponentu. Kao rezultat toga, odlučujete da kreirate zajedničku komponentu koja može biti uključena umjesto nje i da izvršite preuređivanje u jednoj datoteci. Sada, umjesto da ručno izvršite te promjene u vašim preostalim datotekama, tražite od svog agenta da uvede refaktor umjesto vas. Agenti vam omogućavaju da odaberete više datoteka kao kontekst. Kada se izvrši refaktoriranje za jednu datoteku, mogu dodati i refaktorisane i netaknute datoteke u kontekst i zatražiti od agenta da uvede promjene u druge datoteke na sljedeći način: „Ponovite promjene koje sam napravio u datoteci A iu datoteku B“. Implementacija funkcija u nepoznatim tehnologijama Jedan od mojih omiljenih aha-trenutaka kada sam koristio alate za AI kodiranje bio je kada mi je pomogao da napravim prilično složenu animiranu animaciju gradijenta u GLSL-u, jeziku koji mi nije bio poznat. Na nedavnom projektu, naši dizajneri su osmislili animirani gradijent kao stanje učitavanja na 3D objektu. Zaista mi se dopao koncept i želeo sam da isporučim nešto jedinstveno i uzbudljivo našim klijentima. Theproblem: Imao sam samo dva dana da ga implementiram, a GLSL ima prilično strmu krivulju učenja. Opet, AI alat (u ovom slučaju, ChatGPT) je dobro došao i počeo sam jednostavno da ga pozivam da kreira samostalnu HTML datoteku za mene koja prikazuje platno i vrlo jednostavan animirani gradijent boja. Korak za korakom, podstakao sam AI da mu doda još finoće dok nisam došao do pristojnog rezultata kako bih mogao početi integrirati shader u svoju stvarnu bazu koda. Krajnji rezultat: Naši klijenti su bili super zadovoljni, a mi smo isporučili složenu funkciju u malom vremenu zahvaljujući AI. Writing Tests Prema mom iskustvu, rijetko postoji dovoljno vremena na projektima za kontinuirano pisanje i održavanje odgovarajućeg skupa testova jedinica i integracije, a povrh toga, mnogi programeri baš i ne uživaju u zadatku pisanja testova. Podsticanje vašeg AI pomoćnika da postavi i napiše testove za vas je potpuno moguće i može se obaviti u malom vremenu. Naravno, vi, kao programer, i dalje biste trebali biti sigurni da vaši testovi zaista sagledavaju kritične dijelove vaše aplikacije i slijedite razumne principe testiranja, ali možete "outsourisati" pisanje testova našem AI pomoćniku. Primjer upita: "Napišite jedinične testove za ovu funkciju koristeći Jest. Pokrijte sretni put, rubne slučajeve i načine neuspjeha. Objasnite zašto svaki test postoji."

Možete čak i prenijeti najbolje prakse testiranja gurua testiranja Kenta C. Doddsa kao smjernice svom agentu, kao u nastavku:

Interni alat Donekle slično prethodno spomenutom primjeru shadera, nedavno sam dobio zadatak da analiziram dupliciranje koda u bazi koda i uporedim prije i poslije refaktora. Svakako nije trivijalan zadatak ako ne želite ići dugotrajnim putem ručnog poređenja datoteka. Uz pomoć Copilot-a, napravio sam skriptu koja je analizirala dupliciranje koda za mene, uredila i naručila izlaz u tabeli i izvezla ga u Excel. Onda sam napravio korak dalje. Kada je naš refaktor koda završen, podstakao sam agenta da uzme moj postojeći Excel list kao osnovnu liniju, doda trenutno stanje dupliciranja u odvojenim kolonama i izračuna deltu. Ažuriranje koda napisanog davno Nedavno me je javio moj stari klijent jer s vremenom nekoliko funkcija više nije radilo kako treba na njegovoj web stranici. Kvaka: Web stranica je napravljena prije skoro deset godina, a JavaScript i SCSS su koristili prilično stare alate za kompajliranje kao što je requireJS, a za postavljanje je bila potrebna starija verzija Node.js-a koja se čak ni ne bi pokrenula na mom MacBook-u iz 2025. godine. Ručno ažuriranje cijelog procesa gradnje trajalo bi mi nekoliko dana, pa sam odlučio da upitam agenta AI-a: „Možete li ažurirati JS i SCSS proces izgradnje na lean steck za 2025. kao što je Vite?“ Sigurno jeste, i nakon otprilike sat vremena usavršavanja sa agentom, moj SCSS i JS build sam prebacio na Vite, i mogao sam se fokusirati na stvarno ispravljanje grešaka. Samo se pobrinite da ispravno potvrdite izlazne i kompajlirane datoteke kada radite takve integralne promjene u vašem procesu izgradnje. Sažimanje i izrada Da li biste željeli sažeti sve svoje nedavne promjene koda u jednoj rečenici za poruku urezivanja, ili imate dugu listu urezivanja i želite ih sažeti u tri tačke? Nema problema, pustite AI da se pobrine za to, ali molimo vas da ga provjerite. Primjer upita je jednostavan kao slanje poruke drugom čovjeku: “Molim vas da sumirajte moje nedavne promjene u sažetim tačkama”. Moj savjet ovdje bi bio da koristite GPT za pisanje s oprezom, i kao i kod koda, provjerite izlaz prije slanja ili podnošenja. Preporuke i najbolje prakse Prompting Jedna od ne tako očiglednih prednosti korištenja AI je da što su vaši upiti konkretniji i prilagođeniji, to je rezultat bolji. Proces podsticanja AI agenta nas tjera da formuliramo svoje zahtjeve što je preciznije moguće prije nego što pišemo i kodiramo. Zbog toga, kao opće pravilo, toplo preporučujem da budete što je moguće precizniji sa svojim poticajima. Ryan Florence, koautor Remixa, predlaže jednostavan, ali moćan način da poboljšate ovaj proces završavajući svoj početni upit rečenicom: “Prije nego počnemo, imate li pitanja za mene?”

U ovom trenutku, AI se obično vraća s korisnim pitanjima u kojima možete razjasniti svoju specifičnu namjeru, usmjeravajući agenta da vam pruži prilagođeniji pristup za vaš zadatak.

Koristite kontrolu verzija i radite u probavljivim komadima Upotreba kontrole verzija kao što je git ne samo da je zgodna kada sarađujete kao tim na jednoj bazi koda, već i da vam pruži kaoindividualni saradnik sa stabilnim tačkama na koje se mogu vratiti u slučaju nužde. Zbog svoje nedeterminističke prirode, umjetna inteligencija ponekad može pokvariti i napraviti promjene koje jednostavno nisu od pomoći za ono što pokušavate postići i na kraju nepopravljivo pokvariti stvari. Podijelite svoj rad na više urezivanja pomoći će vam da stvorite stabilne točke na koje se možete vratiti u slučaju da stvari krenu postrance. I vaši saigrači će vam takođe biti zahvalni, jer će im biti lakše da pregledaju vaš kod kada se podijeli na semantički dobro strukturirane dijelove. Pregledajte temeljito Ovo je više opšta najbolja praksa, ali po mom mišljenju postaje još važnija kada koristite AI alate za razvojni rad: Budite prvi kritički recenzent vašeg koda. Pobrinite se da odvojite malo vremena da pregledate svoje promjene red po red, baš kao što biste pregledali tuđi kod, i podnesite svoj rad tek kada prođe vašu vlastitu recenziju. "Dve stvari su za mene trenutno istinite: AI agenti su neverovatni i ogroman porast produktivnosti. Oni su takođe ogromne mašine za šljake ako isključite mozak i potpuno ga pustite."— Armin Ronacher u svom blog postu Agent Psychosis: Are We Going Insane?

Zaključak i kritičke misli Po mom mišljenju, alati za AI kodiranje mogu poboljšati našu produktivnost kao programera na dnevnoj bazi i osloboditi mentalni kapacitet za više planiranja i razmišljanja na visokom nivou. Prisiljavaju nas da artikuliramo željeni rezultat s pedantnim detaljima. Svaki AI ponekad može halucinirati, što u osnovi znači da leži u tonu samopouzdanja. Stoga vas molimo da provjerite i testirate, posebno kada ste u nedoumici. AI nije srebrni metak i vjerujem da izvrsnost i sposobnost rješavanja problema kao programera nikada neće izaći iz mode. Za programere koji tek počinju u svojoj karijeri ovi alati mogu biti vrlo primamljivi da za njih urade većinu posla. Ono što se ovdje može izgubiti je često iscrpljujući i bolan rad na greškama i problemima koje je teško otkloniti i riješiti, zvani “grind”. Čak Lee Robinson i Cursor AI postavlja ovo pitanje u jednom od svojih postova:

Alati za AI kodiranje se razvijaju brzim tempom i uzbuđen sam zbog onoga što će uslijediti. Nadam se da su vam ovaj članak i njegovi savjeti bili od pomoći i uzbuđeni ste što ćete i sami isprobati neke od njih.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free