rOpenSci (dev guide, newsletter, paquets pour documents multi-langues babeldown et babelquarto…)
cynkra (contribution à fledge, igraph)
glitter pour écrire des requêtes SPARQL, avec Lise Vaudor
saperlipopette pour s’entraîner à Git
Du code facile à lire, facile à suivre.
Votre code est exécuté par des machines mais lu par des humains pour le comprendre, le vérifier, l’améliorer.
Des espacements réguliers entre les éléments
Pas trop large
Pas trop long : paragraphes, fonctions existantes et faites maison
Pas trop taché : des commentaires mais juste ce qu’il faut
😱
😌
Suivre des règles, toujours les mêmes, les mêmes que les copain·ine·s. Comment faire?
On s’y habitue.
Le paquet {styler} vous refait ça automatiquement ! Démo.
Dans RStudio IDE, Ctrl+I pour l’indentation.
Pas plus de 80 caractères par ligne, ou quelque chose de semblable.
lintr peut vous avertir ! Démo
Aussi un réglage de RStudio (Code > Display > Show Margin).
Comme dans la prose, un paragraphe pour une idée.
Garder un corps de fonction principale pas trop long en sous-traitant des choses à des fonctions bien nommées.
Démo !
Enter click
Barre de recherche
Exemple: modifyList()
Exemple: modifyList()
Avant, je pensais…
Cela ne sert à rien et c’est ennuyeux à écrire et ça peut même être dangereux !
Un commentaire = comme une alerte !
S’il y en a trop on ne les lit plus.
Changer le nom d’une variable plutôt que commenter ce que c’est.
Changer la structure d’un code compliqué plutôt que de commenter ce qu’il fait.
Bof :
Youpi :
Pareil avec une fonction si le cas se répète.
Documentation des fonctions avec roxygen2 ;
Les choses qu’on voudrait indiquer à un·e réviseur·se de code comme # This query can not be done via GraphQL, so have to use v3 REST API
Les commentaires qui donnent une table des matières. Démo.
Des espacements réguliers entre les éléments
Pas trop large
Pas trop long : paragraphes, fonctions existantes et faites maison
Pas trop taché : des commentaires mais juste ce qu’il faut
Des noms explicites.
Des astuces sur la logique: return()
tôt, switch()
.
Du code en moins.
Suivre la mode.
Felienne Hermans conseille de choisir les concepts qui vont dans le nom, les mots pour le dire, les assembler.
Plus le nom est loin de son utilisation, plus il doit être long. (Andrew Gerrand)
C’est clair si la personne relisant votre code est d’accord. 😉
On peut même renommer des fonctions qui existent si ça clarifie.
return()
tôtBof
return()
tôtMieux !
switch()
Bof !
switch()
Mieux !
On peut même préciser une valeur par défaut pour les autres valeurs du premier argument.
Être strict sur ce qui est à faire ou pas.
Utiliser des dépendences externes auxquelles on fait confiance.
Des noms explicites.
Des astuces sur la logique: return()
tôt, switch()
.
Du code en moins.
Nettoyage de printemps ;
lintr ;
Révision par des humains.
Une fois par an ? https://www.tidyverse.org/blog/2023/06/spring-cleaning-2023/
Plus régulièrement ?
Faire un peu d’amélioration à chaque fois qu’on ajoute une fonctionnalité ?
Allons jeter un oeil à la documentation !
Lisez le code de vos collègues et inversement ! https://code-review.tidyverse.org/
Revue de paquets par les pairs à rOpenSci https://ropensci.org/software-review/
La beauté et la clarté du code, aussi importantes que sa performance.
Code plus facile à vérifier et maintenir !
Un travail permanent.
Jenny Bryan’s talk Code Smells and Feels
Livre The Art of Readable Code par Dustin Boswell et Trevor Foucher
Livre Tidy Design d’Hadley Wickham, en progrès, avec une lettre d’infos associée
À vous tou·te·s et à Marylène Henry !