Enhet 9 / 12

Dokumentation, README och kodkommentarer

Vinster:

  • Möjlighet att producera README-, docstring- och changelog-utkast baserat på målgrupp och källa med AI
  • Möjlighet att separera "vad/hur" och "varför"-lagren i dokumentationen och lägga till "varför" som människa
  • Verifiera installationsstegen genom att personligen köra dem och göra dokumentet till en del av kodändringen

Den oftast försummade men längsta varaktiga delen av programvaran är dokumentation. Koden är läsbar även efter månader; Den som skrev det är borta, sammanhanget är glömt, och bara det som skrevs finns kvar. En bra README (introduktionsdokument som förklarar vad ett projekt är och hur man installerar och kör det), förklarande kodkommentarer och en uppdaterad API-dokumentation (en referens som förklarar hur man använder ett gränssnitt) avgör direkt hastigheten för ett team. AI tar mycket av "skrivtröttheten" ur dokumentationen - men det kommer med en fälla: AI kan dra slutsatser från kod vad den gör, men kan ofta inte veta varför det görs på det sättet.

I den här enheten kommer du att lära dig hur du producerar README, kodkommentar, docstring (kommentarblock skrivet per funktion/klass), API-dokument och ändringslogg med AI; och hur man mänskligt bevarar den mest värdefulla delen av dokumentationen: "varför".

Skillnad mellan "Vad" och "Varför"

Det finns två lager av dokumentation. Den första är vad/hur: "den här funktionen sorterar en lista", "kör det här kommandot för att installera". Dessa kan extraheras från koden och strukturen; AI utmärker sig här. För det andra, varför: "varför gjorde vi den här tjänsten asynkron snarare än synkron", "varför är detta gränsvärde 30 sekunder", "varför valde vi det här biblioteket framför det andra". Dessa är inte inskrivna i koden; Det är produkten av designbeslut, begränsningar och tidigare smärta.

AI vet inte "varför"; I bästa fall gör det en rimlig gissning – vilket är farligt, eftersom ett felaktigt skäl är värre än inget skäl alls. Så arbetsfördelningen är tydlig: AI formulerar "vad/hur", du lägger till "varför". Den mest värdefulla kommentaren är den som säger vad koden inte kan säga.

