Kako pregledati kod koji je generirala AI
Da biste pregledali kod koji je generirala AI, počnite s onim što se promijenilo, odnosno koje datoteke i zašto, zatim sami testirajte ponašanje prije nego što pročitate ijedan redak koda. Nakon toga provjerite područja u kojima AI kod najčešće griješi: nedostajuće provjere dopuštenja na poslužitelju, tajne izložene pregledniku, neprovjerene ulazne podatke, pakete ili funkcije koje ne postoje te izmjene stvari koje niste tražili da dira.
AI piše kod koji obično radi i često izgleda uredno. To ga čini lakim za odobravanje bez stvarne provjere. Ovaj vodič je rutina pregleda koja radi bilo čitate li kod tečno ili uopće ne.
Prilagodite pregled riziku
Ne traži svaka promjena istu pažnju.
| Promjena | Pregled |
|---|---|
| Tekst, boje, raspored | Pogledajte u pregledu na računalu i telefonu |
| Nova stranica ili značajka | Testirajte tijek; prelistajte promijenjene datoteke |
| Prijava, dopuštenja, plaćanja, osobni podaci | Pažljivo čitanje, pravo testiranje, razmislite o drugoj osobi za pregled |
| Struktura baze, brisanje podataka, migracije | Pročitajte promjenu, testirajte na kopiji, prvo napravite sigurnosnu kopiju |
Korak 1: Pogledajte što se promijenilo
Prije procjene koda dohvatite popis promjena:
- Ako je projekt u Gitu, pogledajte diff: datoteke i retke koji su se promijenili od zadnjeg commita. Pogledajte kako koristiti Git s aplikacijom izrađenom AI-jem.
- Ili pitajte AI izravno:
Popiši svaku datoteku koju si promijenio u zadnjoj izmjeni i za svaku u jednoj rečenici objasni što se promijenilo i zašto.
Crvene zastavice u ovoj fazi: datoteke koje nemaju veze sa zahtjevom, obrisane datoteke, promjene konfiguracije ili ovisnosti koje niste tražili.
Korak 2: Prvo testirajte ponašanje
Čitanje koda govori što bi trebao raditi; testiranje govori što stvarno radi. Prije čitanja:
- Isprobajte promjenu kao običan korisnik, na računalu i na zaslonu veličine telefona.
- Isprobajte s neispravnim unosom: prazna polja, vrlo dug tekst, negativni brojevi, datum u prošlosti.
- Isprobajte odjavljeni i kao drugi korisnik.
- Ponovno pokrenite tijekove koji su najvažniji: registracija, prijava, glavna radnja, plaćanje.
Ako testiranje ne prođe, uštedjeli ste vrijeme čitanja; jasno prijavite problem i pustite AI da ga popravi. Pogledajte kako napisati dobru prijavu greške.
Korak 3: Provjerite dopuštenja na poslužitelju
Najvažnija stvar za provjeru. AI alati često sakriju gumb na stranici, ali poslužitelju dopuste izvršiti radnju za svakoga tko je zatraži.
Za svaku rutu ili funkciju koja čita ili mijenja podatke pitajte:
- Provjerava li se je li korisnik prijavljen?
- Provjerava li se smije li taj korisnik pristupiti ovom zapisu?
- Je li ta provjera na poslužitelju, a ne samo na stranici?
Za svaku API rutu koju si dodao ili promijenio, reci mi koju provjeru dopuštenja radi na poslužitelju, citirajući redak. Označi svaku rutu bez nje.
Zatim testirajte: prijavite se kao korisnik A, zabilježite ID zapisa, prijavite se kao korisnik B i zatražite taj zapis. sigurnosni popis za aplikacije izrađene AI-jem sadrži cijeli test.
Korak 4: Tražite izložene tajne
- Pretražite promijenjene datoteke za bilo što što izgleda kao ključ ili lozinka.
- Provjerite čitaju li se tajni ključevi iz varijabli okoline i koriste li se samo u kodu na poslužitelju.
- Pazite na javne prefikse poput
VITE_iliNEXT_PUBLIC_na tajnim varijablama; oni se ugrađuju u kod za preglednik.
Pogledajte kako čuvati API ključeve na sigurnom.
Korak 5: Provjerite unos i greške
- Provjera na poslužitelju. Provjere u pregledniku mogu se zaobići. Obavezna polja, duljine, formati i dopuštene vrijednosti moraju provjeriti i poslužitelj.
- Upiti u bazu koriste parametre, a ne tekst složen spajanjem korisničkog unosa u upit.
- Greške se ne guše.
try/catchkoji ne radi ništa skriva kvarove. Greške treba zapisati, a korisnik treba vidjeti jednostavnu poruku. - Nema unutarnjih detalja prikazanih korisnicima. Stack trace-ovi i greške baze pripadaju zapisima, ne ekranu.
Korak 6: Provjerite da je sve stvarno
AI modeli ponekad proizvedu kod koji izgleda ispravno, ali upućuje na stvari koje ne postoje.
- Paketi: svaka nova ovisnost mora biti stvaran, održavan paket s točno tim nazivom. Budite oprezni s nazivima koji liče na pogreške u tipkanju popularnih paketa.
- Funkcije i opcije API-ja: ako kod poziva funkciju biblioteke ili opciju vanjskog API-ja koju nikad niste vidjeli, provjerite službenu dokumentaciju.
- Kod s oznakama mjesta: pretražite
TODO,mock,fake, podatke za primjer upisane izravno u kod ili funkcije koje vraćaju fiksnu vrijednost.
Jesi li dodao nove pakete? Za svaki navedi točan naziv, čemu služi i može li se bez njega.
Korak 7: Provjerite uklapa li se
Kod može raditi, a da ipak aplikaciju otežava kasnije mijenjanje:
- Dupliciranje. Ista logika kopirana na više mjesta s vremenom će se razići.
- Dosljednost. Treba slijediti obrasce koje koristi ostatak aplikacije.
- Veličina. Zahtjev od 20 redaka koji je proizveo 600 redaka zaslužuje pitanje.
- Mrtav kod. Stare verzije ostavljene uz nove.
Ima li u projektu koda koji je sada nekorišten zbog ove promjene ili logike koja je duplicirana negdje drugdje? Ništa ne mijenjaj, samo popiši.
Česte pogreške
- Odobravanje jer izgleda uredno. Uredan kod može preskočiti provjeru dopuštenja.
- Čitanje umjesto testiranja. Prvo testirajte, zatim čitajte.
- Testiranje samo sretnog puta. Isprobajte loš unos, krivog korisnika i odjavljeno stanje.
- Ignoriranje nepovezanih promjena datoteka. Pitajte zašto su se promijenile sve datoteke.
- Potpuno vjerovanje samo-pregledu. Koristite AI-jev pregled kao prvi prolaz i potvrdite testiranjem.
- Pregledavanje tjedna promjena odjednom. Pregledavajte male promjene čim nastanu.
Popis za provjeru
- Znam koje su datoteke promijenjene i zašto, i ništa nepovezano se nije promijenilo.
- Promjena radi na računalu i telefonu, s lošim unosom, odjavljeno i kao drugi korisnik.
- Svaka ruta s podacima provjerava prijavu i vlasništvo na poslužitelju.
- Nema tajni u kodu ni u paketima za preglednik.
- Unos se provjerava na poslužitelju; upiti koriste parametre.
- Greške se bilježe, ne guše se i ne prikazuju korisnicima u detaljima.
- Novi paketi su stvarni i potrebni; nisu ostali izmišljene funkcije ni oznake mjesta.
- Promjene visokog rizika su pažljivo pročitane i, gdje treba, pregledala ih je druga osoba.
Pregled koda na Mythexu
- Ask mode odgovara na pitanja o kodu bez njegova uređivanja, idealno za upite „objasni svaku promjenu” i „koje rute nemaju provjeru dopuštenja”. Pogledajte Chat.
- Prikaz koda pokazuje stablo datoteka, uređivač i terminal na svakom planu (samo za čitanje na planu Free, uređivanje na Pro), pa sami možete pročitati što se promijenilo. Pogledajte Uređivač koda.
/testagent prolazi kroz pregled kao korisnik i prijavljuje pokvarene tijekove.- Kontrolne točke vam omogućuju vraćanje promjene koja ne prođe pregled.
Ako pregled radi developer za vas, kako raditi s developerom na aplikaciji izrađenoj AI-jem pokriva predaju posla; ako pregled otkrije grešku, pogledajte kako ispraviti grešku u aplikaciji izrađenoj AI-jem.
Pitanja
Mogu li pregledati kod koji je generirala AI ako nisam developer?
Velik dio možete pregledati. Provjerite radi li promjena ono što ste tražili, testirajte važne tijekove, pokušajte pristupiti podacima drugog korisnika i zamolite AI da na običnom jeziku objasni svaku promijenjenu datoteku. Za plaćanja, osjetljive podatke ili sigurnost neka i developer pogleda.
Koji su najčešći problemi u kodu koji generira AI?
Nedostajuće provjere dopuštenja na poslužitelju, tajne postavljene tamo gdje ih preglednik može pročitati, ulazni podaci koji se ne provjeravaju na poslužitelju, paketi ili funkcije koje ne postoje, greške koje se tiho guše i promjene datoteka koje niste tražili.
Mogu li zamoliti AI da pregleda vlastiti kod?
Da, i često pronađe stvarne probleme, posebno ako postavite konkretna pitanja, primjerice koje rute nemaju provjeru dopuštenja. Tretirajte to kao prvi prolaz, a ne kao jamstvo, i potvrdite nalaze testiranjem.
Koliko bi trajao pregled koda?
Prilagodite ga riziku. Promjena teksta ili stilova treba brz pogled u pregled. Promjene prijave, plaćanja, dopuštenja ili baze podataka zaslužuju pažljivo čitanje, pravo testiranje i možda drugu osobu.