Hacker News

Vis HN: Rev-dep – 20x raskere knip.dev alternativ oppbygging i Go

Oppdag rev-dep, et Go-bygget dødkodedeteksjonsverktøy som er 20 ganger raskere enn knip.dev. Reduser byggetiden og rengjør kodebasen for voksende programvareteam.

7 min read

Mewayz Team

Editorial Team

Hacker News

Den skjulte skatten på hvert voksende programvareteam

Hvert programvareprosjekt som overlever lenge nok møter til slutt den samme stille krisen: kodebasen begynner å vokse raskere enn teamet kan forstå det. Funksjoner ingen ringer til, eksporter som ble opprettet for en funksjon som ble levert i 2022 og som stille ble avviklet, komponenter som lever på disk, men som aldri når en nettleser. Dette er ikke slurv – det er fysikk. Lag beveger seg raskt, kravene endres, og entropien er nådeløs. Spørsmålet er ikke om kodebasen din har død kode. Spørsmålet er hvor mye det koster deg akkurat nå.

I følge forskning fra Googles ingeniørproduktivitetsteam bruker utviklere i gjennomsnitt 42 % av kodetiden sin på å lese og forstå eksisterende kode i stedet for å skrive ny funksjonalitet. Når den eksisterende koden inkluderer tusenvis av linjer som ikke lenger tjener noen hensikt, blir denne prosentandelen enda høyere. For et team på ti ingeniører er det faktisk fire heltidsansatte som ikke gjør noe produktivt – ikke fordi de er late, men fordi verktøyene deres ikke holder tritt med hastigheten programvaren eldes med.

Dette er grunnen til at en ny bølge av utviklerverktøy bygget på systemspråk som Go og Rust genererer ekte spenning i ingeniørkretser. Verktøy som Rev-dep – en omvendt avhengighetsanalysator som hevder å kjøre 20 ganger raskere enn den populære JavaScript-baserte knip.dev – representerer mer enn bare inkrementell forbedring. De signaliserer en grunnleggende nytenkning av hvordan vi instrumenterer selve utviklingsprosessen.

Hva omvendt avhengighetsanalyse faktisk gjør

Før du forstår hvorfor hastighet betyr så mye, hjelper det å forstå hva avhengighetsanalyseverktøy faktisk gjør. I et JavaScript- eller TypeScript-prosjekt importeres hver fil fra andre filer. Hver funksjon, klasse eller konstant som blir eksportert fra en modul skaper en potensiell avhengighet - noe som andre deler av kodebasen kan stole på. "Omvendt" avhengighetsanalyse snur dette perspektivet: i stedet for å spørre "hva er denne modulen avhengig av", spør den "hva avhenger av denne modulen?"

Hvis svaret på det andre spørsmålet er "ingenting", har du funnet død kode. En eksport som ingenting importerer er avfall. En funksjon som ingenting kaller er teknisk gjeld med månedlig rente. Verktøy for omvendt avhengighet går systematisk gjennom hele prosjektgrafen, kartlegg alle forhold mellom moduler, og sett opp nodene som ikke har noen inngående forbindelser. Resultatet er en presis revisjon av alt i kodebasen din som trygt kan fjernes.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Knip.dev gjør dette godt for JavaScript- og TypeScript-prosjekter, og det er allment respektert i samfunnet. Men det er skrevet i JavaScript, noe som betyr at det kjører på Node.js, noe som betyr at det arver alle Nodes entrådede ytelsesbegrensninger når du utfører storskala filsystemgjennomgang og symbolanalyse. For et prosjekt med 500 filer er dette greit. For et prosjekt med 50 000 filer - den typen monorepo som driver ekte SaaS-produkter for bedrifter - kan analysen ta minutter. Og minutter, ved takten som moderne CI/CD-rørledninger opererer på, er en avtalebryter.

Hvorfor Go endrer beregningen

Go ble designet fra bunnen av for akkurat den type arbeidsbelastning som avhengighetsanalyse krever: rask fil-I/O, utmerkede samtidighetsprimitiver og minimale driftskostnader. Der Node.js behandler én oppgave om gangen på en enkelt tråd og er avhengig av tilbakeringinger og lover å falske parallellisme, kan Go skape tusenvis av goroutiner som virkelig kjøres parallelt på tvers av alle tilgjengelige CPU-kjerner. For en oppgave som involverer å lese hundrevis av filer, analysere deres AST-er og bygge en graf over symbolrelasjoner, oversettes denne arkitektoniske forskjellen direkte til veggklokkeytelse.

20x speedup hevdet av Rev-dep er ikke magi - det er hva som skjer når du matcher riktig språk med riktig problem. Gos kompilerte natur betyr heller ingen JIT-oppvarmingsstraff. Fra kald start til fullstendig analyse, en Go-binær opererer på nesten topp 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.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime