Fermer

12/09/2022

Comment écrire du code propre – Methods Blog


Message fourni par Alex Filazzola

Alexandre Filazzola & CJ Lortie nous parlent de leur nouvel article ‘Un appel à un code propre pour communiquer efficacement sur la science‘, qui fournit une série de recommandations et une suite d’outils qui peuvent être utilisés pour aider les scientifiques à produire un code plus propre.

Pouvez-vous comprendre clairement le code que vous avez écrit ? Et si vous le donniez à un collègue ? Ou un critique? Ou même une future version de vous-même ? Écrire un code aussi lisible que fonctionnel n’est pas une tâche facile, mais cela présente des avantages significatifs. Un code compréhensible est moins susceptible de contenir des erreurs, plus facilement examiné par des collègues et plus facilement répliqué. Ainsi, la reproductibilité informatique (c’est-à-dire la capacité de recréer l’analyse et les résultats de quelqu’un) est tout aussi importante que la reproductibilité expérimentale. C’est pourquoi de nombreuses revues, Méthodes en écologie et évolution inclus, encourager la publication de code avec des manuscrits. Cependant, à quoi sert ce code publié s’il est illisible ?

Alessandro Filazzola et Christopher Lortie sont à la fois des écologistes de terrain et des biologistes computationnels. Ni l’un ni l’autre n’ont reçu une formation de programmeur informatique et chacun est entré dans le domaine de l’écologie en arpentant l’environnement naturel. Au fil du temps, en lisant des livres sur R, le codage et les statistiques, il est devenu évident qu’il existe un ensemble de meilleures pratiques à suivre lors du codage en écologie et évolution. L’une des lectures les plus influentes a été le livre de Robert Martin intitulé Nettoyer le code. Bien que ce livre ait été écrit pour un développeur de logiciels utilisant Java, les exemples étaient faciles à suivre car le code était bien écrit. C’est le but ultime d’un code propre – avoir le code compréhensible par quelqu’un qui n’est pas familier avec la langue.

Qu’est-ce qu’un code propre ?

Deux exemples de code équivalent de fonctionnalité en Python pour vérifier si une année est une année bissextile, la deuxième itération étant écrite plus « proprement ».

Regardons un exemple de la façon dont le code peut être amélioré pour être plus facilement compréhensible. Dans l’exemple ci-dessus, nous avons deux morceaux en Python qui effectuent une tâche assez simple de vérification des années bissextiles. Cependant, il existe certainement quelques différences entre ces deux morceaux. Dans le premier cas, l’utilisateur n’utilise pas de noms de fonctions ou de paramètres clairement compréhensibles. Au lieu de cela, ils s’appuient sur les commentaires pour fournir cette clarté supplémentaire. En fournissant des noms de fonction ou de paramètre plus explicites, bien que plus longs à écrire, cela peut éviter d’avoir à écrire de longs commentaires. De plus, la plupart des IntelliSense dans les environnements de développement intégrés (IDE) tels que RStudio, PyCharm ou VSCode, ont une saisie semi-automatique pour les noms de fonction plus longs. De plus, ces deux exemples montrent des différences d’espacement autour des opérateurs et du texte. L’espacement peut être un outil puissant pour améliorer la lisibilité, tout comme pour l’écriture en anglais ou dans d’autres langues.

Meilleures pratiques pour un code propre

Dans l’article Un appel à un code propre pour communiquer efficacement sur la science, les auteurs Filazzola et Lortie détaillent les incitations à écrire du code propre, les bases de la création et les implications pour le biologiste informatique typique. Les auteurs fournissent un tableau des meilleures pratiques qui comprend des styles de formatage tels que l’indentation, l’espacement horizontal, les conventions de dénomination, l’ordre vertical, entre autres. À la base, un code propre doit pouvoir communiquer efficacement, être formaté pour une lisibilité aisée et inclure une abstraction pour concentrer l’utilisateur sur des concepts plus importants.

L’idée d’abstraction est l’un des sujets les plus compliqués introduits qui emprunte à l’informatique. En bref, l’abstraction consiste à supprimer des éléments complexes des parties exécutables du code pour concentrer les utilisateurs sur les morceaux qui nécessitent une plus grande attention. Par exemple, pensez à la fonction `lm` dans R pour conduire des modèles linéaires, qui est elle-même un type d’abstraction. Lorsque nous utilisons la fonction « lm », nous ne sommes pas concernés par le code qui calcule la somme des carrés, estime les coefficients de régression ou convertit les statistiques F en valeurs p. Nous ne nous intéressons généralement qu’aux prédicteurs, à la variable de réponse et parfois à quelques paramètres supplémentaires. La fonction `lm` est une abstraction d’une base de code beaucoup plus grande qui nous permet, à nous les utilisateurs, de nous concentrer davantage sur les sections du script qui nécessitent une plus grande attention. De même, nous pouvons appliquer l’abstraction à notre code en enveloppant des sections de code dans des fonctions pour augmenter la concentration. Dans l’article, les auteurs détaillent un exemple de simplification d’un script R en enveloppant des morceaux dans des fonctions pour réduire le nombre de lignes pouvant être actionnées par l’utilisateur (voir l’exemple ci-dessous).

Un exemple d’utilisation de l’abstraction pour simplifier le code actionnable présenté à l’utilisateur.

Utiliser des outils pour aider à écrire du code propre

Écrire du code propre peut être difficile, mais ce n’est pas obligatoire. Il existe de nombreux outils disponibles qui peuvent prendre en charge l’écriture de code propre. De nombreux IDE ont des extensions ou des fonctionnalités intégrées qui accomplissent bon nombre des meilleures pratiques identifiées dans le manuscrit, telles que le formatage automatique (c’est-à-dire les linters). Il existe également des guides de style fournis par des entreprises technologiques et des développeurs spécifiques à une langue. La British Ecological Society a produit un guide de style de codage en 2017. Un appel à un code propre pour communiquer efficacement sur la science fournit non seulement une série de recommandations, mais également la suite d’outils qui pourraient être utilisés pour nous aider à mesure que les scientifiques produisent un code plus propre. Bien que nous ne soyons pas entrés dans ce domaine pour devenir programmeurs, le codage étant de plus en plus intégré à notre travail quotidien, nous pouvons certainement adopter certaines bonnes pratiques pour créer un code lisible et reproductible.





Source link