Hacker News

Afficher HN : Rev-dep – Construction alternative à knip.dev 20 fois plus rapide dans Go

Découvrez rev-dep, un outil de détection de code mort développé par Go qui est 20 fois plus rapide que knip.dev. Réduisez les temps de construction et nettoyez votre base de code pour les équipes logicielles en pleine croissance.

8 lecture min.

Mewayz Team

Editorial Team

Hacker News

La taxe cachée sur chaque équipe logicielle en pleine croissance

Chaque projet logiciel qui survit assez longtemps finit par être confronté à la même crise silencieuse : la base de code commence à croître plus rapidement que l'équipe ne peut la comprendre. Des fonctions que personne n'appelle, des exportations créées pour une fonctionnalité livrée en 2022 et devenue discrètement obsolète, des composants qui vivent sur le disque mais n'atteignent jamais un navigateur. Ce n’est pas de la négligence, c’est de la physique. Les équipes évoluent rapidement, les exigences changent et l'entropie est implacable. La question n'est pas de savoir si votre base de code contient du code mort. La question est de savoir combien cela vous coûte actuellement.

Selon une étude de l'équipe d'ingénierie de productivité de Google, les développeurs passent en moyenne 42 % de leur temps de codage à lire et à comprendre le code existant plutôt qu'à écrire de nouvelles fonctionnalités. Lorsque ce code existant comprend des milliers de lignes qui ne servent plus à rien, ce pourcentage est encore plus élevé. Pour une équipe de dix ingénieurs, cela représente en réalité quatre employés à temps plein qui ne font rien de productif, non pas parce qu'ils sont paresseux, mais parce que leurs outils ne suivent pas le rythme auquel les logiciels vieillissent.

C'est pourquoi une nouvelle vague d'outils de développement basés sur des langages système tels que Go et Rust suscite un réel enthousiasme dans les cercles d'ingénierie. Des outils comme Rev-dep – un analyseur de dépendance inverse qui prétend s’exécuter 20 fois plus vite que le populaire knip.dev basé sur JavaScript – représentent plus qu’une simple amélioration incrémentielle. Ils témoignent d’une refonte fondamentale de la manière dont nous instrumentons le processus de développement lui-même.

Ce que fait réellement l’analyse de dépendance inverse

Avant de comprendre pourquoi la vitesse est si importante, il est utile de comprendre ce que font réellement les outils d’analyse des dépendances. Dans un projet JavaScript ou TypeScript, chaque fichier est importé à partir d'autres fichiers. Chaque fonction, classe ou constante exportée à partir d'un module crée une dépendance potentielle, quelque chose sur lequel d'autres parties de la base de code pourraient s'appuyer. L'analyse de dépendance "inverse" inverse cette perspective : au lieu de demander "de quoi dépend ce module", elle demande "de quoi dépend ce module ?"

Si la réponse à cette deuxième question est « rien », vous avez trouvé du code mort. Une exportation que rien n’importe est un déchet. Une fonction que rien n’appelle est la dette technique avec un taux d’intérêt mensuel. Les outils de dépendance inversée parcourent systématiquement l'ensemble du graphique de votre projet, mappent chaque relation entre les modules et font apparaître les nœuds qui n'ont pas de connexions entrantes. Le résultat est un audit précis de tout ce qui dans votre base de code pourrait être supprimé en toute sécurité.

💡 LE SAVIEZ-VOUS ?

Mewayz remplace 8+ outils métier sur une seule plateforme

CRM · Facturation · RH · Projets · Réservations · eCommerce · PDV · Analytique. Forfait gratuit disponible à vie.

Commencez gratuitement →

Knip.dev le fait bien pour les projets JavaScript et TypeScript, et il est largement respecté dans la communauté. Mais il est écrit en JavaScript, ce qui signifie qu'il s'exécute sur Node.js, ce qui signifie qu'il hérite de toutes les contraintes de performances monothread de Node lors de la traversée du système de fichiers et de l'analyse des symboles à grande échelle. Pour un projet de 500 fichiers, c'est très bien. Pour un projet comportant 50 000 fichiers – le genre de monorepo qui alimente les véritables produits SaaS d’entreprise – l’analyse peut prendre quelques minutes. Et les minutes, à la cadence à laquelle les pipelines CI/CD modernes fonctionnent, sont un facteur décisif.

Pourquoi aller change le calcul

Go a été conçu dès le départ pour exactement le type de charge de travail qu'exige l'analyse des dépendances : E/S de fichiers rapides, d'excellentes primitives de concurrence et une surcharge d'exécution minimale. Là où Node.js traite une tâche à la fois sur un seul thread et s'appuie sur des rappels et promet de simuler le parallélisme, Go peut générer des milliers de goroutines qui s'exécutent véritablement en parallèle sur tous les cœurs de processeur disponibles. Pour une tâche qui implique la lecture de centaines de fichiers, l’analyse de leurs AST et la création d’un graphique des relations entre symboles, cette différence architecturale se traduit directement par des performances d’horloge murale.

L'accélération 20x revendiquée par Rev-dep n'est pas magique : c'est ce qui se produit lorsque vous faites correspondre la bonne langue au bon problème. La nature compilée de Go signifie également aucune pénalité d'échauffement JIT. Du démarrage à froid à l'analyse complète, un binaire Go fonctionne à une valeur p proche du pic.

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.

Essayer Mewayz gratuitement

Plateforme tout-en-un pour le CRM, la facturation, les projets, les RH & plus encore. Aucune carte de crédit requise.

Commencez à gérer votre entreprise plus intelligemment dès aujourd'hui.

Rejoignez 30,000+ entreprises. Plan gratuit à vie · Aucune carte bancaire requise.

Vous avez trouvé cela utile ? Partagez-le.

Prêt à passer à la pratique ?

Rejoignez 30,000+ entreprises qui utilisent Mewayz. Plan gratuit à vie — aucune carte de crédit requise.

Commencer l'essai gratuit →

Prêt à passer à l'action ?

Commencez votre essai gratuit Mewayz aujourd'hui

Plateforme commerciale tout-en-un. Aucune carte nécessaire.

Commencez gratuitement →

Essai gratuit de 14 jours · Pas de carte de crédit · Annulation à tout moment