Les 7 caractéristiques d’un code simple (KISS)

((/dotclear/public/programmation.gif|Programmation|L|Programmation, aoû 2009))J’ai traduit un article intéressant de Alberto Gutierrez : ++[« The 7 characteristics of simple code (KISS) »|http://www.makinggoodsoftware.com/2009/10/30/the-7-characteristics-of-simple-code-kiss/|en]++%%% %%% > J’avais l’habitude de croire que la qualité la plus importante d’un code était son extensibilité (~ajouter de nouvelles fonctionnalités). Le code a dû être préparé aux futurs changements donc j’ai codé beaucoup de choses qui ne sont pas tout de suite nécessaires. Mais après avoir réalisé que je n’avais jamais bien deviné les changements à venir, et après avoir eu pas mal de cauchemars lors des maintenances et des passages de connaissance, il y a quelques années j’ai finalement décidé que je prendrai la démarche inverse de ce qui est sensé être un bon code. Depuis que je l’ai fait, je suis chaque jour plus convaincu que la principale caractéristique d’un bon code est sa simplicité. Un code simple est facile à lire et facile à changer. Et parce qu’il est simple, il est le moins susceptible d’avoir des bogues (plus l’algorithme que vous créez est complexe, plus les changements peuvent générer des erreurs).%%% > %%% > Lorsque vous codez, je vous recommande de vérifier chaque fois si votre code est resté simple, et n’oubliez pas : « il n’y a pas de problèmes difficiles, seulement les solutions ».%%% > %%% > __Les sept caractéristiques principales d’un code simple sont :__%%% > %%% > __1. Facile à lire__%%% > %%% > Un code simple n’a pas besoin de documentation supplémentaire, ou alors d’un minimum de documentation pour être compris.%%% > %%% > __2. Facile à utiliser__%%% > %%% > Celui qui utilise votre code considère intuitif d’utiliser vos objets.%%% > %%% > __3. Facile à changer__%%% > %%% > Simplicité veut dire qu’il n’y a pas de logique redondante. Un changement doit correspondre à un seul endroit dans votre code.%%% > %%% > __4. N’utilise aucun outil ou technologie qui ne soit nécessaire__%%% > %%% > D’après mon expérience, j’ai constaté combien certains développeurs adoraient utiliser les technologies, outils et frameworks pour le simple plaisir de rendre le projet plus « cool ». Chaque fois que vous les utilisez, vous ajoutez de la complexité, et de la complexité supplémentaire signifie que c’est plus difficile à comprendre, à maintenir et que c’est davantage vulnérable aux défaillances.%%% > %%% > __5. Ça a l’air simple__%%% > %%% > Si cela n’a pas l’air simple, alors ce n’est pas simple ! Vous savez que votre code est simple si, quand vous avez fini, vous êtes étonné de constater la simplicité de la solution finale et vous vous demandez pourquoi cela vous a pris si longtemps.%%% > %%% > __6. Lean__%%% > %%% > Il ne fait que ce qui est nécessaire, et rien d’autre. Je pense que les développeurs les plus expérimentés seraient d’accord pour dire que tenter d’anticiper les problèmes auxquels votre code devra faire face dans l’avenir est impossible.%%% > %%% > __7. C’est direct__%%% > %%% > Il n’a pas d’indirections inutiles. Les opérations les plus importantes nécessitent seulement un appel direct à une méthode.%%% > %%% > __Comment pouvons-nous développer un code simple ?__%%% > %%% > La clé de la production d’un code simple est de le remanier (~refactoring) continuellement, et la seule façon de le faire est de le tester continuellement.%%% > %%% > Vous allez avoir besoin de le remanier parce qu’à chaque fois que vous allez ajouter une nouvelle ligne dans votre algorithme, vous allez probablement le rendre plus complexe. A partir de maintenant, à chaque fois, vous devez le remanier pour le ramener à un juste niveau de simplicité.%%% > %%% > Vous avez besoin de nombreux tests parce que vous le remaniez constamment et que, si vous n’avez pas un filet de sécurité, vous introduisez des bogues dans votre système.%%%

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *