Hacker News

Mostrar HN: Rev-dep: compilación alternativa de knip.dev 20 veces más rápida en Go

Descubra rev-dep, una herramienta de detección de códigos muertos creada por Go que es 20 veces más rápida que knip.dev. Reduzca los tiempos de compilación y limpie su base de código para equipos de software en crecimiento.

8 lectura mínima

Mewayz Team

Editorial Team

Hacker News

El impuesto oculto para cada equipo de software en crecimiento

Cada proyecto de software que sobrevive el tiempo suficiente eventualmente enfrenta la misma crisis silenciosa: el código base comienza a crecer más rápido de lo que el equipo puede entender. Funciones que nadie llama, exportaciones que se crearon para una función que se lanzó en 2022 y quedó silenciosamente obsoleta, componentes que viven en el disco pero que nunca llegan a un navegador. Esto no es descuido, es física. Los equipos se mueven rápido, los requisitos cambian y la entropía es implacable. La pregunta no es si su código base tiene código inactivo. La pregunta es cuánto te está costando ahora mismo.

Según una investigación del equipo de productividad de ingeniería de Google, los desarrolladores dedican un promedio del 42% de su tiempo de codificación a leer y comprender el código existente en lugar de escribir nuevas funciones. Cuando ese código existente incluye miles de líneas que ya no sirven para nada, ese porcentaje aumenta aún más. Para un equipo de diez ingenieros, son efectivamente cuatro empleados de tiempo completo que no hacen nada productivo, no porque sean vagos, sino porque sus herramientas no siguen el ritmo con el que el software envejece.

Es por eso que una nueva ola de herramientas para desarrolladores basadas en lenguajes de sistemas como Go y Rust está generando un verdadero entusiasmo en los círculos de ingeniería. Herramientas como Rev-dep, un analizador de dependencia inversa que afirma funcionar 20 veces más rápido que el popular knip.dev basado en JavaScript, representan más que una simple mejora incremental. Señalan un replanteamiento fundamental de cómo instrumentamos el proceso de desarrollo en sí.

¿Qué hace realmente el análisis de dependencia inversa?

Antes de comprender por qué la velocidad es tan importante, es útil comprender qué están haciendo realmente las herramientas de análisis de dependencia. En un proyecto de JavaScript o TypeScript, cada archivo se importa desde otros archivos. Cada función, clase o constante que se exporta desde un módulo crea una dependencia potencial, algo en lo que otras partes del código base podrían depender. El análisis de dependencia "inverso" invierte esta perspectiva: en lugar de preguntar "¿de qué depende este módulo", pregunta "¿qué depende de este módulo?"

Si la respuesta a esa segunda pregunta es "nada", ha encontrado un código inactivo. Una exportación que nada importa es desperdicio. Una función que nada llama es la deuda técnica con tasa de interés mensual. Las herramientas de dependencia inversa recorren sistemáticamente todo el gráfico de su proyecto, mapean cada relación entre módulos y muestran los nodos que no tienen conexiones entrantes. El resultado es una auditoría precisa de todo lo que hay en su código base que podría eliminarse de forma segura.

💡 ¿SABÍAS QUE?

Mewayz reemplaza 8+ herramientas de negocio en una plataforma

CRM · Facturación · RRHH · Proyectos · Reservas · Comercio electrónico · TPV · Análisis. Plan gratuito para siempre disponible.

Comenzar Gratis →

Knip.dev hace esto bien para proyectos de JavaScript y TypeScript, y es ampliamente respetado en la comunidad. Pero está escrito en JavaScript, lo que significa que se ejecuta en Node.js, lo que significa que hereda todas las limitaciones de rendimiento de un solo subproceso de Node al realizar análisis transversales y de símbolos del sistema de archivos a gran escala. Para un proyecto con 500 archivos, esto está bien. Para un proyecto con 50.000 archivos (el tipo de monorepo que impulsa los productos SaaS empresariales reales), el análisis puede llevar unos minutos. Y los minutos, con la cadencia con la que operan los canales modernos de CI/CD, son un factor decisivo.

Por qué Go cambia el cálculo

Go fue diseñado desde cero exactamente para el tipo de carga de trabajo que exige el análisis de dependencia: E/S de archivos rápida, excelentes primitivas de simultaneidad y sobrecarga mínima de tiempo de ejecución. Mientras que Node.js procesa una tarea a la vez en un solo subproceso y se basa en devoluciones de llamadas y promesas de paralelismo falso, Go puede generar miles de rutinas que realmente se ejecutan en paralelo en todos los núcleos de CPU disponibles. Para una tarea que implica leer cientos de archivos, analizar sus AST y crear un gráfico de relaciones de símbolos, esta diferencia arquitectónica se traduce directamente en el rendimiento del reloj de pared.

La aceleración de 20 veces afirmada por Rev-dep no es mágica: es lo que sucede cuando combinas el lenguaje correcto con el problema correcto. La naturaleza compilada de Go también significa que no hay penalización por calentamiento JIT. Desde el arranque en frío hasta el análisis completo, un binario Go está funcionando casi al máximo 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.

Prueba Mewayz Gratis

Plataforma todo en uno para CRM, facturación, proyectos, RRHH y más. No se requiere tarjeta de crédito.

Comienza a gestionar tu negocio de manera más inteligente hoy.

Únete a 30,000+ empresas. Plan gratuito para siempre · No se requiere tarjeta de crédito.

¿Encontró esto útil? Compártelo.

¿Listo para poner esto en práctica?

Únete a los 30,000+ negocios que usan Mewayz. Plan gratis para siempre — no se requiere tarjeta de crédito.

Comenzar prueba gratuita →

¿Listo para tomar acción?

Comienza tu prueba gratuita de Mewayz hoy

Plataforma empresarial todo en uno. No se requiere tarjeta de crédito.

Comenzar Gratis →

Prueba gratuita de 14 días · Sin tarjeta de crédito · Cancela en cualquier momento