Hacker News

Wys HN: Rev-dep – 20x vinniger knip.dev alternatiewe bou in Go

Ontdek rev-dep, 'n Go-built dooie kode opsporingsinstrument wat 20x vinniger is as knip.dev. Verkort boutye en maak jou kodebasis skoon vir groeiende sagtewarespanne.

7 min lees

Mewayz Team

Editorial Team

Hacker News

Die verborge belasting op elke groeiende sagtewarespan

Elke sagtewareprojek wat lank genoeg oorleef, staar uiteindelik dieselfde stil krisis in die gesig: die kodebasis begin vinniger groei as wat die span dit kan verstaan. Funksies wat niemand roep nie, uitvoere wat geskep is vir 'n kenmerk wat in 2022 verskeep is en stilweg afgekeur is, komponente wat op skyf leef, maar nooit 'n blaaier bereik nie. Dit is nie slordigheid nie - dit is fisika. Spanne beweeg vinnig, vereistes verander en entropie is meedoënloos. Die vraag is nie of jou kodebasis dooie kode het nie. Die vraag is hoeveel dit jou nou kos.

Volgens navorsing van Google se ingenieursproduktiwiteitspan bestee ontwikkelaars gemiddeld 42% van hul koderingstyd om bestaande kode te lees en te verstaan ​​eerder as om nuwe funksionaliteit te skryf. Wanneer daardie bestaande kode duisende reëls insluit wat nie meer enige doel dien nie, skeef daardie persentasie selfs hoër. Vir 'n span van tien ingenieurs is dit in werklikheid vier voltydse werknemers wat niks produktiefs doen nie - nie omdat hulle lui is nie, maar omdat hul gereedskap nie tred hou met die snelheid waarteen sagteware verouder nie.

Dit is hoekom 'n nuwe golf van ontwikkelaargereedskap wat op stelseltale soos Go en Rust gebou is, werklike opwinding in ingenieurskringe veroorsaak. Gereedskap soos Rev-dep - 'n omgekeerde afhanklikheid-ontleder wat beweer dat dit 20x vinniger loop as die gewilde JavaScript-gebaseerde knip.dev - verteenwoordig meer as net inkrementele verbetering. Hulle dui op 'n fundamentele herbesinning van hoe ons die ontwikkelingsproses self instrumenteer.

Wat omgekeerde afhanklikheidsanalise eintlik doen

Voordat jy verstaan hoekom spoed so belangrik is, help dit om te verstaan wat afhanklikheidsanalise-instrumente eintlik doen. In 'n JavaScript- of TypeScript-projek word elke lêer vanaf ander lêers ingevoer. Elke funksie, klas of konstante wat vanaf 'n module uitgevoer word, skep 'n potensiële afhanklikheid - iets waarop ander dele van die kodebasis kan staatmaak. "Omgekeerde" afhanklikheidsanalise verander hierdie perspektief: in plaas daarvan om te vra "waarvan hang hierdie module af", vra dit "wat hang van hierdie module af?"

As die antwoord op daardie tweede vraag "niks" is nie, het jy dooie kode gevind. ’n Uitvoer wat niks invoer nie, is afval. 'n Funksie wat niks noem nie, is tegniese skuld met 'n maandelikse rentekoers. Omgekeerde afhanklikheidnutsgoed loop sistematies jou hele projekgrafiek, karteer elke verwantskap tussen modules en plaas die nodusse wat geen inkomende verbindings het nie. Die resultaat is 'n presiese oudit van alles in jou kodebasis wat veilig verwyder kan word.

💡 WETEN JY?

Mewayz vervang 8+ sake-instrumente in een platform

CRM · Fakturering · HR · Projekte · Besprekings · eCommerce · POS · Ontleding. Gratis vir altyd plan beskikbaar.

Begin gratis →

Knip.dev doen dit goed vir JavaScript- en TypeScript-projekte, en dit word wyd gerespekteer in die gemeenskap. Maar dit is in JavaScript geskryf, wat beteken dat dit op Node.js loop, wat beteken dat dit al Node se enkeldraadwerkverrigtingbeperkings erf wanneer grootskaalse lêerstelsel-oorgang en simboolanalise gedoen word. Vir 'n projek met 500 lêers is dit goed. Vir 'n projek met 50 000 lêers - die soort monorepo wat die regte onderneming SaaS-produkte aandryf - kan die ontleding minute neem. En minute, by die kadens waar moderne CI/CD-pyplyne werk, is 'n transaksiebreker.

Hoekom gaan verander die berekening

Go is van die grond af ontwerp vir presies die soort werklading wat afhanklikheidsanalise vereis: vinnige lêer I/O, uitstekende gelyktydige primitiewe en minimale looptyd oorhoofse koste. Waar Node.js een taak op 'n slag op 'n enkele draad verwerk en staatmaak op terugroepe en beloof om parallellisme te vervals, kan Go duisende goroutines voortbring wat werklik parallel uitgevoer word oor alle beskikbare SVE-kerns. Vir 'n taak wat behels die lees van honderde lêers, die ontleding van hul AST's en die bou van 'n grafiek van simboolverwantskappe, vertaal hierdie argitektoniese verskil direk in muurklokprestasie.

Die 20x-versnelling wat deur Rev-dep beweer word, is nie magie nie - dit is wat gebeur wanneer jy die regte taal by die regte probleem pas. Go se saamgestelde aard beteken ook geen JIT-opwarmingstraf nie. Van koue begin tot volledige analise, 'n Go-binêre werk op naby-piek 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.

Probeer Mewayz Gratis

All-in-one platform vir BBR, faktuur, projekte, HR & meer. Geen kredietkaart vereis nie.

Begin om jou besigheid vandag slimmer te bestuur.

Sluit aan by 30,000+ besighede. Gratis vir altyd plan · Geen kredietkaart nodig nie.

Gereed om dit in praktyk te bring?

Sluit aan by 30,000+ besighede wat Mewayz gebruik. Gratis vir altyd plan — geen kredietkaart nodig nie.

Begin Gratis Proeflopie →

Gereed om aksie te neem?

Begin jou gratis Mewayz proeftyd vandag

Alles-in-een besigheidsplatform. Geen kredietkaart vereis nie.

Begin gratis →

14-dae gratis proeftyd · Geen kredietkaart · Kan enige tyd gekanselleer word