Clean Code : quels avantages pour vos projets et l’efficacité des développeurs ?
Avez-vous déjà remarqué que plus une application est ancienne, plus la correction de bugs ou l’ajout de nouvelles fonctionnalités prend du temps ? Cette augmentation de temps signifie des coûts plus importants, soit en développement - analyse, implémentation et testing - soit en maintenance. Ce phénomène s’appelle la dette technique.
La raison : trop souvent les développeurs arrêtent leur travail lorsque leur code fonctionne et non lorsque leur code est bien fait.
Nous avons souhaité vous présenter une approche appliquée par nos équipes de développeurs : Le Clean Code. Cette proposition de l’industrie du software depuis 20 ans reste pourtant encore relativement méconnue dans certains domaines.
Des signes qui ne trompent pas
Voici quelques indicateurs qui expliquent les difficultés rencontrées avec le code de nombreux développements informatiques.
- [Commentaires] L’application montre des commentaires inappropriés, incorrectes, voire des morceaux de codes commentés pour une raison obscure
- [Environnement] L’application nécessite plusieurs étapes compliquées pour être déployée ou les tests sont compliqués à réaliser.
- [Fonctions] Les fonctions comportent trop d’arguments, des paramètres inutiles ou des fonctions qui ne sont plus appelées.
- [Code en Général] Il existe du code dupliqué ou non explicite, des vérifications qui ne sont pas faites, ou encore de code mort (jamais exécuté).
Rigide, fragile, complexe, inutilement répétitif, le code d’une application est alors difficile à faire évoluer.
L’approche Clean Code comme réponse
Le Clean Code (« Coder proprement » en français) est sans doute la solution à ces problématiques. Il s’agit d’une approche extrêmement pragmatique qui répond à la question : « Pourquoi les développeurs deviennent-ils lents ? ».
Cette méthode se base sur des piliers fondamentaux comme l’écriture des tests automatisés ou bien encore des principes de programmations comme les 5 principes SOLID, destinés à produire des architectures logicielles plus compréhensibles, flexibles et maintenables.
Dans le Clean Code, on retrouve aussi l’application d’un principe Scout bien connu : “Quand je quitte un fichier de code, je le laisse plus propre que lorsque je suis arrivé dedans”.
Au-delà de la recommandation de l’utilisation de conventions reconnues, le Clean Code, n’a de cesse de répéter : “Keep it simple stupid" (plus simple est toujours mieux). Et cela prévaut à tous les niveaux :
- Règles de design
- Règles de nommage
- Commentaires
- Structure du code source
- Structure des données
- ...
Au départ, cette approche peut sembler intimidante car elle implique une remise en question, et la modification de mauvaises pratiques intégrées par les équipes… Pour certains, elle peut même sembler rébarbative et ne pas apporter beaucoup de valeur ajoutée. Ce sentiment est dû au fait qu’il s’agit d’un ensemble de petites règles qui, prises séparément, ne semblent pas résoudre quoi que ce soit.
Pourtant, cela change réellement la vie d’une équipe tout entière :
- Le code est plus facile à corriger.
- La maintenance est accélérée voir réduite.
- L’ajout de nouvelles fonctionnalités sans crainte de mettre en péril les développements passés.
Même si on décide de n’utiliser qu’une partie des principes du Clean Code, cela peut déjà améliorer nettement le quotidien des développeurs. Et si on prend le temps de mettre en place des tests automatisés, la tranquillité d’esprit sur des problèmes de non-régression est libératrice.
En Conclusion
Est-ce que Clean Code est facile à mettre en place ?
Non. Comme toute nouveauté, cela n’est jamais facile. Il faut intégrer de nouveaux concepts, les mettre en pratique et les maîtriser. Tout cela ne se fait pas en un jour.
Est-ce que Clean Code règle tous les problèmes ?
Non ! Cependant, si une bonne partie des principes sont mis en œuvre correctement, les développeurs peuvent se concentrer sur les demandes du client et non plus sur les erreurs des développeurs précédents.
Est-ce que Clean Code vaut la peine d’être mis en place ?
Oui ! Le métier de développeur est un métier difficile qui était jadis réservés aux ingénieurs. Ce n’est pas anodin : parvenir à comprendre une idée d’un client et la traduire en langage informatique peut être complexe. Ce processus peut d’ailleurs faire intervenir une douzaine de métiers de spécialistes différents (backend, frontend, infrastructure, sécurité, mobile, testing...).
Il faut considérer le Clean Code comme une boîte à outil pour les développeurs, tous langages confondus. Cette boîte à outil est la compilation de dizaines d’années d’expérience dans le développement informatique. Il serait dommage de s’en priver.
Article écrit par Benjamin
Développeur web Contraste Digital
-------
Sources :
-
https://en.wikipedia.org/wiki/Robert_C._Martin en [FR] et en [EN]
-
Livre : "Une histoire de l'industrie du logiciel"
-
Livre : "Coder proprement - Robert C. Martin - edition en français de 2013"
-
Video Youtube: https://www.youtube.com/watch?v=7EmboKQH8lM – introduction
-
Website : https://moderatemisbehaviour.github.io/clean-code-smells-and-heuristics/