Hacker News

Mostrar HN: Rev-dep – construção alternativa knip.dev 20x mais rápida em Go

Descubra o rev-dep, uma ferramenta de detecção de código morto desenvolvida pela Go que é 20x mais rápida que o knip.dev. Reduza o tempo de construção e limpe sua base de código para equipes de software em crescimento.

8 minutos de leitura

Mewayz Team

Editorial Team

Hacker News

O imposto oculto sobre cada equipe de software em crescimento

Todo projeto de software que sobrevive por tempo suficiente eventualmente enfrenta a mesma crise silenciosa: a base de código começa a crescer mais rápido do que a equipe consegue entender. Funções que ninguém chama, exportações que foram criadas para um recurso lançado em 2022 e que foi silenciosamente obsoleto, componentes que ficam no disco, mas nunca chegam ao navegador. Isso não é desleixo – é física. As equipes avançam rapidamente, os requisitos mudam e a entropia é implacável. A questão não é se sua base de código possui código morto. A questão é quanto isso está custando para você agora.

De acordo com uma pesquisa da equipe de produtividade de engenharia do Google, os desenvolvedores gastam em média 42% do seu tempo de codificação lendo e entendendo o código existente, em vez de escrever novas funcionalidades. Quando o código existente inclui milhares de linhas que não servem mais a nenhum propósito, essa porcentagem aumenta ainda mais. Para uma equipe de dez engenheiros, são efetivamente quatro funcionários em tempo integral que não fazem nada de produtivo – não porque sejam preguiçosos, mas porque suas ferramentas não acompanham a velocidade com que o software envelhece.

É por isso que uma nova onda de ferramentas para desenvolvedores construídas em linguagens de sistemas como Go e Rust está gerando grande entusiasmo nos círculos de engenharia. Ferramentas como Rev-dep – um analisador de dependência reversa que afirma ser executado 20 vezes mais rápido do que o popular knip.dev baseado em JavaScript – representam mais do que apenas melhorias incrementais. Eles sinalizam uma repensação fundamental de como instrumentamos o próprio processo de desenvolvimento.

O que a análise de dependência reversa realmente faz

Antes de entender por que a velocidade é tão importante, é útil entender o que as ferramentas de análise de dependência estão realmente fazendo. Em um projeto JavaScript ou TypeScript, cada arquivo é importado de outros arquivos. Cada função, classe ou constante exportada de um módulo cria uma dependência potencial – algo em que outras partes da base de código podem confiar. A análise de dependência "reversa" inverte essa perspectiva: em vez de perguntar "do que este módulo depende", ela pergunta "o que depende deste módulo?"

Se a resposta à segunda pergunta for “nada”, você encontrou um código morto. Uma exportação que nada importa é desperdício. Uma função que nada chama é a dívida técnica com taxa de juros mensal. As ferramentas de dependência reversa percorrem sistematicamente todo o gráfico do projeto, mapeiam todos os relacionamentos entre os módulos e revelam os nós que não possuem conexões de entrada. O resultado é uma auditoria precisa de tudo em sua base de código que pode ser removido com segurança.

💡 VOCÊ SABIA?

A Mewayz substitui 8+ ferramentas empresariais numa única plataforma

CRM · Faturação · RH · Projetos · Reservas · eCommerce · POS · Análise. Plano gratuito para sempre disponível.

Comece grátis →

Knip.dev faz isso bem para projetos JavaScript e TypeScript e é amplamente respeitado na comunidade. Mas está escrito em JavaScript, o que significa que é executado em Node.js, o que significa que herda todas as restrições de desempenho de thread único do Node ao fazer travessia do sistema de arquivos em grande escala e análise de símbolos. Para um projeto com 500 arquivos, tudo bem. Para um projeto com 50.000 arquivos — o tipo de monorepo que alimenta produtos SaaS empresariais reais — a análise pode levar minutos. E minutos, na cadência em que os pipelines modernos de CI/CD operam, são um obstáculo.

Por que Go muda o cálculo

Go foi projetado desde o início exatamente para o tipo de carga de trabalho que a análise de dependência exige: E/S rápida de arquivos, primitivas de simultaneidade excelentes e sobrecarga mínima de tempo de execução. Enquanto o Node.js processa uma tarefa por vez em um único thread e depende de retornos de chamada e promessas de paralelismo falso, o Go pode gerar milhares de goroutines que são genuinamente executadas em paralelo em todos os núcleos de CPU disponíveis. Para uma tarefa que envolve a leitura de centenas de arquivos, a análise de seus ASTs e a construção de um gráfico de relacionamentos de símbolos, essa diferença arquitetônica se traduz diretamente no desempenho de um relógio de parede.

A aceleração de 20x reivindicada pelo Rev-dep não é mágica – é o que acontece quando você combina a linguagem certa com o problema certo. A natureza compilada do Go também significa nenhuma penalidade de aquecimento JIT. Desde a inicialização a frio até a análise completa, um binário Go está operando próximo ao pico 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.

Experimente o Mewayz Gratuitamente

Plataforma tudo-em-um para CRM, faturação, projetos, RH e muito mais. Cartão de crédito não necessário.

Comece a gerenciar seu negócio de forma mais inteligente hoje

Присоединяйтесь к 30,000+ компаниям. Бесплатный тариф навсегда · Без банковской карты.

Pronto para colocar isto em prática?

Junte-se a 30,000+ empresas a usar o Mewayz. Plano gratuito para sempre — cartão de crédito não necessário.

Iniciar Teste Gratuito →

Pronto para agir?

Inicie seu teste gratuito do Mewayz hoje

Plataforma de negócios tudo-em-um. Cartão de crédito não necessário.

Comece grátis →

Teste gratuito de 14 dias · Sem cartão de crédito · Cancele a qualquer momento