Evergreen Notes: Skriv anteckningar som växer över tid

Anteckningar som förbättras istället för att försämras.

Sidinnehåll

De flesta tekniska anteckningar skrivs en gång och glöms sedan bort. Du fångar något under en felsökningsprocess, klistrar in det någonstans och hittar det två år senare utan någon kontext för varför det var viktigt.

Problemet ligger inte i ansträngningen. Ingenjörer skriver ständigt — kodenoteringar, Slack-meddelanden, sidor på Confluence, Jira-beskrivningar, förklaringar i pull requests och arkitekturdiagram. Problemet är att de flesta av dessa anteckningar skrivs för en specifik stund och åldras dåligt. De ackumuleras inte; de staplas bara på.

Evigt gröna anteckningar (evergreen notes) är alternativet. Idén är enkel: skriv varje anteckning så att den förblir användbar i all evighet, förbättras när du återbesöker den och kopplas till andra anteckningar på ett sätt som gör hela systemet mer värdefullt över tid.

Evigt gröna anteckningar växer och kopplas samman över tid

Termen populariserades av forskaren Andy Matuschak, vars egna offentliga anteckningar demonstrerar idén i stor skala. För ingenjörer har principen direkta tillämpningar inom teknisk skrivning, dokumentation, arkitekturval och långsiktig insamling av svårutvunna lärdomar.

Vad som gör en anteckning evigt grön

Atomär

En evigt grön anteckning innehåller en idé. Inte ett ämne — en idé.

En anteckning som heter “PostgreSQL” är inte evigt grön. Det är en behållare som väntar på att fyllas. En anteckning som heter “Partiella index minskar skrivöverhuvudskostnader när frågor riktar sig mot en liten delmängd” är evigt grön. Den framställer ett specifikt, portabelt påstående.

Kravet på atomaritet är viktigt eftersom det kontrollerar återanvändningen. En behållaranteckning kan länkas endast som ett vagt ämne. En atomär anteckning kan länkas vart det specifika idén tillämpas — i en diskussion om frågeoptimering, i en jämförelse av indexeringsstrategier, eller i en projektanteckning om ett specifikt prestandaproblem.

Stående på egna ben

En evigt grön anteckning bör vara begriplig utan sin ursprungliga källa.

Det innebär att skriva med egna ord. En anteckning som säger “Se den länkade artikeln — bra stoff om cachning” är inte evigt grön. En anteckning som säger “Write-through-caching uppdaterar cachen synkront med databasen vid varje skrivning, vilket förbättrar läsconsistens till priset av högre skrivlatens” är evigt grön. Du kan läsa den ett år senare utan att behöva jaga den ursprungliga källan.

Detta är svårare än det låter. Att skriva en anteckning som står på egna ben kräver att man faktiskt förstår det man läst, inte bara taggar det. Det är i den bearbetningssteget som de flesta av inlärningen sker.

Utvecklande

Evigt gröna anteckningar förbättras över tid istället för att bli föråldrade.

En flyktig anteckning har en livscykel: du skriver den, den tjänar ett ögonblick, den blir irrelevant. En evigt grön anteckning bör vara värd att återbesöka och förfinas sex månader eller två år senare. Du kan lägga till ett motexempel, uppdatera den med erfarenhet från produktion, länka den till ett nytt mönster eller helt enkelt skriva om den mer precist.

Ordet “evigt grön” är avsiktligt: dessa anteckningar dör inte efter skörd. De består och förbättras.

Länkad

Evigt gröna anteckningar kopplas till andra anteckningar istället för att sitta isolerade.

En isolerad anteckning om write-through-caching kopplas naturligt till anteckningar om läsintensiva arbetsbelastningar, cacheinvalidiering, eventual consistency och databasskrivprestanda. Varje länk gör båda anteckningarna mer användbara — kopplingen framkallar en kontext som varken anteckning innehåller enskilt.

Vanen med att länka är det som förvandlar en samling individuella insikter till ett nätverk av sammanhängande förståelse.

Anteckningstyper och när man ska använda varje

Att förstå evigt gröna anteckningar kräver att man förstår vad de inte är.

