Har indført nul advarsler som krav i seks sprog
Har sat en kvalitetsstandard med nul advarsler i seks sprog — Go, TypeScript, SQL, Python, Shell og Markdown — håndhævet af pre‑commit‑hooks.
Arbejdet udført: 2025

Foto: Simedblack / Pixabay 
Foto: domeckopol / Pixabay
seks sprog holdt på nul advarsler
Situation. Advarsler, der hober sig op, har en snigende, ætsende virkning. Hver melding, man ignorerer, sænker barren en smule, og når først buildet spytter fyrre af dem ud, læser ingen af dem, og et reelt problem står i listen for øjnene af alle, fordi “advarsler” er blevet til baggrundsstøj. I en flersproget kodebase er der så meget desto flere støjkilder, der kan få det til at ske.
Opgave. Repoet skulle have én kompromisløs kvalitetsstandard for alle sprog, så problemer blev rettet i stedet for at hobe sig op.
Handling. Der blev indført en politik om nul advarsler, og det er værktøjerne, der håndhæver den, for en politik, der bygger på alles årvågenhed, bukker under i den første travle uge. Hver eneste linter‑melding er en fejl — der er intet “warn”-niveau at gemme sig i — og det er det samme på tværs af hele stakken: Go med golangci‑lint, TypeScript med ESLint, SQL med SQLFluff, Python med Ruff, shell med ShellCheck, Markdown med markdownlint. Inline‑undertrykkelse er forbudt, så man kan ikke dække over en melding; man er nødt til rent faktisk at rette problemet. Pre‑commit- og pre‑push‑hooks kører linterne og testene, så en commit, der ville indføre et problem, slet ikke bliver lavet. Der er endda grænser for funktions- og fillængde, så moduler ikke vokser sig så store, at de ikke længere er til at læse.
Resultat. Problemer bliver rettet ved kilden i stedet for at blive skubbet over i en backlog, som ingen får ryddet, og kodebasen forbliver ren som udgangspunkt og ikke takket være heltemodige oprydninger engang imellem. Standarden er den samme, uanset hvilket sprog man arbejder i, og det er værktøjerne, der opretholder den — ikke nogens viljestyrke — og derfor holder den faktisk.
Læs videre: Har fastlagt platformens grundbeslutninger. Eller tag et kig på hele porteføljen.
Ét stykke af en længere fortegnelse — og det hele ligger her på sitet.
Hver post er skrevet på samme måde: situationen, opgaven, hvad vi gjorde, og hvad der ændrede sig.

