
[ad_1]
Grâce à l’esprit libre
Lire et comprendre un code complexe est une tâche très difficile. Le code n’a pas toujours de bons noms de variables, des fonctions concises et pures, des tests, etc. Malheureusement, la réécriture du code est rarement une option.
Dans mon quotidien, j’ai besoin de lire et de comprendre l’ancien code – écrit il y a des années, avant que les bonnes pratiques de développement logiciel ne soient créées. Non seulement ce type de code, mais même le code récent, écrit dans de nouveaux langages, peut être très difficile à comprendre du premier coup.
J’ai essayé de trouver un moyen d’analyser ce type de code avec moins d’effort et de découvrir qu’en utilisant des cartes mentales, le code peut être mieux visualisé. J’ai toujours aimé les cartes mentales. Depuis 2008, je l’ai utilisé pour organiser beaucoup d’informations de manière hiérarchique. Les cartes mentales sont l’un des meilleurs (ou des meilleurs) moyens d’étudier et de stocker des informations, à mon avis.
Dans cet article, j’utiliserai le Outil de cartographie mentale Freemind.
Pour expliquer la technique, je vais utiliser un exemple en Python. Je suis professeur d’informatique et quand j’enseigne les langages de programmation je crée toujours avec mes élèves un jeu de Tic Tac Toe. Pour détecter si le joueur 1 ou le joueur 2 gagne à chaque tour, exécutez cet algorithme :
Commencez une matrice 3×3 remplie de zéros.

Lorsque le joueur 1 fait un coup, j’écris 1 dans la cellule. Lorsque le joueur 2 fait un coup, j’écris 2 dans la case. Voici donc un exemple où le joueur 1 gagne dans la diagonale principale :

Pour détecter que le joueur 1 gagne, faites le produit sur les lignes, les colonnes et les diagonales. Si le résultat est 1, le joueur 1 gagne ; si le résultat est 8, le joueur 2 gagne ; si le résultat est 0, 2 ou 4, personne ne gagne dans cette ligne, colonne ou diagonale.
C’est tout simple.
Voici la fonction Python avec l’algorithme implémenté :
Cette fonction est écrite d’une manière que je considère adéquate : la recherche dans les lignes, les colonnes et les diagonales est divisée en fonctions imbriquées à l’intérieur de la fonction principale, et elle utilise des énumérations pour décrire les joueurs et les gagnants. De plus, les premiers retours (qui peuvent être considérés comme une mauvaise chose) dans cet algorithme ne sont pas un problème, étant donné que le flux principal est simple à voir et à comprendre.
Même la technique décrite dans cet article se concentre sur des algorithmes complexes, pas bien écrits comme celui-ci. J’ai choisi cet exemple parce qu’il est plus simple à expliquer et à comprendre.
Maintenant, avec le code et Freemind ouvert, je copie et colle le code, et voilà ! La magie est opérée.



Freemind reconnaît automatiquement les onglets comme des nœuds enfants, de sorte que le code sans onglet est placé sur la première tranche de nœud, avec un onglet sur la deuxième tranche de nœud, et ainsi de suite.
Avec Python, comme l’indentation fait partie du code source, c’est encore plus simple. Mais dans des langages comme C #, par défaut, les accolades sont placées sur une ligne sous l’instruction, la carte mentale peut être difficile à lire, avec beaucoup d’accolades.
Des outils comme celui-ci avec le formateur défini sur Chromium et la largeur de ligne définie sur une valeur élevée, peut aider.
Autre exemple : si le code a une indentation inhabituelle (comme dans Visual FoxPro lorsqu’une instruction if est très longue), il est courant que les développeurs cassent la condition if, mettent un point-virgule, vont à la ligne en dessous add use tabs pour mettre le code aligné avec l’original si. Dans cette situation, vous devez ajuster manuellement les nœuds dans une carte mentale.
Comme dit précédemment, cet exemple est simple – avec peu de fonctions, un code bien écrit. Mais imaginez un code avec if
à l’intérieur else
à l’intérieur for
à l’intérieur while
à l’intérieur try
et beaucoup de ces déclarations, avec la mutabilité des variables, etc.
Pas toujours le contour de l’IDE peut aider à visualiser le code. Lorsque vous lisez le contenu d’une instruction if, vous pouvez oublier dans quelle structure cette instruction if se trouvait.
Avec le code placé dans une structure de carte mentale, vous pouvez le visualiser plus facilement et de manière hiérarchique, ce qui est une manière naturelle de lire et d’écrire du code.
De plus, Freemind propose de nombreux outils : écrire des notes, colorier, créer des liens entre les nœuds, dessiner des nuages autour des nœuds, etc. Tous ces éléments peuvent être utilisés pour aider à comprendre des codes complexes.
J’espère que cet indice pourra vous aider à comprendre les codes complexes (et malheureusement souvent mauvais). Les développeurs passent beaucoup plus de temps à lire qu’à écrire du code. L’amélioration de la lisibilité est donc toujours un objectif dans le développement de logiciels.
Dans un monde idéal, ce type de technique ne serait pas nécessaire ! Essayez toujours d’écrire un bon code. Si vous avez besoin d’utiliser cette technique, cela peut être un indice qu’une refactorisation est nécessaire. Le livre Clean Code de Robert Martin et la compréhension des concepts de programmation fonctionnelle sont de bons points de départ pour écrire un meilleur code.
[ad_2]
Télécharger ici