Gevinster:
- Mulighed for at bruge AI som et indledende gennemgangsfilter med kategorier og sværhedsgrader
- Evne til at filtrere fund med det menneskelige sind for at verificere/falske positive/anvende
- Evne til at håndhæve menneskelige godkendelseskrav til forretningsregler, arkitektur og sikkerhedskritiske beslutninger
Kodegennemgang er, når en ændring skrevet af en udvikler bliver gennemgået af en anden, før den flettes. God anmeldelse; Det fanger fejl tidligt, deler information og holder kodebasen konsistent. Men anmeldelser er trættende, tilbøjelige til at blive distrakterede og bliver overfladiske under tidspres. Kunstig intelligens er en todelt assistent her: den giver dig mulighed for både at forhåndsrense din egen kode, som du sender til gennemgang, og at undersøge en andens PR (pull request) med et skarpere øje.
Den kritiske skelnen er denne: AI fremskynder og forbedrer gennemgangen, men den kan ikke overtage ansvaret for godkendelse. Sætningen "AI kiggede, det er rent" er ikke en godkendelse. Den endelige "fusions"-beslutning er op til en ingeniør, der kender koden og konteksten.
Hvad AI er godt og dårligt om i anmeldelse
God til: Nullcheck-misser, ressourcelækager (fil/link forbliver åben), ufangede undtagelser, åbenlyst forkerte betingelser (>= i stedet for >), omdøbningsforslag, læsbarhed, manglende kant-case, simple sikkerhedslugte (som SQL-strengsammenkædning), registrering af duplikatkode.
Svagheder: Dybe fejl, der overtræder din forretningsregel, men kræver kontekst og timing, såsom syntaktisk korrekt logik, arkitektonisk overholdelse, reelle flaskehalse i ydeevnen, samtidighedsfejl. AI producerer også falske positiver (forveksler noget, der faktisk ikke er et problem, med et problem) og falske negativer (mangler den rigtige fejl). Derfor er dens output en "forsigtighedsliste", ikke en endelig dom.
Forsigtig: Bare fordi AI'en siger "intet problem", beviser det ikke, at koden er korrekt. Falske negativer er tavse; De farligste fejl er dem, der aldrig er nævnt i anmeldelsen.
Systematiske gennemgangstrin
- Giv konteksten. Tilføj formålet med ændringen, det relevante problem og acceptkriterierne, hvis nogen, til prompten. Formålsløs gennemgang producerer formålsløs fortolkning.
- Opdel det i kategorier. Bed modellen om at klassificere resultaterne som "fejl/sikkerhed/ydeevne/læsbarhed/stil"; så du adskiller det kritiske fra støjen.
- Anmod om et alvorlighedsmærke. Giv hvert fund en "høj/middel/lav" vurdering og inkluder "årsag" og "anbefalet rettelse".
- Filtrer det med dine egne øjne. Evaluer hvert fund: er det ægte (bekræft), er det en falsk positiv (skriv begrundelse), mangler der noget (tilføj din egen viden).
- Bekræft kritiske stier manuelt. Læs og eksekver selv ruter, der involverer penge, identitet, autorisation og datasletning uden at stole på AI.
Tre mini etuier
Tilfælde 1 — Tavs nul-fejl fanget. Et hold havde AI pre-review en 380-linjers PR. Modellen markerede en måde, hvorpå et eksternt servicesvar kunne være nul, men der blev ikke foretaget kontrol for dette i koden. Den menneskelige anmelder bekræftede denne sti og tilføjede et nul-tjek; En lignende fejl forårsagede en 2-timers afbrydelse i produktionen i det foregående kvartal.
Tilfælde 2 — Falsk positiv eliminering. AI'en markerede et "muligt præstationsproblem" i en løkke. Anmelderen lukkede dette som en falsk positiv, velvidende at løkken kun fungerer med maksimalt 5 elementer (den går over en enum). Modellen, der ikke kendte sammenhængen, advarede; Den person, der kendte sammenhængen, tog den rigtige beslutning.
Case 3 — AI missed business rule error. Mens en rabatkonto maksimalt bør være 30 % ifølge kampagnereglen, tillod koden 50 %. AI har aldrig bemærket denne syntaktisk perfekte logiske fejl; fordi han ikke kendte reglen. Fejlen blev fanget i anmeldelsen af produktejeren, som kendte acceptkriterierne. Lektion: validering af forretningsregler er et menneskeligt arbejde.
Fire kopierbare skabeloner
Formålsorienteret, kategoriseret anmeldelse:
Rolle: Omhyggelig kodeanmelder. Formålet med ændringen: {{purpose / issue}}Gennemgå denne forskel. Angiv resultater i disse kategorier: [Bug] [Sikkerhed][Ydeevne] [Læsbarhed] [Stil]. For hvert fund: fil:række, sværhedsgrad (høj/middel/lav), årsag, anbefalet rettelse. Marker "mulig", hvis du ikke er sikker. Du kender ikke forretningsreglerne; Spørg mig om steder, der kræver regler.{{diff}}
Sådan forbereder du dig på at gennemgå din egen kode:
Gennemgå denne ændring, før du åbner en PR. Se efter: manglende null/fejltjek, ressourcelækage, edge case, hemmelig, utestet gren. Angiv resultaterne i prioriteret rækkefølge; foreslå rettelse 1 linje for hver.{{code}}
Kantsagsjagt:
Liste over input og situationer, hvor denne funktion kan gå i stykker: tom, null, for stor, negativ, samtidig opkald, netværksfejl, delvise data. For hvert tilfælde skal du skrive den forventede adfærd, og hvad den aktuelle kode vil gøre.{{function}}
Sikkerhedsduftscanning (forhåndsscreening):
Se efter almindelige sikkerhedslugte i denne kode: SQL/kommando-sammenkædning, uvalideret input, uforanderlig indlejret hemmelighed, usikker deserialisering, manglende kontrol af rettigheder. Opdel resultaterne i "sikker / sandsynlig / viden". Dette er en foreløbig screening; Det er ikke en endelig afgørelse.{{code}}
Svag prompt / Stærk prompt
Svag: "Er der en fejl i denne PR?"
Stærk: "Formål: tilføj kuponrabat til indkøbskurvens samlede antal (rabatten må ikke være mere end 30 % - du kan ikke selv verificere denne regel, fortæl mig bare, om koden pålægger en øvre grænse). Undersøg diff; giv resultater efter kategori + sværhedsgrad + foreslået rettelse, marker 'mulig', hvis du er usikker. [diff]"
Den stærke version angiver klart hensigten, forretningsreglen og grænsen for AI; Der kommer således nyttige fund, og det område, som er ukendt for modellen, forbliver klart.
Finde type
AI pålidelighed
mands rolle
Null/fejlkontrol mangler
høj
Bekræft og anvend
Læsbarhed/stil
høj
Vælg efter præference
Simpel sikkerhedslugt
medium
Afslut, scan med køretøj
Overholdelse af forretningsregler
lav
Det er helt menneskeligt.
Samtidighed/arkitektur
lav
Ekspertgennemgang er påkrævet
AI Review er ikke en erstatning for Human Review
Placer AI-gennemgang som et "første filter": et billigt, hurtigt, utrætteligt foreløbigt pas. Dette filter frigør den menneskelige anmelders opmærksomhed fra uvæsentlige detaljer (et rum, et navn) og dirigerer det til steder, der virkelig kræver omtanke - forretningsreglen, arkitekturen, sikkerhedsresultatet. Men fusionsgodkendelse er underskriften af en ansvarlig person i teamet. Uafhængig gennemgang af mindst én kompetent ingeniør er obligatorisk for sikkerhedskritiske ændringer.
Tip: Læs listen over resultater, som AI producerer som en "ting at tjekke" snarere end en "to do". Enten verificere og anvende hvert punkt eller skrive ned i én sætning, hvorfor du bestod det; dette spor gør gennemgangen reviderbar.
Almindelige fejl
- Det betyder "AI kiggede, det er rent". Dette er en falsk følelse af selvtillid på grund af falske negativer.
- Giver ikke sammenhæng. Uden formål og acceptkriterier producerer modellen kun overfladiske stilfortolkninger.
- Blindt at anvende falske positiver. At rette hver advarsel fra modellen kan bryde kørende kode.
- Spørger modellen om forretningsreglen. Modellen kender ikke reglen; Det er op til mennesket at verificere det.
- Forskel ikke vold. At lægge et kritisk sikkerhedsfund og et navneforslag i samme pose overskygger det, der er vigtigt.
Sammenfattende
AI er et utrætteligt første filter i kodegennemgang: det fanger null/error misses, edge cases, og simpel sikkerhed lugter godt; men det er svagt med hensyn til kontekstkrævende fejl såsom forretningsregler, arkitektur og samtidighed og producerer både falske positive og falske negative. Anmod om resultater efter kategori og sværhedsgrad, filtrer hver med menneskelig intelligens, kontroller manuelt kritiske stier. Godkendelse er altid underskrift af en ansvarlig ingeniør.
Ansøgningsopgave
Vælg en ægte eller nylig PR/diff. Først skal du få AI til at gennemgå det med skabelonen "objektiv, kategorigennemgang". Læg resultaterne i en tabel, og afgør for hver enkelt: sand (jeg bekræftede), falsk positiv (her er min begrundelse) eller skal implementeres. Så tag selv en rundtur og prøv at finde mindst én ting (især en forretningsregel eller kantsag), som AI mangler, og skriv det ned.
tjekliste
- [ ] Jeg bruger AI-gennemgang som et første filter, ikke en godkendelse.
- [ ] Jeg tilføjer formålet og acceptkriterierne til anmeldelsesprompten.
- [ ] Jeg adskiller resultaterne fra støjen efter kategori og ønsker dem stærkt.
- [ ] Jeg filtrerer bevidst hvert fund for at bekræfte/falsk positivt/anvende.
- [ ] Som menneske kontrollerer jeg forretningsregler og arkitektonisk overholdelse.
- [ ] Jeg kræver godkendelse fra en kvalificeret ingeniør for sikkerhedskritiske ændringer.