Læringsløp 02Leksjon 4 / 6

Gjennomgå AI-generert kode

Undersøk den faktiske endringen, tillitsgrensene og dokumentasjonen før du aksepterer den.

Praktisk12 minGjennomgått

Publisert av Slik skriver vi

Dette lærer du

  • Gjennomgå atferd og fullmakter før stil.
  • Identifiser en manglende autorisasjonskontroll i et lite eksempel.
  • Skill et generert sammendrag fra verifisert dokumentasjon.

Les kravet før sammendraget

Start med ønsket atferd og akseptkriterier. Undersøk deretter den faktiske diffen. Agentens sammendrag kan hjelpe deg med å navigere, men det kan utelate endringer eller beskrive kontroller feil.

Bekreft branchen og committet som gjennomgås. Kontroller endringer i konfigurasjon, avhengigheter, infrastruktur og tester så vel som applikasjonskode. En liten synlig funksjon kan inkludere en stor endring i tillatelser eller utrullingsatferd.

Gjennomgå atferden med størst konsekvenser først. Formatering og navngivning betyr noe, men bør ikke ta oppmerksomheten fra en manglende datagrense.

Spor identiteten til ressursen

Se på dette ufullstendige, fiktive endpointet. Eksemplet illustrerer et reviewproblem; det er ikke produksjonskode.

async function getInvoice(request) {
  const user = await requireSignedInUser(request);
  return database.invoice.findById(request.params.id);
}

Funksjonen henter en autentisert bruker. Den viser ingen autorisasjonsbeslutning for fakturaen. En reviewer må undersøke om et annet lag håndhever beslutningen. Den ubrukte brukerverdien er grunn til å undersøke, ikke alene bevis på en utnyttbar feil.

Spor forespørselen gjennom det faktiske systemet. Identifiser den betrodde brukeren og organisasjonen. Kontroller hvordan spørringen begrenser tilgang til den forespurte posten. Undersøk feilatferd og tester for forbudte forespørsler.

Ikke anta at en skjult knapp beskytter API-et. En klient kan sende en forespørsel uten å bruke grensesnittet. Ikke anta at en gyldig post-ID gir tilgang.

Spør hvilken dokumentasjon som kan avvise endringen

En bestått test kan bruke en administrator som testbruker eller mocke autorisasjonen. Kontroller om den tester grensen som betyr noe. Legg til et tilfelle med en annen organisasjon og en reell autorisasjonsvei der det passer.

Undersøk det rendrerte resultatet ved en endring i brukergrensesnittet. Kontroller tastaturbetjening, tomme tilstander, innlasting og feil. En typesjekk kan ikke dokumentere at en dialog kan brukes med tastatur.

Verifiser hvorfor en avhengighetsendring er nødvendig. Gjennomgå versjon, lisens og sikkerhetsfunn. Ikke aksepter en uvedkommende oppgradering bare fordi agenten genererte den under oppgaven.

Hold gjennomgangen uavhengig

En annen modell kan finne nyttige problemer. Den kan også gjenta antakelser fra implementeringen. Gi revieweren kravet og diffen. Unngå å fortelle den at endringen allerede er riktig.

Krev at funn identifiserer et konkret feilforløp og relevant kode. Behandle advarsler uten grunnlag som spørsmål som skal undersøkes. Behandle selvsikker godkjenning som enda en vurdering til de viktige påstandene har dokumentasjon.

Menneskelig review er fortsatt en beslutning om ansvar. En reviewer bør forstå nok av endringen til å forklare atferd, risiko og verifisering. Hvis diffen er for stor, reduser omfanget eller del den i endringer som kan gjennomgås.

Avslutt gjennomgangen på den endelige revisjonen

Kjør berørte kontroller igjen etter en rettelse. Undersøk om rettelsen skaper et nytt problem. Sørg for at påkrevd review gjelder den endelige revisjonen under repositoryets policy.

Skriv akseptbeslutningen ut fra atferd og dokumentasjon. Registrer gjenværende begrensninger med en ansvarlig og neste handling. Ikke gjør et uløst problem om til en påstand om at alle kontroller besto.

Bruk kodereviewøvelsen til å øve på å identifisere den manglende beslutningen før du undersøker en reell endring.

Gjør øvelsen

Åpne kodereviewøvelsen i øvingslaben. Identifiser aktør, forespurt ressurs og betrodd organisasjonsgrense. Undersøk deretter en reell liten PR med samme metode. Bruk bare kode du har tillatelse til å gjennomgå.

Last ned arbeidsark (Markdown)

Kontroller forståelsen din

Et endpoint kontrollerer at brukeren er innlogget, og laster deretter en post med en ID fra forespørselen. Hva må du verifisere?

Kilder og videre lesning

Relatert lesning fra Taiga