Bonjour tout le monde,
Cette semaine, c'est Valentin DUMAS qui nous propose un article sur le sujet suivant : Complexité Cognitive, pour mieux comprendre et se faire comprendre.
La complexité cyclomatique mesure le nombre de chemins possibles que peut prendre notre programme. Elle permet aussi de mesurer la testabilité et la maintenabilité de notre code.
Mais qu'en est-il de sa lisibilité ? C'est ici qu'intervient le concept de complexité cognitive, appliqué au développement logiciel.
Je vous propose cet article qui démontre les limites de la complexité cyclomatique et en quoi la mesure de la complexité cognitive est intéressante à prendre en compte en parallèle : https://blog.sonarsource.com/cognitive-complexity-because-testability-understandability/
Pour des explications plus détaillées, voici le white paper qui l'accompagne : http://redirect.sonarsource.com/doc/cognitive-complexity.html
La mesure de la complexité cognitive sensibilise aux méthodes de refactoring telles que "Decompose Conditional" (qui utilise une des plus connues, "Extract Method") et peut amener à "Merge Nested-If" ou "Return Early to Fail-Fast" si cela améliore la lisibilité. Ces techniques facilitent notre travail et celui des développeurs qui passent après nous (sans parler d'être bénéfique pour le projet) !
Le lien : https://blog.sonarsource.com/cognitive-complexity-because-testability-understandability/
Langue : Anglais
Bonne lecture !
Votre équipe TakiVeille
Image source: https://i.ytimg.com/vi/9xEC3kF-vqY/maxresdefault.jpg