Hopp til innhold

Bygde repoets kontrollmotor — 268 registrerte commit‑kontroller, 277 lint‑regler og 15 egne ESLint‑regler — pluss 146 tester av selve kontrollene, slik at det er bygget, ikke gjennomgangen, som holder standarden.

268 commit‑kontroller, og 146 tester av selve kontrollene

Situasjon. Standarder som er skrevet ned i en bidragsveiledning, er forslag. Alle er enige i dem, og så er det fredag, endringen er liten, og veiledningen taper. Kravet om null advarsler kom aldri til å holde med mindre noe annet enn velvilje holdt det oppe — og linterne som følger med hvert språk, stopper et godt stykke før de prosjektspesifikke reglene som faktisk betyr noe, de som handler om hvordan akkurat denne kodebasen er ment å fungere.

Oppgave. Reglene prosjektet brydde seg om, måtte være kjørbare, slik at et brudd på én av dem fikk en commit til å feile i stedet for å vente på en kodegjennomgåer med tid og hukommelse nok til å oppdage det.

Handling. Ut av dette vokste det frem en vaktmotor. Det finnes 274 kontrollskript, 268 av dem registrert i commit‑hookene, sammen med 277 JavaScript‑lintere og 96 shell- og 17 Python‑validatorer som dekker det ferdigverktøy ikke har noen mening om — at en migrering kan rulles tilbake, at en oversettelsesnøkkel finnes i begge språkversjonene, at en registrert rute står i OpenAPI‑beskrivelsen, at ingen i det stille har lagt inn en inline‑undertrykkelse. Femten egne ESLint‑regler holder husets mønstre på plass i TypeScript. Én regel fortjener å nevnes for seg: enhver commit med prefikset fix: må ha med en test som feiler uten den, slik at en feil som er rettet, forblir rettet. Og fordi en ødelagt vakt er verre enn ingen vakt i det hele tatt — den slipper alt gjennom og ingen finner det ut — har vaktene 146 egne tester.

Resultat. Gjennomgangstiden flyttet seg fra mekanikk til design, fordi de mekaniske innvendingene allerede var gjort av en maskin før grenen ble pushet. Avveiningen er reell og verdt å si høyt: det går tregt å committe, og en dårlig skrevet vakt er virkelig irriterende å jobbe seg rundt. De 146 testene finnes fordi nettopp det skjedde.

Ett stykke av en lengre oversikt — og den ligger i sin helhet her.

Hver oppføring er skrevet på samme måte: situasjonen, oppgaven, hva vi gjorde, og hva som endret seg.

Se hele oversikten