Tips: Upprepa inte med en kommentar vad koden själv tydligt säger (som i = i + 1 // öka i med ett). AI producerar ibland sådana överflödiga kommentarer; Eliminera dem och ägna din energi åt "varför"-kommentarer.

Steg för steg: Dokumentationsgenerering med AI

  1. Ange målgrupp. "En utvecklare som precis har börjat", "det externa teamet som kommer att använda detta API", "det framtida jag" - publiken sätter tonen för språk och djup.
  2. Ge källan. Lägg till relevant kod, befintlig README, exempelanvändning i prompten. Ett dokument utan källa är en inbjudan till tillverkning.
  3. Påläggningsstruktur. Standardavsnitt för README (Syfte, Installation, Användning, Konfiguration, Bidrag), projektformat för docstring.
  4. Markera "varför"-mellanslagen. Be AI att markera beslut som den inte känner till logiken som "en 'varför'-anteckning krävs här"; Sedan fyller du i de tomrummen.
  5. Kontrollera. Kör faktiskt installationsstegen; prova exempelkoden. En README som inte fungerar är värre än ingen README alls.

Tre minifodral

Fall 1 — README accelererad onboarding. README för ett verktyg med öppen källkod saknades; Nya bidragsgivare kämpade med installationen i i genomsnitt 2 timmar. Teamet gav installationsskripten och package.json till AI och utarbetade en strukturerad README, körde sedan själva stegen på en ren maskin och lade till de två saknade beroenden. Installationstiden för efterföljande bidragsgivare minskade till i genomsnitt 25 minuter.

Fall 2 — Den påhittade "varför"-fällan. En utvecklare bad AI om en kommentar bredvid ett timeoutvärde (timeout=30). AI skrev en rimlig men felaktig motivering "för att tolerera hög nätverkslatens"; den verkliga anledningen var en nedströmstjänsts avtalsenliga 30-sekundersgräns. Feltolkningen ledde till att en efterföljande utvecklare ökade värdet i onödan, vilket ledde till en incident. Lektion: Kodens ägare måste verifiera motiveringen.

Fall 3 — Docstring-standarden har blivit automatiserad. En hjälpmodul med 40 funktioner hade inga docstrings. AI fick projektformatet (Google-stil) och producerade parameter-, retur- och undantagsbeskrivningar för varje funktion; Utvecklaren granskade dessa och fixade några felaktiga typdeklarationer. Att dokumentera 40 funktioner gick ner från ungefär en halv dag till en timme.

Fyra kopieringsbara mallar

Strukturerat README-utkast:

Målgrupp: {{t.ex. new contributor}}.Skriv ett utkast till README baserat på filerna nedan. Avsnitt: Syfte, Funktioner, Krav, Installation, Drift, Konfiguration, Testning, Bidrag. Extrahera installations-/körningskommandon från faktiska filer; MONTERING. Markera de platser du inte är säker på med "[VERIFIERA]". Källa: {{package.json / scripts / sample code}}

Docstring/API-referens:

Skriv docstring till dessa funktioner i formatet {{projektstil: Google/NumPy/JSDoc}}: kort sammanfattning, parametrar (typ + betydelse), retur, slängda undantag, 1 kort exempel. Upprepa inte vad koden TYDLIGT säger. Markera designbeslut som kräver "varför" som "[VARFÖR NÖDVÄNDS]", skriv inte en påhittad motivering.{{kod}}

Ta bort blanksteg för "varför"-kommentaren:

I den här koden kan nästa utvecklare fråga "varför är det så?" (magiska siffror, ovanliga beslut, lösningar). Ge en kommentar SKELETT för varje, men lämna motiveringen TOMT; Jag fyller i motiveringen.{{code}}

Ändringslogg/PR uttalande:

Skriv en {{ändringsloggpost / PR-beskrivning}} från skillnaden nedan. Format: Vad ändrades (på användarspråk), Varför (problem: {{...}}), Brytande förändring (om någon), Har den testats. Anpassa teknisk jargong till målgruppen.{{diff}}

Svag prompt / Stark prompt

Svag: "Skriv en README för det här projektet."
Stark: "Målgrupp: en utvecklare som klonar denna repo för första gången. Baserat på bifogade package.json, docker-compose.yml och scripts/ folder, skriv ett utkast README med syfte, krav, installation, drift, testning, bidragssektioner. Extrahera kommandona från dessa filer, sminka dem inte]; markera någonstans där du inte är säker."

Den starka versionen ger publiken, källan, strukturen och regeln "gör det, markera det"; så att dokumentet är baserat på riktiga filer och platserna som ska verifieras är tydligt synliga.

Dokumenttyp

AI gör det bra

Människan lägger till/verifierar

README installation

steg disposition

Kör stegen och bekräfta

Docstring/API

Struktur, parameter, typ

Rätt typ och "varför"

Kodkommentar

"Vad han gör" sammanfattning

"Varför är detta" motivering

Ändringslogg/PR

första utkastet

Effekt och noggrannhet

Arkitekturbeslut (ADR)

skelett

Verkliga beslut och kompromisser

Dokumentation kräver underhåll

Den farligaste aspekten av ett dokument är när det verkar sant även om det är falskt. När koden ändras och dokumentet inte uppdateras vilseleder det aktivt läsaren. AI gör uppdateringen enkel: utfärda en skillnad och fråga "vilka delar av dokumentet påverkar denna ändring?" kan du fråga. Men det är processen som säkerställer uppdateringen — gör dokumentationsuppdateringen till en del av kodändringen (PR:s acceptanskriterium). AI accelererar; Teamet bygger disciplin.

Varning: Publicera inte utan att verifiera installationsstegen i en README. Ett "förmodligen arbete" dokument kan förstöra en ny utvecklares första dag och urholka förtroendet. Kör stegen själv i en ren miljö.

Vanliga misstag

  • Att få "varför" att passa AI. Falsk motivering är värre än ingen motivering; Kodägaren ska skriva designskälet.
  • Verifierar inte installationsstegen. README som inte fungerar förstör förtroendet.
  • Onödig kommentar som upprepar koden. Det producerar brus och döljer verkliga "varför"-tolkningar.
  • Anger inte målgruppen. Ett dokument som är oklart till vem det är skrivet är till ingen nytta för varken novisen eller experten.
  • Separerar uppdateringen från processen. Om dokumentet inte uppdateras med koden blir det snabbt missvisande.

Sammanfattningsvis

AI tar mycket av den mekaniska bördan av dokumentation: snabba utkast README, docstring, API-referens, ändringslogg och PR-beskrivningar. Men den kan inte veta "varför", vilket är det mest värdefulla lagret, och det är farligt att hitta på det. Arbetsfördelningen är tydlig: AI producerar "vad/hur", du lägger till "varför". Ange publiken, tillhandahåll resurser, inför struktur, markera platser som passar och verifiera varje installationssteg genom att köra det själv. Gör dokumentationen till en integrerad del av kodändringen.

Applikationsuppgift

Välj en modul eller ett litet projekt vars dokumentation saknas eller är inaktuell. Generera först en disposition från AI med mallen "structured README draft" (eller docstring); Var noga med att ange källan och målgruppen. Gå sedan igenom varje punkt där AI har markerat [VERIFY] eller [WHY NEEDED]: kör faktiskt installationsstegen och fyll i designen "varför" med din egen kunskap. Notera hur många steg som behöver åtgärdas och hur många "varför" du har lagt till.

checklista

  • [ ] I dokumentationen skiljer jag på lagren "vad/hur" och "varför".
  • [ ] Jag får inte AI att utgöra "varför", jag lägger till det själv.
  • [ ] Jag ger uppmaningen målgruppen och de faktiska källfilerna.
  • [ ] Jag verifierar [VERIFY]-punkterna markerade av AI:n genom att personligen utföra dem.
  • [ ] Jag tar bort onödiga kommentarer som upprepar koden.
  • [ ] Jag gör uppdateringen av dokumentationen till en del av kodändringen.