NCraft 2017 : reading in a new language
J’ai eu l’occasion d’assister à la conférence NCraft à paris le 19 mai dernier et je vais vous partager mon retour d’expérience sur la plénière d’ouverture de ce jour. Cette session était animée par Laura Savino, une développeuse et formatrice sur iOS.
Une introduction captivante
En commençant à se présenter en tant que développeuse iOS ayant un bagage d’enseignante en langue étrangère, elle a tout de suite su capter mon attention. Comment allait-elle faire le lien entre un langage de programmation et une langue vivante ?
Un fond important
Le titre pourrait laisser penser que le fond du sujet serait d’aborder les façons de se lancer dans un nouveau langage, mais elle traite d’un sujet plus profond qui ne se limite pas à un nouveau langage : la lisibilité du code. C’est un sujet qui touche toute la population des développeurs, de n’importe quel langage, de n’importe quel niveau de maturité ! Mais qu’est-ce qu’un code lisible ?
Si beaucoup d’entre nous avons une idée de ce que peut être un code lisible, combien d’entre nous utilisons des méthodes, des outils pour mesurer cette lisibilité au quotidien ?
Un tout bien ficelé
J’ai vraiment apprécié la façon dont elle a abordé le sujet et nous a communiqué son retour d’expériences. Elle a su naviguer entre histoires vécues en tant qu’enseignante de langue et histoires vécues en tant que développeuse, tout en nous donnant des points d’attention.
Voici ceux que j’ai particulièrement retenus :
-
Le cerveau ne peut enregistrer que 7 infos, après il perd le contexte :
Dans sa présentation elle parle de “working memory”, notre cerveau est capable de retenir une certaine quantité de données de manière efficace. Cela s’apparente aux niveaux de cache L1, L2, L3 des micro processeurs. Ainsi la prochaine fois que vous voulez écrire du code vraiment important, gardez en tête que les éléments visibles ne doivent pas être plus grand que notre mémoire de travail.
-
Un code moins “fluent” peut parfois être plus lisible :
Si vous avez une conversation avec un étranger et que vous utilisez des expressions particulières, comme des expressions familières, il se peut que celui-ci ne vous comprenne pas bien.
C’est la même chose dans le code, en C# par exemple une grosse expression LINQ n’est pas forcément plus lisible qu’une instruction procédurale.
Parfois il vaut mieux un code lisible et expressif, plutôt qu’un code optimisé et condensé, mais moins lisible. Cet arbitrage entre lisibilité et densité est une question à se poser systématiquement et dépend de beaucoup de paramètres : niveau de l’équipe, criticité du code, emplacement dans la base de code… Qui ne s’est pas un jour fait avoir par une règle de gestion décisive cachée derrière un opérateur ternaire ?
-
Ne laissez pas votre ego ou vos émotions prendre le dessus :
Un code lisible et compris par vous peut ne pas l’être par d’autres. N’hésitez pas à vous faire relire par d’autres personnes qui ne sont pas dans votre équipe. Ce n’est pas parce qu’on vous dit que votre code peut être plus lisible qu’il est mauvais. N’oubliez pas que le but c’est que la grande majorité des personnes vous comprennent, pas seulement des spécialistes.
Posez vous les bonnes questions :- Pourquoi ne comprend-t-il pas ?
- Que puis-je modifier dans la façon d’écrire pour que ça soit compris par le plus grand nombre?
-
Un mot peut en cacher un autre :
L’importance des choix de nommage est primordiale dans un code dit lisible.
Il faut vous souvenir qu’un mot peut avoir un autre sens dans un contexte différent.
Donc réfléchissez bien à votre contexte avant de publier du code 😉
Conclusion
La conférence NCraft est un bon moyen d’éveiller sa conscience et comme le dit Rui Carvalho, de la nourriture pour l’esprit. Aussi, le choix de cette session en plénière a vraiment été très pertinent. Un sujet qui se situe bien dans le mouvement Craft qui nous concerne tous en tant que développeurs. Une vidéo à voir et à revoir (http://videos.ncrafts.io/video/221024092). Si vous avez participé à cette session n’hésitez pas à nous faire part de vos impressions. De même si vous voulez participer au mouvement Craft : partagez 😉