Eenheid 3 / 12

Codelezing, uitleg en compatibiliteit met de nieuwe codebasis

Winst:

  • Mogelijkheid om een basiscode van vreemde code laag voor laag in kaart te brengen met AI en een feature end-to-end te volgen
  • Mogelijkheid om complexe functies stap voor stap uit te leggen en de gegevensstroom te bewaken
  • Mogelijkheid om de AI-beschrijving als een hypothese te bekijken en kritische claims in code te verifiëren

Ontwikkelaars lezen code in plaats van code te schrijven. Wanneer u met een nieuwe baan begint, een dienst van iemand anders overneemt of bijdraagt ​​aan een open source-bibliotheek, is uw eerste taak: "Wat is hier aan de hand?" is om een ​​antwoord op de vraag te vinden. AI kan deze ontdekkingstaak terugbrengen tot uren in plaats van weken – maar alleen als het wordt gebruikt met de juiste vragen en een verificatiereflex.

In deze unit leren we AI te gebruiken als een ‘codegids’: een buitenlandse codebasis in kaart brengen, een complexe functie in gewone taal vertalen, een gegevensstroom volgen en uitzoeken hoe we een bibliotheek kunnen gebruiken. De gouden regel hier is dat de verklaring van AI een hypothese is; je verifieert het met de code zelf.

Waarom is codeannotatie krachtig maar riskant?

Een LLM is erg goed in het lezen van een stukje code en het vertalen ervan in menselijke taal, zoals "deze functie vernieuwt het sessietoken van een gebruiker"; omdat het patronen heeft geleerd uit miljoenen vergelijkbare voorbeelden. Dit bespaart enorm veel tijd, vooral bij lange en geneste functies.

Dit is het risico: het model vertelt soms wat de code lijkt te doen, niet wat deze feitelijk doet. Als de naam van de variabele isAdmin is, maar de logica daarin is omgekeerd, kan het model naar de naam kijken en de verkeerde samenvatting eruit halen. Daarom moet u, voordat u de verklaring tot basis voor uw kritische beslissingen maakt, het vermeende gedrag op de relevante regels visueel controleren. De beschrijving brengt u naar de juiste plaats; De code heeft het laatste woord.

Let op: reken de samenvatting van AI "deze code doet X" niet alleen als bewijsmateriaal bij een beslissing over veiligheid of geldstroom. De samenvatting is een kaart die laat zien waar je moet zoeken; De bevestiging geef je in de code.

Stappen voor het in kaart brengen van een buitenlandse codebasis

  1. Begin op het hoogste niveau. Maak uzelf eerst vertrouwd met de mapstructuur en toegangspunten (hoofdmap, starten van applicatie, thuisrouter). Vraag de AI "wat zijn de lagen van de applicatie op basis van deze directorystructuur?" vragen.
  2. Volg een functie van begin tot eind. "Welke bestanden worden geactiveerd en in welke volgorde wanneer de gebruiker inlogt?" – het bekijken van een enkele stroom is leerzamer dan het lezen van de hele architectuur.
  3. Termen lokaliseren. Vraag AI naar projectspecifieke concepten ("tenant", "ledger", "job runner") en vind hun equivalenten in de code.
  4. Je hebt de complexe functie vereenvoudigd. Laat een lange functie stap voor stap uitleggen en markeer die stappen vervolgens in de code.
  5. Verifiëren. Breng een kleine verandering aan en voer tests uit om uw begrip te testen; De test vertelt u meteen of uw begrip verkeerd is.

Drie mini-hoesjes

Geval 1 — De geërfde dienst werd teruggebracht van 2 dagen naar 3 uur. Een ontwikkelaar nam een ​​betalingsafstemmingsdienst met 4.000 regels over van een vertrekkende collega. AI modules laten samenvatten en een betalingsstroom end-to-end volgen; Hij heeft persoonlijk twee kritieke functies in de code geverifieerd. De ontdekking, die bij klassiek ‘blind lezen’ naar schatting twee dagen in beslag zou nemen, werd met de geverifieerde AI-methode in ongeveer drie uur voltooid.

Geval 2 – Misleidende naamval. Eén functie heette validateAndSave, maar in de AI-samenvatting stond "eerst valideren, dan opslaan". Toen de ontwikkelaar in de code ging, zag hij dat het opslaan vóór de verificatie was gebeurd, en dat de verificatie alleen naar het logbestand schreef. Dit was de werkelijke oorzaak van een bugticket in productie. Als er geen validatie in de code zat, zou de valse samenvatting de fout verbergen.

Geval 3 — Het leren van nieuwe bibliotheken is versneld. Het team ging een berichtenwachtrijbibliotheek integreren waarmee ze niet vertrouwd waren. Ik vroeg AI: "hoe kan ik een consument in deze bibliotheek instellen, hoe kan ik het opnieuw proberen in geval van een fout?" Ze vroegen en lieten een monster maken; Vervolgens vergeleken ze het voorbeeld met het officiële document en repareerden ze een verschil (oude versie-API). Leertijd gehalveerd.

Vier kopieerbare sjablonen

Codebase-toewijzing:

Hieronder vindt u de directory-/bestandslijst van een project. 1) Extraheer de lagen van de applicatie (invoer, bedrijfslogica, gegevenstoegang, enz.). 2) Geef een overzicht van de mogelijke bestandsreis van een "{{example property}}"-verzoek. 3) Markeer gebieden waarvan u niet zeker bent als "moeten worden geverifieerd". {{directory_lijst}}

