zisky:
- Schopnosť používať AI ako počiatočný filter kontroly s kategóriami a značkami závažnosti
- Schopnosť filtrovať zistenia s ľudskou mysľou na overenie/falošne pozitívne/použitie
- Schopnosť presadzovať požiadavky ľudského súhlasu na obchodné pravidlá, architektúru a bezpečnostné rozhodnutia
Kontrola kódu je, keď zmenu napísanú vývojárom skontroluje niekto iný pred jej zlúčením. Dobrý prehľad; Včas zachytáva chyby, zdieľa informácie a udržiava kódovú základňu konzistentnú. Ale recenzie sú únavné, náchylné na rozptýlenie a pod časovým tlakom sa stávajú povrchnými. Umelá inteligencia je tu dvojnásobným pomocníkom: umožňuje vám predčistiť svoj vlastný kód, ktorý odošlete na kontrolu, a ostrejším pohľadom preskúmať PR (požiadavku na stiahnutie) niekoho iného.
Kritický rozdiel je tento: AI zrýchľuje a zlepšuje kontrolu, ale nemôže prevziať zodpovednosť za schválenie. Veta „AI vyzerala, je čistá“ nie je potvrdením. Konečné rozhodnutie o „zlúčení“ je na inžinierovi, ktorý pozná kód a kontext.
Prehľad toho, čo je AI dobrá a zlá
Dobré pre: Chyby pri nulovej kontrole, úniky zdrojov (súbor/odkaz zostávajú otvorené), nezachytené výnimky, zjavne nesprávne podmienky (>= namiesto >), návrhy na premenovanie, čitateľnosť, chýbajúce okraje, jednoduché bezpečnostné zápachy (napríklad reťazenie reťazcov SQL), detekcia duplicitného kódu.
Slabé stránky: Hlboké chyby, ktoré porušujú vaše obchodné pravidlá, ale vyžadujú kontext a načasovanie, ako napríklad syntakticky správna logika, súlad s architektúrou, skutočné obmedzenia výkonu, chyby súbežnosti. Umelá inteligencia tiež produkuje falošné pozitíva (zamieňanie niečoho, čo v skutočnosti nie je problémom, za problém) a falošné negatívy (chýbajúca skutočná chyba). Preto je jeho výstupom „zoznam upozornení“, nie definitívny verdikt.
Upozornenie: To, že AI hovorí „žiadny problém“, nedokazuje, že kód je správny. Falošné negatívy mlčia; Najnebezpečnejšie chyby sú tie, ktoré sa v recenzii nikdy nespomínajú.
Kroky systematického preskúmania
- Uveďte kontext. Do výzvy pridajte účel zmeny, príslušný problém a akceptačné kritériá, ak nejaké existujú. Bezúčelná recenzia produkuje bezúčelnú interpretáciu.
- Rozdeľte to do kategórií. Požiadajte model, aby klasifikoval zistenia ako „chyba/zabezpečenie/výkon/čitateľnosť/štýl“; takže oddelíte kritické od hluku.
- Vyžiadajte si označenie závažnosti. Každému nálezu priraďte hodnotenie „vysoké/stredné/nízke“ a uveďte „príčinu“ a „odporúčanú nápravu“.
- Prefiltrujte si to na vlastné oči. Vyhodnoťte každé zistenie: je skutočné (overte), či je falošne pozitívne (napíšte odôvodnenie), chýba vám niečo (doplňte vlastné poznatky).
- Manuálne overte kritické cesty. Čítajte a spúšťajte cesty zahŕňajúce peniaze, identitu, autorizáciu a vymazanie údajov sami bez spoliehania sa na AI.
Tri mini puzdrá
Prípad 1 – Zachytená tichá nulová chyba. Jeden tím mal predbežnú kontrolu AI s 380-riadkovým PR. Model označil spôsob, akým by odpoveď externej služby mohla byť nulová, ale v kóde sa na to nevykonali žiadne kontroly. Ľudský kontrolór overil túto cestu a pridal kontrolu nuly; Podobná chyba spôsobila v predchádzajúcom štvrťroku 2-hodinové prerušenie výroby.
Prípad 2 – Falošná pozitívna eliminácia. AI nahlásila „možný problém s výkonom“ v slučke. Recenzent to uzavrel ako falošne pozitívny, pretože vedel, že slučka funguje iba s maximálne 5 prvkami (zacyklí sa cez enum). Modelka, ktorá nepoznala súvislosti, varovala; Človek, ktorý poznal kontext, sa rozhodol správne.
Prípad 3 – Chyba obchodného pravidla AI. Kým zľavový účet by mal byť podľa pravidla kampane maximálne 30 %, kód umožňoval 50 %. AI si nikdy nevšimla túto syntakticky dokonalú logickú chybu; pretože nepoznal pravidlo. Chybu zachytil v recenzii vlastník produktu, ktorý poznal kritériá prijatia. Ponaučenie: Overovanie obchodných pravidiel je ľudská práca.
Štyri kopírovateľné šablóny
Účelovo orientovaná, kategorizovaná recenzia:
Úloha: Precízny kontrolór kódu. Účel zmeny: {{purpose / issue}}Skontrolovať tento rozdiel. Poskytnite zistenia v týchto kategóriách: [Chyba] [Zabezpečenie][Výkon] [Čitateľnosť] [Štýl]. Pre každý nález: súbor:riadok, závažnosť (vysoká/stredná/nízka), príčina, odporúčaná oprava. Ak si nie ste istý, označte „možné“. Nepoznáte pravidlá podnikania; Opýtajte sa ma na miesta, ktoré vyžadujú pravidlá.{{diff}}
Ak sa chcete pripraviť na kontrolu vlastného kódu:
Pred otvorením PR skontrolujte túto zmenu. Hľadajte: chýbajúcu kontrolu null/bug, únik zdrojov, okrajový prípad, tajnú, netestovanú vetvu. Uveďte zistenia v poradí podľa priority; navrhnite opravu 1 riadok pre každú z nich.{{code}}
Hľadanie okrajových prípadov:
Uveďte vstupy a situácie, v ktorých môže táto funkcia prestať fungovať: prázdna, nulová, príliš veľká, záporná, súbežné volanie, chyba siete, čiastočné údaje. Pre každý prípad napíšte očakávané správanie a čo bude robiť aktuálny kód.{{funkcia}}
Bezpečnostné skenovanie pachov (predbežná kontrola):
V tomto kóde hľadajte bežné pachy zabezpečenia: zreťazenie SQL/príkaz, nevalidovaný vstup, nemenné vložené tajomstvo, nezabezpečená deserializácia, nedostatok kontroly privilégií. Rozdeľte zistenia na „určité/pravdepodobné/vedomosti“. Toto je predbežný skríning; Nie je to definitívne rozhodnutie.{{code}}
Slabá výzva / Silná výzva
Slabý: "Je v tomto PR chyba?"
Silný: "Účel: pridajte zľavu z kupónu k celkovej sume košíka (zľava nesmie byť väčšia ako 30 % — toto pravidlo nemôžete overiť sami, povedzte mi, či kód stanovuje hornú hranicu). Preskúmajte rozdiel; uveďte zistenia podľa kategórie + závažnosti + navrhovanej opravy, ak si nie ste istí, označte 'možné'. [rozdiel]"
Silná verzia jasne uvádza zámer, obchodné pravidlo a hranice AI; Prichádzajú teda užitočné zistenia a modelom neznáma oblasť zostáva jasná.
Typ nálezu
Spoľahlivosť AI
mužská rola
Chýba kontrola nuly/chyby
vysoká
Overiť a použiť
Čitateľnosť/štýl
vysoká
Vyberte si podľa preferencie
Jednoduchý bezpečnostný zápach
stredná
Dokončiť, skenovať vozidlom
Dodržiavanie obchodných pravidiel
nízka
Je to úplne ľudské.
Súbeh/architektúra
nízka
Vyžaduje sa odborné posúdenie
AI recenzia nie je náhradou za kontrolu človekom
Umiestnite recenziu AI ako „prvý filter“: lacný, rýchly a neúnavný predbežný prechod. Tento filter oslobodzuje pozornosť ľudského recenzenta od nedôležitých detailov (medzera, meno) a nasmeruje ju na miesta, ktoré skutočne vyžadujú premýšľanie – obchodné pravidlo, architektúra, výsledok bezpečnosti. Schválenie zlúčenia je však podpisom zodpovednej osoby v rámci tímu. Pre zmeny kritické z hľadiska bezpečnosti je povinné nezávislé preskúmanie aspoň jedným kompetentným inžinierom.
Tip: Prečítajte si zoznam zistení, ktoré AI vytvára ako „veci, ktoré treba skontrolovať“, a nie ako „čo robiť“. Buď overte a aplikujte každú položku, alebo napíšte jednou vetou, prečo ste ju prešli; táto stopa robí kontrolu auditovateľnou.
Časté chyby
- Znamená to „AI vyzerala, je čistá“. Ide o falošný pocit dôvery kvôli falošným negatívam.
- Neuvádzanie kontextu. Bez účelu a kritérií akceptácie vytvára model iba povrchné interpretácie štýlu.
- Slepo uplatňovanie falošných poplachov. Oprava každého varovania modelu by mohla narušiť spustený kód.
- Pýtanie sa modelu na obchodné pravidlo. Modelka nepozná pravidlo; Je na človeku, aby si to overil.
- Nediskriminujte násilie. Vloženie kritického bezpečnostného nálezu a návrhu názvu do jedného vreca zatieni to, čo je dôležité.
V súhrne
AI je neúnavným prvým filtrom pri kontrole kódu: zachytáva nulové/chybové chyby, okrajové prípady a jednoduché zabezpečenie dobre vonia; ale je slabý v súvislosti s chybami vyžadujúcimi kontext, ako sú obchodné pravidlá, architektúra a súbežnosť, a vytvára falošné pozitíva aj falošné negatívy. Požiadajte o zistenia podľa kategórie a závažnosti, filtrujte každý pomocou ľudskej inteligencie, manuálne overte kritické cesty. Schválenie je vždy podpisom zodpovedného inžiniera.
Aplikačná úloha
Vyberte skutočný alebo nedávny PR/rozdiel. Najprv nechajte AI, aby to skontrolovala pomocou šablóny „objektívne orientovaná, kategória recenzie“. Umiestnite zistenia do tabuľky a pre každé sa rozhodnite: pravdivé (overil som), falošne pozitívne (tu je moje zdôvodnenie) alebo sa má implementovať. Potom si urobte prehliadku a pokúste sa nájsť aspoň jednu vec (najmä obchodné pravidlo alebo okrajový prípad), ktorá AI chýba, a zapíšte si ju.
kontrolný zoznam
- [ ] Kontrolu AI používam ako prvý filter, nie ako potvrdenie.
- [ ] Do výzvy na kontrolu pridávam účel a kritériá prijatia.
- [ ] Oddeľujem zistenia od hluku podľa kategórie a silne ich chcem.
- [ ] Každý nález vedome filtrujem, aby som potvrdil/falošne pozitívny/aplikoval.
- [ ] Ako človek kontrolujem obchodné pravidlá a súlad s architektúrou.
- [ ] Na zmeny kritické z hľadiska bezpečnosti potrebujem súhlas kvalifikovaného inžiniera.