Hacker News

Показати HN: Rev-dep – у 20 разів швидша альтернативна збірка knip.dev у Go

Відкрийте для себе rev-dep, розроблений компанією Go інструмент виявлення мертвого коду, який у 20 разів швидший за knip.dev. Скоротіть час створення та очистіть свою кодову базу для зростаючих команд програмістів.

4 min read

Mewayz Team

Editorial Team

Hacker News

Прихований податок на кожну зростаючу команду програмного забезпечення

Кожен програмний проект, який проіснував достатньо довго, зрештою стикається з такою ж тихою кризою: кодова база починає рости швидше, ніж команда може це зрозуміти. Функції, до яких ніхто не звертається, експорт, створений для функції, яка вийшла у 2022 році та тихо застаріла, компоненти, які живуть на диску, але ніколи не потрапляють у веб-переглядач. Це не неохайність — це фізика. Команди рухаються швидко, вимоги змінюються, а ентропія невпинна. Питання не в тому, чи є у вашій кодовій базі мертвий код. Питання в тому, скільки це вам зараз коштує.

Згідно з дослідженням інженерної групи продуктивності Google, розробники витрачають у середньому 42% свого часу на кодування, читаючи та розуміючи існуючий код, а не створюючи нові функції. Коли існуючий код містить тисячі рядків, які більше не служать жодній меті, цей відсоток ще більше спотворюється. Для команди з десяти інженерів це фактично чотири штатні працівники, які не роблять нічого продуктивного — не тому, що вони ліниві, а тому, що їхні інструменти не встигають за швидкістю, з якою старіє програмне забезпечення.

Ось чому нова хвиля інструментів для розробників, побудованих на таких системних мовах, як Go та Rust, викликає справжнє хвилювання в інженерних колах. Такі інструменти, як Rev-dep — аналізатор зворотних залежностей, який, як стверджується, працює у 20 разів швидше, ніж популярний knip.dev на основі JavaScript — представляють більше, ніж просто поступове вдосконалення. Вони сигналізують про фундаментальне переосмислення того, як ми інструментуємо сам процес розробки.

Що насправді робить аналіз зворотних залежностей

Перш ніж зрозуміти, чому швидкість так важлива, варто зрозуміти, що насправді роблять інструменти аналізу залежностей. У проекті JavaScript або TypeScript кожен файл імпортується з інших файлів. Кожна функція, клас або константа, які експортуються з модуля, створюють потенційну залежність — те, на що можуть спиратися інші частини кодової бази. «Зворотній» аналіз залежностей перевертає цю перспективу: замість запитання «від чого залежить цей модуль», він запитує «що залежить від цього модуля?»

Якщо відповідь на друге запитання «нічого», ви знайшли мертвий код. Експорт, який нічого не імпортує, є марнотратством. Функція, яку ніхто не називає, — це технічний борг із місячною процентною ставкою. Інструменти зворотних залежностей систематично переглядають увесь графік вашого проекту, відображають усі зв’язки між модулями та виявляють вузли, які не мають вхідних з’єднань. Результатом є точний аудит усього у вашій кодовій базі, що можна безпечно видалити.

💡 ВИ ЗНАЛИ?

Mewayz замінює 8+ бізнес-інструментів в одній платформі

CRM · Виставлення рахунків · HR · Проєкти · Бронювання · eCommerce · POS · Аналітика. Безкоштовний план назавжди.

Почати безкоштовно →

Knip.dev добре справляється з цим для проектів JavaScript і TypeScript, і його широко поважають у спільноті. Але він написаний на JavaScript, що означає, що він працює на Node.js, а це означає, що він успадковує всі однопотокові обмеження продуктивності Node під час виконання широкомасштабного обходу файлової системи та аналізу символів. Для проекту з 500 файлами це нормально. Для проекту з 50 000 файлів — такого типу монорепо, на якому працюють справжні корпоративні продукти SaaS — аналіз може зайняти кілька хвилин. І хвилини, на частоті, з якою працюють сучасні конвеєри CI/CD, порушують угоду.

Чому Go змінює розрахунок

Go було розроблено з нуля саме для того виду робочого навантаження, якого вимагає аналіз залежностей: швидкий файловий ввід/вивід, чудові примітиви паралельного виконання та мінімальні витрати часу виконання. Там, де Node.js обробляє одне завдання за раз в одному потоці та покладається на зворотні виклики та обіцяє підробити паралелізм, Go може породити тисячі gor-програм, які справді виконуються паралельно на всіх доступних ядрах ЦП. Для завдання, яке передбачає читання сотень файлів, розбір їхніх AST і побудову графіка зв’язків символів, ця архітектурна різниця безпосередньо перетворюється на продуктивність настінного годинника.

20-кратне прискорення, заявлене Rev-dep, не є магією — це те, що відбувається, коли ви підбираєте правильну мову до правильної проблеми. Компільований характер Go також означає відсутність штрафу за розминку JIT. Від «холодного» запуску до повного аналізу бінарний файл Go працює на майже піковому рівні 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.

Спробуйте Mewayz безкоштовно

Універсальна платформа для CRM, виставлення рахунків, проектів, HR та іншого. Без кредитної картки.

Почніть керувати своїм бізнесом розумніше вже сьогодні.

Приєднуйтесь до 30,000+ компаній. Безплатний тариф назавжди · Без кредитної картки.

Знайшли це корисним? Поділіться цим.

Готові застосувати це на практиці?

Приєднуйтесь до 30,000+ бізнесів, які використовують Mewayz. Безкоштовний тариф назавжди — кредитна карта не потрібна.

Почати пробний період →

Готові вжити заходів?

Почніть свій безкоштовний пробний період Mewayz сьогодні

Бізнес-платформа все в одному. Кредитна картка не потрібна.

Почати безкоштовно →

14-денний безкоштовний пробний період · Без кредитної картки · Скасуйте в будь-який час