Functiebeschrijving (stap voor stap):

Verdeel deze functie in rijgroepen en leg in gewoon Turks uit wat elke groep doet. Tot slot: vermeld input, output, bijwerkingen (database/bestand/netwerk) en mogelijke randgevallen. Verzamel het gedrag waar u niet zeker van bent onder een AFZONDERLIJKE kop 'moet worden geverifieerd'.{{function}}

Gegevensstroom volgen:

Waar komt de waarde "{{variable/data}}" vandaan, welke transformaties ondergaat deze, waar wordt deze geschreven? Maak een stroomketen met behulp van de functienamen in de code. Gerelateerde code: {{code_segments}}

Leren hoe u de bibliotheek kunt gebruiken:

Ik wil {{purpose}} maken met {{library}}. Geef een minimaal, werkend voorbeeld. Zorg ervoor dat elke functie die je gebruikt ook daadwerkelijk tot deze bibliotheek behoort; Als u het niet zeker weet, vink dan "verifiëren vanuit officiële documentatie" aan. Versie: {{versie}}.

Zwakke prompt/sterke prompt

Zwak: "Leg deze code uit." (Wat vraag je je af? Op welk niveau? Wat ga je doen?)
Strong: "Ik neem deze functie over en ik zal de retry-logica daarin veranderen. Leg de functie stap voor stap uit, zeker bij een fout, geef duidelijk aan hoe vaak en met welke tussenpozen je het opnieuw probeert; markeer de onderdelen waar je niet zeker van bent als 'moet geverifieerd worden'. [code]"

De sterke versie geeft je intentie weer (ik verander de logica voor opnieuw proberen) en focus; zodat de uitleg geen algemene samenvatting is, maar een nuttige leidraad.

Zoektocht

AI doet het goed

Zorg ervoor dat u dit verifieert

Algemene architectuursamenvatting

Lagen verwijderen

Werkelijke oproepvolgorde

complexe functie

Stap voor stap uitleg

Omgekeerde logica, bijwerkingen

gegevensstroom

Het opstellen van de keten

Voorwaardelijke vertakkingen, overgeslagen paden

Gebruik bibliotheek

Monstergeneratie

Authenticiteit en versie van de API

Geen vervanging voor menselijk begrip

AI-beschrijving is geen vervanging voor leren; het versnelt het. Een codebase echt ‘bezitten’ betekent dat je er een mentaal model van bouwt, en dat model past alleen als je de code leest, kleine wijzigingen aanbrengt en het resultaat ziet. Gebruik AI zoals een mentor je zou vertellen “kijk hier, dit is belangrijk” – maar lees waar je het met je eigen ogen ziet.

Tip: Wanneer je denkt een functie te begrijpen, vraag dan aan de AI om deze “in één zin samen te vatten”; Vergelijk het dan met je eigen zin. Als twee zinnen elkaar tegenspreken, heb jij of het model iets gemist – en werk je dat uit in de code.

Veel voorkomende fouten

  • Beschouw de samenvatting als bewijs. Als u een beslissing neemt over de code zonder de beschrijving te verifiëren, loopt u in de val van misleidende namen.
  • Te grote stukken lijmen. Het samenvatten van 2000 regels in één keer levert oppervlakkige en foutgevoelige resultaten op; in stukken verdelen.
  • Geen doel vermelden. Als u niet zegt "wat u gaat doen", blijft de beschrijving algemeen en niet gericht op uw bedrijf.
  • Het bibliotheekexemplaar wordt niet gevalideerd. Het model kan een verouderde of niet-bestaande API aanroepen; Vergelijk met officieel document.
  • Al het geleerde weggeven. Als je alleen met samenvattingen werkt zonder ooit de codebasis te lezen, ben je hulpeloos bij de eerste echte fout.

Samengevat

AI is een krachtige gids bij het verkennen van een buitenlandse codebasis: brengt architectuur in kaart, vereenvoudigt complexe functies, traceert de gegevensstroom, leert bibliotheekgebruik. Maar elke verklaring is een hypothese. Maak uw punt duidelijk, splits het op, verifieer in code en test elke kritische bewering dat het model zegt (en niet) 'moet worden geverifieerd'. De gids is AI; Jij bent degene die de kaart leest en de verantwoordelijkheid draagt.

Applicatie taak

Kies een module die u niet kent of die u net heeft geërfd. Extraheer eerst de lagen en het bestandstraject van een object met de sjabloon "code base mapping". Laat vervolgens de meest kritische functie van dat kenmerk stap voor stap uitleggen met het sjabloon "functie-uitleg". Controleer ten slotte persoonlijk ten minste twee beweringen in de code die het model heeft gemarkeerd als “moet worden geverifieerd” en noteer of deze waar of onwaar zijn.

controlelijst

  • [ ] Ik behandel de AI-verklaring als een hypothese en verifieer deze in code.
  • [ ] Terwijl ik de code uitleg, voeg ik mijn doel en focus toe aan de prompt.
  • [ ] Ik vat de grote codebasis samen door deze in delen te verdelen.
  • [ ] Ik controleer kritische claims online op misleidende namen/omgekeerde logica-valkuilen.
  • [ ] Ik vergelijk de bibliotheekvoorbeelden met het officiële document en de officiële versie.
  • [ ] Ik gebruik AI als gids om het leren te versnellen, niet als vervanging voor leren.