Lärstig 02Lektion 4 / 6

Granska AI-genererad kod

Granska den faktiska ändringen, dess tillitsgränser och underlag innan du accepterar den.

Praktisk nivå12 minGranskad

Publicerad av Så skriver vi

Det här lär du dig

  • Granska beteende och befogenheter före stil.
  • Identifiera en saknad auktoriseringskontroll i ett litet exempel.
  • Skilj en genererad sammanfattning från verifierat underlag.

Läs kravet före sammanfattningen

Börja med begärt beteende och acceptanskriterier. Granska sedan den faktiska diffen. Agentens sammanfattning kan hjälpa dig att hitta, men kan utelämna ändringar eller beskriva kontroller felaktigt.

Bekräfta branch och commit som granskas. Kontrollera ändringar i konfiguration, beroenden, infrastruktur och tester utöver applikationskoden. En liten synlig funktion kan omfatta en stor ändring av behörigheter eller driftsättningsbeteende.

Granska beteendet med störst konsekvenser först. Formatering och namngivning spelar roll, men får inte avleda från en saknad datagräns.

Spåra identiteten till resursen

Titta på denna ofullständiga, fiktiva endpoint. Exemplet illustrerar ett granskningsproblem; det är inte produktionskod.

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

Funktionen hämtar en autentiserad användare. Den visar inget auktoriseringsbeslut för fakturan. En granskare måste undersöka om ett annat lager upprätthåller beslutet. Det oanvända användarvärdet är skäl att undersöka, men bevisar inte i sig ett exploaterbart fel.

Spåra förfrågan genom det faktiska systemet. Identifiera betrodd användare och organisation. Kontrollera hur frågan begränsar åtkomst till den begärda posten. Granska felbeteende och tester för förbjudna förfrågningar.

Anta inte att en dold knapp skyddar API:t. En anropare kan skicka en förfrågan utan gränssnittet. Anta inte att ett giltigt post-ID ger åtkomst.

Fråga vilket underlag som kan underkänna ändringen

Ett godkänt test kan använda administratörsdata eller mockad auktorisering. Kontrollera om det prövar den viktiga gränsen. Lägg till ett fall med en annan organisation och verklig auktoriseringsväg där det är lämpligt.

Granska det renderade resultatet vid en gränssnittsändring. Kontrollera tangentbordsanvändning, tomma lägen, laddning och fel. En typkontroll visar inte att en dialog går att använda med tangentbord.

Verifiera varför en beroendeändring behövs. Granska version, licens och säkerhetsfynd. Acceptera inte en orelaterad uppgradering bara för att agenten genererade den under uppgiften.

Håll granskningen oberoende

En andra modell kan hitta användbara problem. Den kan också upprepa implementationens antaganden. Ge granskaren kravet och diffen. Undvik att säga att ändringen redan är korrekt.

Kräv att fynd anger en konkret felväg och relevant kod. Behandla obestyrkta varningar som frågor att undersöka. Behandla ett självsäkert godkännande som ytterligare en åsikt tills viktiga påståenden har underlag.

Mänsklig granskning är fortfarande ett beslut om ansvar. Granskaren bör förstå tillräckligt av ändringen för att förklara beteende, risker och verifiering. Om diffen är för stor ska du minska omfånget eller dela upp den i granskningsbara ändringar.

Avsluta granskningen på den slutliga revisionen

Kör berörda kontroller igen efter en rättning. Undersök om rättningen skapar ett nytt problem. Säkerställ att nödvändig granskning gäller den slutliga revisionen enligt repositoryts policy.

Skriv acceptansbeslutet utifrån beteende och underlag. Dokumentera kvarvarande begränsningar med ansvarig och nästa åtgärd. Förvandla inte ett olöst problem till ett påstående om att alla kontroller godkändes.

Använd kodgranskningsövningen för att öva på att identifiera det saknade beslutet före en verklig ändring.

Gör övningen

Öppna kodgranskningsövningen. Identifiera aktören, den begärda resursen och den betrodda organisationsgränsen. Granska sedan en verklig liten PR med samma metod. Använd bara kod som du har rätt att granska.

Ladda ned övningsblad (Markdown)

Kontrollera din förståelse

En endpoint kontrollerar att användaren är inloggad och laddar sedan en post med ett ID från förfrågan. Vad måste du verifiera?

Källor och vidare läsning

Relaterad läsning från Taiga