Læringssti 02Lektion 4 / 6

Gennemgå AI-genereret kode

Undersøg den faktiske ændring, dens tillidsgrænser og dokumentationen, før du accepterer den.

Praktisk12 minReviewet

Udgivet af Sådan skriver vi

Det lærer du

  • Gennemgå adfærd og bemyndigelse før stil.
  • Find en manglende rettighedskontrol i et lille eksempel.
  • Skeln mellem en genereret opsummering og verificeret dokumentation.

Læs kravet før opsummeringen

Start med den ønskede adfærd og acceptkriterierne. Undersøg derefter den faktiske diff. Agentens opsummering kan hjælpe dig med at finde rundt, men den kan udelade ændringer eller beskrive kontroller forkert.

Bekræft den branch og det commit, der er til review. Kontrollér ændringer i konfiguration, afhængigheder, infrastruktur og tests samt applikationskoden. En lille synlig funktion kan omfatte en stor ændring i rettigheder eller udrulningsadfærd.

Gennemgå først den adfærd, der har de største konsekvenser. Formatering og navngivning betyder noget, men må ikke aflede opmærksomheden fra en manglende datagrænse.

Spor identiteten frem til ressourcen

Se på dette ufuldstændige, fiktive endpoint. Eksemplet illustrerer et reviewproblem; det er ikke produktionskode.

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

Funktionen henter en autentificeret bruger. Den viser ikke en beslutning om brugerens adgang til fakturaen. En reviewer skal undersøge, om et andet lag håndhæver den beslutning. Den ubrugte brugerværdi er en grund til at undersøge videre, ikke i sig selv bevis for en fejl, der kan udnyttes.

Spor forespørgslen gennem det faktiske system. Find den betroede bruger og organisation. Kontrollér, hvordan forespørgslen begrænser adgang til den ønskede post. Undersøg fejladfærd og tests for forbudte forespørgsler.

Antag ikke, at en skjult knap beskytter API’et. En klient kan sende en forespørgsel uden at bruge brugergrænsefladen. Antag ikke, at et gyldigt post-ID giver adgang.

Spørg, hvilken dokumentation der kunne afvise ændringen

En bestået test kan bruge en administrator som testbruger eller en mock af rettighedskontrollen. Undersøg, om testen afprøver den vigtige grænse. Tilføj et tilfælde med en anden organisation og en virkelig rettighedskontrol, hvor det er relevant.

Ved ændringer i brugergrænsefladen skal du undersøge det renderede resultat. Kontrollér tastaturbetjening, tomme tilstande, indlæsning og fejl. En typekontrol kan ikke dokumentere, at en dialog kan bruges med tastatur.

Ved ændringer i afhængigheder skal du kontrollere begrundelsen. Gennemgå version, licens og sikkerhedsfund. Acceptér ikke en uvedkommende opgradering, blot fordi agenten genererede den under opgaven.

Hold review uafhængigt

En anden model kan finde nyttige problemer. Den kan også gentage antagelser fra implementeringen. Giv revieweren kravet og diffen. Undgå at fortælle den, at ændringen allerede er korrekt.

Kræv, at fund beskriver et konkret fejlforløb og den relevante kode. Behandl udokumenterede advarsler som spørgsmål, der skal undersøges. Betragt en sikker godkendelse som endnu en vurdering, indtil de vigtige påstande har dokumentation.

Menneskeligt review er fortsat en beslutning om ansvar. En reviewer skal forstå nok af ændringen til at kunne forklare dens adfærd, risici og kontrol. Hvis diffen er for stor, skal du reducere omfanget eller dele den i ændringer, der kan gennemgås.

Afslut review på den endelige revision

Kør de berørte kontroller igen efter en rettelse. Undersøg, om rettelsen skaber et nyt problem. Sørg for, at det krævede review gælder den endelige revision efter repositoryets politik.

Beskriv acceptbeslutningen ud fra adfærd og dokumentation. Registrér hver resterende begrænsning med en ansvarlig og næste handling. Omsæt ikke et uløst problem til en påstand om, at alle kontroller bestod.

Brug øvelsen i kodereview til at øve dig i at finde den manglende beslutning, før du undersøger en rigtig ændring.

Lav øvelsen

Åbn øvelsen i kodereview i øvelseslaboratoriet. Find aktøren, den ønskede ressource og den betroede organisationsgrænse. Undersøg derefter en rigtig, lille PR med samme metode. Brug kun kode, du har tilladelse til at gennemgå.

Download arbejdsark (Markdown)

Kontrollér din forståelse

Et endpoint kontrollerer, at en bruger er logget ind, og henter derefter en post ud fra et ID i forespørgslen. Hvad skal du verificere?

Kilder og videre læsning

Relateret læsning fra Taiga