Hacker News

Vis HN: Rev-dep – 20x hurtigere knip.dev alternativ build i Go

Opdag rev-dep, et Go-bygget værktøj til registrering af død kode, der er 20 gange hurtigere end knip.dev. Reducer byggetiden og rens din kodebase for voksende softwareteams.

7 min læst

Mewayz Team

Editorial Team

Hacker News

Den skjulte skat på hvert voksende softwareteam

Ethvert softwareprojekt, der overlever længe nok, står til sidst over for den samme stille krise: Kodebasen begynder at vokse hurtigere, end holdet kan forstå det. Funktioner, som ingen ringer til, eksporter, der blev skabt til en funktion, der blev leveret i 2022 og stille og roligt blev forældet, komponenter, der lever på disken, men aldrig når en browser. Dette er ikke sjusk - det er fysik. Hold bevæger sig hurtigt, kravene ændrer sig, og entropien er ubarmhjertig. Spørgsmålet er ikke, om din kodebase har død kode. Spørgsmålet er, hvor meget det koster dig lige nu.

Ifølge forskning fra Googles ingeniørproduktivitetsteam bruger udviklere i gennemsnit 42 % af deres kodningstid på at læse og forstå eksisterende kode i stedet for at skrive ny funktionalitet. Når den eksisterende kode indeholder tusindvis af linjer, der ikke længere tjener noget formål, skæver den procentdel endnu højere. For et team på ti ingeniører er det faktisk fire fuldtidsansatte, der ikke gør noget produktivt - ikke fordi de er dovne, men fordi deres værktøjer ikke holder trit med den hastighed, hvormed software ældes.

Dette er grunden til, at en ny bølge af udviklerværktøjer bygget på systemsprog som Go og Rust genererer ægte spænding i ingeniørkredse. Værktøjer som Rev-dep - en omvendt afhængighedsanalysator, der hævder at køre 20 gange hurtigere end den populære JavaScript-baserede knip.dev - repræsenterer mere end blot trinvis forbedring. De signalerer en grundlæggende gentænkning af, hvordan vi instrumenterer selve udviklingsprocessen.

Hvad omvendt afhængighedsanalyse faktisk gør

Før du forstår, hvorfor hastighed betyder så meget, hjælper det at forstå, hvad afhængighedsanalyseværktøjer rent faktisk gør. I et JavaScript- eller TypeScript-projekt importeres hver fil fra andre filer. Hver funktion, klasse eller konstant, der bliver eksporteret fra et modul, skaber en potentiel afhængighed - noget, som andre dele af kodebasen kan stole på. "Omvendt" afhængighedsanalyse vender dette perspektiv: i stedet for at spørge "hvad afhænger dette modul af", spørger den "hvad afhænger af dette modul?"

Hvis svaret på det andet spørgsmål er "ingenting", har du fundet død kode. En eksport, som intet importerer, er affald. En funktion, som intet kalder, er teknisk gæld med en månedlig rente. Værktøjer til omvendt afhængighed gennemgår systematisk hele din projektgraf, kortlægger hvert forhold mellem moduler og viser de noder, der ikke har nogen indgående forbindelser. Resultatet er en præcis revision af alt i din kodebase, som sikkert kan fjernes.

💡 VIDSTE DU?

Mewayz erstatter 8+ forretningsværktøjer i én platform

CRM · Fakturering · HR · Projekter · Booking · eCommerce · POS · Analyser. Gratis plan for altid tilgængelig.

Start gratis →

Knip.dev gør dette godt til JavaScript- og TypeScript-projekter, og det er bredt respekteret i fællesskabet. Men det er skrevet i JavaScript, hvilket betyder, at det kører på Node.js, hvilket betyder, at det arver alle Nodes enkelttrådede præstationsbegrænsninger, når man laver storstilet filsystemgennemgang og symbolanalyse. For et projekt med 500 filer er dette fint. For et projekt med 50.000 filer - den slags monorepo, der driver rigtige virksomheds SaaS-produkter - kan analysen tage minutter. Og minutter, ved den kadence, moderne CI/CD-pipelines opererer på, er en dealbreaker.

