zisky:
- Schopnost používat AI jako počáteční filtr recenzí s kategoriemi a značkami závažnosti
- Schopnost filtrovat nálezy lidskou myslí pro ověření/falešně pozitivní/použití
- Schopnost prosazovat požadavky na souhlas člověka s obchodními pravidly, architekturou a důležitými bezpečnostními rozhodnutími
Kontrola kódu je, když je změna napsaná vývojářem zkontrolována někým jiným, než je sloučena. Dobrá recenze; Odhaluje chyby včas, sdílí informace a udržuje konzistentní kódovou základnu. Recenze jsou ale únavné, náchylné k rozptýlení a pod časovým tlakem se stávají povrchními. Umělá inteligence je zde dvojím pomocníkem: umožňuje vám jak předem vyčistit vlastní kód, který odešlete ke kontrole, tak ostřejším pohledem zkoumat PR (pull request) někoho jiného.
Kritický rozdíl je tento: AI zrychluje a zlepšuje kontrolu, ale nemůže převzít odpovědnost za schválení. Věta „AI vypadala, je čistá“ není potvrzením. Konečné rozhodnutí o „sloučení“ je na inženýrovi, který zná kód a kontext.
Co je AI dobrá a špatná v přehledu
Dobré pro: Chyby při nulové kontrole, úniky zdrojů (soubor/odkaz zůstává otevřený), nezachycené výjimky, zjevně špatné podmínky (>= místo >), návrhy na přejmenování, čitelnost, chybějící okrajová velikost, jednoduché zápachy zabezpečení (jako zřetězení řetězců SQL), detekce duplicitního kódu.
Slabé stránky: Hluboké chyby, které porušují vaše obchodní pravidla, ale vyžadují kontext a načasování, jako je syntakticky správná logika, architektonická shoda, úzká místa skutečného výkonu, chyby souběžnosti. Umělá inteligence také produkuje falešné pozitivy (záměna něčeho, co ve skutečnosti není problém, za problém) a falešné negativy (chybějící skutečná chyba). Proto je jeho výstupem „seznam upozornění“, nikoli definitivní verdikt.
Upozornění: To, že AI říká „žádný problém“, nedokazuje, že kód je správný. Falešné negativy mlčí; Nejnebezpečnější chyby jsou ty, které nejsou nikdy zmíněny v recenzi.
Kroky systematické kontroly
- Uveďte kontext. Do výzvy přidejte účel změny, relevantní problém a kritéria přijetí, pokud existují. Bezúčelná recenze produkuje bezúčelnou interpretaci.
- Rozdělte to do kategorií. Požádejte model, aby klasifikoval zjištění jako „chyba/zabezpečení/výkon/čitelnost/styl“; takže oddělíte kritické od hluku.
- Vyžádejte si štítek závažnosti. Každému nálezu dejte hodnocení „vysoké/střední/nízké“ a uveďte „příčinu“ a „doporučenou nápravu“.
- Přefiltrujte si to na vlastní oči. Vyhodnoťte každý nález: je skutečný (ověřte), je falešně pozitivní (napište zdůvodnění), chybí něco (doplňte vlastní poznatky).
- Ověřte kritické cesty ručně. Čtěte a spouštějte cesty zahrnující peníze, identitu, autorizaci a mazání dat sami, aniž byste se spoléhali na AI.
Tři mini pouzdra
Případ 1 – Zachycena tichá nulová chyba. Jeden tým měl předběžnou kontrolu AI 380řádkového PR. Model označil způsob, jakým by odpověď externí služby mohla být nulová, ale v kódu nebyly provedeny žádné kontroly. Lidský recenzent tuto cestu ověřil a přidal kontrolu nuly; Podobná chyba způsobila 2hodinové přerušení výroby v předchozím čtvrtletí.
Případ 2 – Falešná pozitivní eliminace. AI ve smyčce označila „možný problém s výkonem“. Recenzent to uzavřel jako falešně pozitivní, protože věděl, že smyčka funguje pouze s maximálně 5 prvky (cykluje se přes enum). Modelka, která neznala souvislosti, varovala; Člověk, který znal kontext, se rozhodl správně.
Případ 3 – Chyba obchodního pravidla AI. Zatímco slevový účet by měl být podle pravidla kampaně maximálně 30 %, kód umožňoval 50 %. AI si nikdy nevšimla této syntakticky dokonalé logické chyby; protože neznal pravidlo. Chyba byla zachycena v recenzi vlastníkem produktu, který znal kritéria přijetí. Poučení: Ověřování obchodních pravidel je lidská práce.
Čtyři kopírovatelné šablony
Účelově orientovaná, kategorizovaná recenze:
Role: Pečlivý kontrolor kódu. Účel změny: {{purpose / issue}}Zkontrolujte tento rozdíl. Uveďte zjištění v těchto kategoriích: [Chyba] [Zabezpečení][Výkon] [Čitelnost] [Styl]. Pro každý nález: soubor:řádek, závažnost (vysoká/střední/nízká), příčina, doporučená oprava. Pokud si nejste jisti, označte „možné“. Neznáte pravidla podnikání; Zeptejte se mě na místa, která vyžadují pravidla.{{diff}}
Chcete-li se připravit na kontrolu vlastního kódu:
Před otevřením PR zkontrolujte tuto změnu. Hledejte: chybějící null/bugcheck, únik zdrojů, okrajový případ, tajný, netestovaná větev. Uveďte nálezy v pořadí podle priority; navrhněte opravu 1 řádek pro každou z nich.{{code}}
Hledání okrajových případů:
Uveďte vstupy a situace, ve kterých může tato funkce přestat fungovat: prázdný, null, příliš velký, záporný, souběžné volání, chyba sítě, částečná data. Pro každý případ napište očekávané chování a co aktuální kód udělá.{{funkce}}
Bezpečnostní skenování pachů (předběžná kontrola):
Hledejte v tomto kódu běžné pachy zabezpečení: zřetězení SQL/příkazů, neověřený vstup, neměnné vložené tajemství, nezabezpečená deserializace, nedostatek kontroly oprávnění. Oddělte zjištění na "určité / pravděpodobné / znalosti". Toto je předběžný screening; Není to definitivní rozhodnutí.{{code}}
Slabá výzva / Silná výzva
Slabý: "Je v tomto PR chyba?"
Strong: "Účel: přidejte slevu na kupónu k celkové hodnotě košíku (sleva nesmí být vyšší než 30 % — toto pravidlo nemůžete ověřit sami, řekněte mi, zda kód ukládá horní limit). Prozkoumejte rozdíl; uveďte zjištění podle kategorie + závažnosti + navrhovaná oprava, pokud si nejste jisti, označte 'možné'. [rozdíl]"
Silná verze jasně uvádí záměr, obchodní pravidlo a hranice AI; Přicházejí tedy užitečné poznatky a modelem neznámá oblast zůstává jasná.
Typ nálezu
Spolehlivost AI
mužská role
Chybí kontrola nuly/chyby
vysoká
Ověřte a požádejte
Čitelnost/styl
vysoká
Vyberte si podle preferencí
Jednoduchá bezpečnostní vůně
střední
Dokončit, skenovat s vozidlem
Dodržování obchodních pravidel
nízká
Je to úplně lidské.
Souběh/architektura
nízká
Je vyžadován odborný posudek
AI Review není náhradou za kontrolu člověkem
Umístěte recenzi AI jako „první filtr“: levný, rychlý a neúnavný předběžný průchod. Tento filtr osvobozuje pozornost lidského recenzenta od nedůležitých detailů (prostor, jméno) a nasměruje ji na místa, která skutečně vyžadují zamyšlení – obchodní pravidlo, architektura, výsledek zabezpečení. Schválení sloučení je však podpisem odpovědné osoby v týmu. U změn kritických z hlediska bezpečnosti je povinné nezávislé přezkoumání alespoň jedním kompetentním inženýrem.
Tip: Přečtěte si seznam zjištění, která AI produkuje jako „věci ke kontrole“ spíše než „co dělat“. Buď ověřte a použijte každou položku, nebo zapište jednou větou, proč jste ji prošli; tato stopa umožňuje auditovat recenzi.
Časté chyby
- Znamená to „AI vypadala, je čistá“. To je falešný pocit důvěry kvůli falešným negativům.
- Nedávat kontext. Bez účelu a kritérií přijatelnosti model vytváří pouze povrchní interpretace stylu.
- Slepé použití falešných poplachů. Oprava každého varování modelu by mohla narušit běžící kód.
- Zeptejte se modelu na obchodní pravidlo. Model nezná pravidlo; Je na člověku, aby si to ověřil.
- Nediskriminujte násilí. Vložení kritického bezpečnostního nálezu a návrhu názvu do jednoho pytle zastíní to, co je důležité.
V souhrnu
Umělá inteligence je neúnavný první filtr v kontrole kódu: zachytí nulové/chybové chyby, okrajové případy a jednoduché zabezpečení dobře voní; ale je slabá na nedostatky vyžadující kontext, jako jsou obchodní pravidla, architektura a souběžnost, a produkuje falešně pozitivní i falešně negativní výsledky. Vyžádejte si zjištění podle kategorie a závažnosti, filtrujte každý pomocí lidské inteligence, ručně ověřte kritické cesty. Schválení je vždy podpisem odpovědného inženýra.
Aplikační úkol
Vyberte skutečné nebo nedávné PR/rozdíl. Nejprve nechte AI zkontrolovat pomocí šablony „objektivně orientovaná, kategorie recenze“. Udělejte zjištění do tabulky a pro každý z nich rozhodněte: pravdivé (ověřil jsem), falešně pozitivní (zde je moje zdůvodnění) nebo k realizaci. Pak se sami udělejte na prohlídku a pokuste se najít alespoň jednu věc (zejména obchodní pravidlo nebo okrajový případ), která AI chybí, a zapište si ji.
kontrolní seznam
- [ ] Používám recenzi AI jako první filtr, ne jako podporu.
- [ ] Do výzvy ke kontrole přidávám účel a kritéria přijetí.
- [ ] Odděluji zjištění od hluku podle kategorií a silně je chci.
- [ ] Každý nález vědomě filtruji, abych potvrdil/falešně pozitivní/použil.
- [ ] Jako člověk kontroluji obchodní pravidla a shodu s architekturou.
- [ ] Požaduji schválení od kvalifikovaného inženýra pro změny kritické z hlediska bezpečnosti.