Hacker News

HN megjelenítése: Rev-dep – 20x gyorsabb knip.dev alternatív build a Go-ban

Fedezze fel a rev-dep-et, egy jól beépített holtkód-észlelő eszközt, amely 20-szor gyorsabb, mint a knip.dev. Csökkentse a felépítési időt, és tisztítsa meg kódbázisát a növekvő szoftvercsapatok számára.

9 min read

Mewayz Team

Editorial Team

Hacker News

Minden növekvő szoftvercsapat rejtett adója

Minden szoftverprojekt, amely elég sokáig fennmarad, végül ugyanazzal a csendes válsággal néz szembe: a kódbázis gyorsabban kezd növekedni, mint ahogy a csapat megérti. Funkciók, amelyeket senki sem hív meg, exportál, amelyeket egy 2022-ben szállított és csendesen elavult funkcióhoz hoztak létre, olyan összetevőket, amelyek a lemezen élnek, de soha nem érik el a böngészőt. Ez nem hanyagság, hanem fizika. A csapatok gyorsan mozognak, a követelmények változnak, és az entrópia könyörtelen. A kérdés nem az, hogy a kódbázisodban van-e halott kód. A kérdés az, hogy most mennyibe kerül.

A Google mérnöki termelékenységi csapatának kutatása szerint a fejlesztők kódolási idejük átlagosan 42%-át a meglévő kód olvasásával és megértésével töltik, ahelyett, hogy új funkciókat írnának. Ha a meglévő kód több ezer sort tartalmaz, amelyek már nem szolgálnak semmilyen célt, ez a százalék még magasabbra torzul. Egy tíz mérnökből álló csapatnál ez gyakorlatilag azt jelenti, hogy négy teljes munkaidős alkalmazott nem csinál semmi produktívat – nem azért, mert lusták, hanem azért, mert eszközeik nem tartanak lépést a szoftver öregedésének sebességével.

Ez az oka annak, hogy a fejlesztői eszközök új hulláma, amely olyan rendszernyelvekre épül, mint a Go és a Rust, igazi izgalmat kelt a mérnöki körökben. Az olyan eszközök, mint a Rev-dep – egy fordított függőségi elemző, amely állítása szerint 20-szor gyorsabban fut, mint a népszerű JavaScript-alapú knip.dev – többet jelentenek, mint csak fokozatos javulást. Azt jelzik, hogy alapvetően újragondoljuk, hogyan eszközöljük magát a fejlesztési folyamatot.

Mit csinál valójában a fordított függőségi elemzés?

Mielőtt megértené, miért számít annyira a sebesség, segít megérteni, hogy valójában mit csinálnak a függőségi elemzési eszközök. JavaScript- vagy TypeScript-projektekben minden fájl más fájlokból importálódik. Minden függvény, osztály vagy konstans, amelyet egy modulból exportálunk, potenciális függőséget hoz létre – amit a kódbázis más részei is támaszkodhatnak. A "fordított" függőségi elemzés megfordítja ezt a perspektívát: ahelyett, hogy megkérdezné, hogy "mitől függ ez a modul", azt kérdezi, hogy "mi függ ettől a modultól?"

Ha a második kérdésre a válasz "semmi", akkor halott kódot talált. Az az export, amelyet semmi sem importál, hulladék. Egy funkció, amit semmi sem hív meg, a technikai tartozás havi kamattal. A fordított függőségi eszközök szisztematikusan végigjárják a teljes projektgrafikont, leképeznek minden kapcsolatot a modulok között, és felszínre hozzák azokat a csomópontokat, amelyeknek nincs bejövő kapcsolata. Az eredmény egy precíz auditálás a kódbázisban található mindenről, ami biztonságosan eltávolítható.

💡 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 →

A Knip.dev ezt jól teszi a JavaScript és TypeScript projekteknél, és széles körben elismert a közösségben. De JavaScriptben van írva, ami azt jelenti, hogy Node.js-en fut, ami azt jelenti, hogy örökli a Node összes egyszálú teljesítménykorlátját, amikor nagyszabású fájlrendszer-bejárást és szimbólumelemzést végez. Egy 500 fájlt tartalmazó projektnél ez rendben van. Egy 50 000 fájlt tartalmazó projekt esetében – ez a fajta monorepo, amely valódi vállalati SaaS-termékeket üzemeltet – az elemzés percekig is eltarthat. És a percek, a modern CI/CD csővezetékek működési ütemében megszakító.

A Miért Go megváltoztatja a számítást

A Go-t az alapoktól kezdve pontosan arra a munkaterhelésre tervezték, amelyet a függőségi elemzés megkíván: gyors fájl I/O, kiváló párhuzamossági primitívek és minimális futási többletterhelés. Ahol a Node.js egyszerre csak egy feladatot dolgoz fel egyetlen szálon, és a visszahívásokra és a hamis párhuzamosság ígéreteire támaszkodik, a Go több ezer gorutint képes létrehozni, amelyek valóban párhuzamosan futnak az összes rendelkezésre álló CPU magon. Egy olyan feladatnál, amely több száz fájl olvasását, az AST-ek elemzését és a szimbólumkapcsolatok grafikonjának felépítését foglalja magában, ez az architektúrabeli különbség közvetlenül a falióra teljesítményét jelenti.

A Rev-dep által állított 20-szoros gyorsulás nem varázslat – ez történik, ha a megfelelő nyelvet a megfelelő problémával párosítjuk. A Go összeállított jellege azt is jelenti, hogy nincs JIT bemelegítési büntetés. A hidegindítástól a teljes elemzésig a Go bináris a csúcs közeli p-n működik

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