Flyktiga anteckningar är tillfälliga fångster. En rad skissad under en felsökningsprocess, en bokmärkessida att besöka igen, en fråga att uppföljas. Flyktiga anteckningar tjänar ett ögonblick. De bör bearbetas snabbt och antingen kasseras eller promoveras till något mer beständigt. De flesta flyktiga anteckningar blir aldrig evigt gröna anteckningar, och det är bra så.

Litteraturanteckningar är sammanfattningar av externa källor — en dokumentationssida, en postmortem, ett bokkapitel, en konferenspresentation. Litteraturanteckningar bevarar vad en källa sa. De är ett steg mot förståelse, inte förståelsen i sig. En litteraturanteckning säger “denna källa påstår X.” En evigt grön anteckning säger “Jag tror på X av följande skäl.”

Evigt gröna anteckningar syntetiserar det du har kommit att förstå. De lever vid utmatningen av inlärningsprocessen, inte vid inmatningen.

Anteckningstyp Syfte Livslängd Exempel
Flyktig Snabb fångst Timmar till dagar “Utred varför Postgres vacuum missade denna rad”
Litteratur Källsammanfattning Mellanlång tid “Redis-dokumentationen säger att AOF fsync-standard är 1s”
Evigt grön Portabel idé År “Fsync-på-skrivningens uthållighet byter genomströmning mot kraschssäkerhet”

Att skriva evigt gröna tekniska anteckningar

Strukturen hos en bra evigt grön teknisk anteckning följer en enkel logik: påstående, bevis, implikation.

# Write-through-caching förbättrar läsconsistens till priset av skrivlatens

Write-through-caching uppdaterar cachen samtidigt som den underliggande lagringen
vid varje skrivning. Varje läsning träffar färsk data eftersom skrivvägen säkerställer
consistens innan skrivningen bekräftas.

Kompromissen är skrivlatens — varje skrivning kräver nu två operationer (lagring
och cache) för att slutföras innan anroparen får en bekräftelse.

Detta mönster passar läsintensiva arbetsbelastningar där cache-föråldring har verklig
affärspåverkan, såsom produktinventeringsräkningar eller användarinställningar.

Länkar:
- [[Read-through-caching flyttar cache-populering till lästid]]
- [[Cacheinvalidiering är ett koordineringsproblem]]
- [[Write-behind-caching byter consistens mot skrivgenomströmning]]

Den anteckningen är användbar utan källan. Den framställer påståendet, förklarar kompromissen, ger en kontext där den tillämpas och länkar till relaterade idéer.

Vad man bör undvika

Tidskänsliga referenser åldras dåligt. “Enligt Postgres 14 fungerar detta beteende på detta sätt” är en litteraturanteckning, inte en evigt grön anteckning. Skriv principen istället: “Planeraren hoppar över indexsökningar när beräknad radantal överstiger en tröskel relativt till tabellstorlek.” Det påståendet överlever versionsändringar även om tröskeln ändras.

Verktygsspecifika kommandon utan kontext är klipp, inte anteckningar. En anteckning som bara är ett kubectl-kommando kopierat från ett StackOverflow-svar är inte evigt grön. En anteckning om varför det kommandot fungerar — vilken Kubernetes-resurs det påverkar och vilket problem det löser — har en chans.

Antaganden om läsarens kunskap föråldras snabbt. Skriv som om du förklarar för en kompetent kollega som inte är inne i din nuvarande kontext.

Goda kandidater för evigt gröna anteckningar inom ingenjörskap

Nästan vilken svårutvunnen lärdom med bred tillämplighet är en bra kandidat:

  • Arkitekturkompromisser och resonemanget bakom beslut
  • Felsökningsmönster som tillämpas över system
  • API-designregler och deras grannfall
  • Prestandaegenskaper med verkliga siffror bifogade
  • Säkerhetsantagningar som visade sig vara felaktiga
  • Lärdomar om teststrategier från projekt där tillvägagångssättet misslyckades
  • Implementeringsbegränsningar som ändrade hur teamet arbetade

Den gemensamma tråden: tillräckligt specifik för att vara handlingskraftig, tillräckligt generell för att tillämpas mer än en gång.

Den evigt gröna arbetsflödet

Steg 1: Fånga flyktiga anteckningar

Fånga snabbt utan att överanalysera. Målet är inte att producera en evigt grön anteckning i stunden — det är att bevara råmaterialet för en sådan.

Under en felsökningsprocess:

Upptäckte att cachen returnerade föråldrade användarbehörigheter efter rolländringar.
TTL var 5 minuter men rolluppdateringen var omedelbar.
Behöver tänka igenom hur detta ska hanteras — invalidiering vid skrivning?
Eller kortare TTL? Eller händelsedriven uppdatering?

Det är en flyktig anteckning. Det är inte en evigt grön anteckning, men den innehåller fröna till flera.

Steg 2: Bearbeta till evigt gröna anteckningar inom 48 timmar

Det är vid bearbetningen som värdet framträder. Ta den råa fångsten och extrahera de idéer som är värda att bevaras.

Från den felsökningsanteckningen kan du skriva:

# Rollbaserade cacheinträden kräver invalidiering vid skrivning, inte bara TTL-utgång

När cachelagrad data koder behörigheter eller roller är TTL-baserad utgång inte säker.
En använd vars roll nedgraderas behåller upphöjda behörigheter tills TTL löper ut.
Invalidiering vid skrivning — eller händelsedriven cacheuppdatering vid rolländring — krävs
för korrekthet i behörighetssensitiva cacher.

Länkar:
- [[Cacheinvalidiering är ett koordineringsproblem]]
- [[Auktoriseringsbeslut bör inte cachas i vila utan validering]]

Felsökningskontexten är borta. Den portabla idén finns kvar.

Steg 3: Koppla till befintliga anteckningar

Efter att ha skrivit anteckningen, spendera två minuter på att fråga:

  • Vilken befintlig anteckning relaterar detta till?
  • Vilket koncept bygger detta på?
  • Vad utvidgar eller motsäger detta?

Lägg till länkar i båda riktningarna. Den nya anteckningen länkar till befintliga anteckningar. Befintliga anteckningar som nu är rikare tack vare kopplingen länkar tillbaka.

Steg 4: Återbesök och förbättra

Evigt gröna anteckningar har inte ett enda korrekt tillstånd. Varje gång du stöter på idén igen — vid en produktionsincident, en designrecension, en kodrecensionskommentar — överväg att återvända till anteckningen och göra den bättre.

Du kan:

  • Lägg till ett mer konkret exempel
  • Uppdatera påståendet baserat på nya bevis
  • Ta bort en undantagsregel som visade sig inte ha betydelse
  • Lägg till en länk till en ny relaterad anteckning
  • Skriv om inledningsmeningen för tydlighet

Den cykeln av förfining är det som gör att anteckningar ackumuleras snarare än förfaller.

Evigt gröna anteckningar och dokumentation

Det finns en användbar distinktion mellan personliga evigt gröna anteckningar och teamdokumentation.

Personliga evigt gröna anteckningar är din förståelse, skriven för framtida du. De kan vara grova, åsiktsstyrda och ofullständiga. Deras värde ligger i att vara återanvändbara för ditt tänkande.

Teamdokumentation är för delad förståelse. Den behöver precision, tillgänglighet och ägarskap för underhåll.

De två lagarna kompletterar varandra. Dina evigt gröna anteckningar om varför ett system designades på ett visst sätt kan bli råmaterialet för arkitekturbeslötsdokumentet (ADR). Dina felsökningsanteckningar kan mata runboken. Dina API-designanteckningar kan informera stilguiden.

Flödesriktningen är vanligtvis: evigt gröna anteckningar → polerad dokumentation, inte omvänt.

Evigt gröna anteckningar och RAG-system

Nåda AI-augmenterade kunskapsverktyg blir mer praktiska, väl skrivna evigt gröna anteckningar blir alltmer värdefulla som hämtmaterial. Problemet med hämtning jämfört med representation inom kunskapsförvaltning handlar i grunden om källmaterialets kvalitet — och evigt gröna anteckningar, som är atomära, står på egna ben och skrivna för begriplighet, chunkas bra för vektorsökning.

En Zettelkasten av atomära evigt gröna anteckningar är en naturlig grund för ett personligt RAG-system. Den atomära strukturen stämmer överens med hämtningschunkstorlek. Den självständiga egenskapen innebär att hämtade anteckningar inte behöver ytterligare kontext för att vara användbara. Länkstrukturen möjliggör graftraversering bortom nyckordsökning.

Detta blir alltmer relevant för ingenjörer som vill fråga sin egen kunskapsbas med en LLM snarare än att börja från scratch varje gång.

Vanliga fallgropar

Att skriva för brett

En anteckning som täcker ett helt ämne är inte en evigt grön anteckning — det är ett utkast till artikel. Om din anteckning är längre än en skärm och täcker mer än ett påstående, bryt den upp i mindre anteckningar och länka dem.

Att skriva för smalt

En anteckning som är för specifik för en kontext har inget återanvändningsvärde. “Lyste cachebuggen i fakturerings tjänsten den 2024-03-14” är en logpost, inte en evigt grön anteckning. Höj abstraktionsnivån tills idén tillämpas i minst tre olika kontexter.

Att förväxla “evigt grön” med “ändras aldrig”

Evigt grön betyder inte oföränderlig. Det betyder att anteckningen förblir värd att återvända till. En anteckning om Go-generika skriven 2022 är fortfarande evigt grön om du uppdaterar den för att spegla hur mönster utvecklades 2024. En anteckning som du aldrig rör för att du tror att den är permanent korrekt är en anteckning som till slut kommer att bli felaktig i tysthet.

Att hoppa över bearbetningssteget

Det vanligaste misslyckandet är att behandla evigt gröna anteckningar som ett samlingsmål snarare än en skrivpraxis. Du kan inte växa en samling av högkvalitativa atomära anteckningar genom att spara bokmärken. Den evigt gröna anteckningen är inte artikeln du läste — det är det du extraherade från den med egna ord.

Verktyg

Obsidian

Obsidian är det mest populära verktyget för evigt gröna anteckningar. Dess lokala Markdown-filer, bidirektionella länkar och grafvy passar bra med praktiken. En enkel struktur:

vault/
  fleeting/
    daily/
  literature/
  evergreen/
  maps/       ← indexanteckningar för kluster av evigt gröna anteckningar

Grafvyn i Obsidian gör länkkluster synliga — användbart för att upptäcka vilka koncept bildar naturliga grupper som kan bli indexanteckningar eller publicerade artiklar.

Ren Markdown med Git

En Git-repositorium av Markdown-filer fungerar bra och har inga beroenden av något specifikt verktyg. Standard Markdown-länkar kopplar anteckningar. Sökning hanteras av din editor eller grep. Versionshistorik kommer från Git.

knowledge/
  evergreen/
    caching/
    api-design/
    performance/
  literature/
  fleeting/

Disciplinen är densamma oavsett verktyg — en idé per anteckning, skriven med egna ord, länkad till relaterade anteckningar.

Att börja från noll

Det mest användbara sättet att börja är inte att migrera dina befintliga anteckningar. Det är att skriva en evigt grön anteckning idag.

Ta något du lärde dig den senaste veckan. Skriv det som ett påstående. Förklara det med egna ord i ett stycke. Lägg till länkar till noll eller ett relaterat idé.

Det är en komplett evigt grön anteckning. Upprepa en gång i veckan i sex månader och du har ett fungerande system.

Den ackumulerande effekten tar tid att bli synlig. Ingenjörer som underhåller evigt gröna anteckningar i ett år rapporterar ofta att deras anteckningar börjar svara på frågor innan de hunnit ställa dem — eftersom de redan har skrivit svaret i en tidigare kontext.

Avslutande tankar

Anledningen till att evigt gröna anteckningar fungerar är inte att de är bättre på lagring. De är bättre på att tänka. Disciplinen att skriva en portabel idé per anteckning, med egna ord, med länkar till relaterade idéer, tvingar fram en förståelse som passiv samling inte gör.

För ingenjörer har detta praktiska konsekvenser. Anteckningarna från en produktionsincident som du bearbetar till evigt grön format är mer användbara än incidentsloggen. Designkompromissen du destillerar till en atomär anteckning är mer användbar än arkitekturdiagrammet. Felsökningsmönstret du generaliserar från en specifik bugg är mer återanvändbar än biljetten.

Används tillsammans med PARA-metoden för att organisera aktivt arbete, ger evigt gröna anteckningar dig det konceptuella lagret som PARA inte tillhandahåller — ett växande nätverk av återanvändbar förståelse som består över projekt, roller och år.

Prenumerera

Få nya inlägg om system, infrastruktur och AI-ingenjörskonst.