Hvorfor Go ændrer beregningen

Go er designet fra bunden til præcis den slags arbejdsbyrde, som afhængighedsanalyse kræver: hurtig fil-I/O, fremragende samtidighedsprimitiver og minimal runtime-overhead. Hvor Node.js behandler én opgave ad gangen på en enkelt tråd og er afhængig af tilbagekald og lover at falske parallelisme, kan Go afføde tusindvis af goroutiner, der virkelig udføres parallelt på tværs af alle tilgængelige CPU-kerner. For en opgave, der involverer læsning af hundredvis af filer, parsing af deres AST'er og opbygning af en graf over symbolrelationer, udmønter denne arkitektoniske forskel sig direkte til vægurets ydeevne.

Den 20x speedup, som Rev-dep hævder, er ikke magi - det er det, der sker, når du matcher det rigtige sprog til det rigtige problem. Go's kompilerede karakter betyder også ingen JIT-opvarmningsstraf. Fra kold start til fuldstændig analyse, en Go-binær opererer ved næsten-peak p

Frequently Asked Questions

What makes Rev-dep faster than knip.dev?

Rev-dep is built in Go, a compiled systems language optimized for concurrency and raw execution speed, whereas knip.dev runs on Node.js. This architectural difference allows Rev-dep to analyze dependency graphs and detect dead code up to 20x faster. For large monorepos or complex codebases — like the 207-module architecture powering Mewayz's business OS at app.mewayz.com — that performance gap translates into real time saved on every CI run.

How much dead code does a typical growing project accumulate?

Studies and anecdotal reports from engineering teams suggest that mature codebases can carry anywhere from 10% to 35% unused or unreachable code. The problem compounds as teams scale — features get deprecated, APIs change, and modules are abandoned without cleanup. Platforms like Mewayz, which consolidates over 207 business modules into a single $19/mo operating system, rely heavily on systematic dead code detection to keep the codebase lean and maintainable.

Is Rev-dep suitable for teams that don't use JavaScript or TypeScript?

Rev-dep is currently focused on JavaScript and TypeScript ecosystems, making it a direct alternative to knip.dev for those environments. Support for additional languages may expand as the project matures. If your team builds web-based products or SaaS tools — similar to how Mewayz delivers its full business OS at app.mewayz.com — and your stack is JS/TS-heavy, Rev-dep is well worth evaluating as part of your developer toolchain today.

Can I integrate Rev-dep into my existing CI/CD pipeline?

Yes. Rev-dep is designed as a CLI tool, making it straightforward to drop into any CI/CD pipeline alongside your existing linting and testing steps. Its speed advantage is especially valuable in automated pipelines where faster feedback loops reduce developer wait times. Whether you're running a lean startup or managing a full-featured platform like Mewayz's $19/mo business OS, integrating dead code analysis into your pipeline helps enforce codebase hygiene at every merge.

Prøv Mewayz Gratis

Alt-i-ét platform til CRM, fakturering, projekter, HR & mere. Ingen kreditkort kræves.

Begynd at administrere din virksomhed smartere i dag.

Tilslut dig 30,000+ virksomheder. Gratis plan for altid · Ingen kreditkort nødvendig.

Fandt du dette nyttigt? Del det.

Klar til at sætte dette i praksis?

Tilslut dig 30,000+ virksomheder, der bruger Mewayz. Gratis plan for evigt — ingen kreditkort nødvendig.

Start gratis prøveperiode →

Klar til at handle?

Start din gratis Mewayz prøveperiode i dag

Alt-i-ét forretningsplatform. Ingen kreditkort nødvendig.

Start gratis →

14 dages gratis prøveperiode · Ingen kreditkort · Annuller når som helst