
Chargement
Code mort ☠️

What is going on ?
Pour tester / pour le TD :
•Projet ms-node-server
Les outils utilisés :
•Knip
La documentation utile / pour aller plus loin :
•Onepoint - Entropie des Systèmes
•Urban Linker - Code Legacy
Usecase
C'est quoi le fichierold.jsà la racine du projet ?
Il y a vraiment 3 fonctionslogin(email, pwd)?!
Kevin, ptin, t'a mis toutes les dépendances de la terre dans le projet !
But du jeu
Toujours dans l'optique d'améliorer la communication dans l'équipe (et son code, et ses perfs et donc préserver ses nerfs), il est important de garder un oeil sur la dette technique.
Les deux principaux points à vérifier sont :
•La présence decode mort(que l'on peut déjà apercevoir avec le Linter) et identifier son origine.
•Lesdépendances inutilesqui auront pour impact une utilisation plus importante des ressources ainsi que des problèmes de maintenabilités.
Et bien d'autres points tels quel'architecture globale du projet,la lisibilité du code,l'imapct sur les autres outils (linter, code coverage, etc...), etc...
LeHow ToavecKnip
Pour commencer, nous allons utiliserKnip, outil utilisé en NodeJS et notamment avec ESLint.
Commençons par l'ajouter à notre projet :
$ npm init @knip/configVous pouvez dès à présent utiliser Knip avec sa configuration par défaut, via la commande :
$ npm run knipExample :
$ npm run knip
> ms-node-server@1.0.0 knip
> knip
Unused files (2)
routes/main.js
sheepManager/sheepfold.js
Unused dependencies (3)
express-session package.json
lodash package.json
pug package.json
Unused devDependencies (1)
chai package.json
A vous de jouer !
Ajoutez le Knip (ou équivalent) à votre projet !
Plusieurs réflexion à avoir par rapport à l'intégration d'outils de gestion de la dette technique dans notre process :
• Vise-t-on uniquement notre code, les dépendances externes, les deux ?
• Est-ce que l'on vise uniquement les fichiers ou également les portions de codes dans les fichiers ?
• Doit-on mettre une limite (pourcentage ou autre) qui invalide automatiquement un build ou une CI pour éviter une accumulation et forcer un clean régulier du projet ?