Manuel de conception de l'Infobase Santé
Table des matières
Conseils généraux de programmation
Sur cette page
- Avant de commencer à coder
- Assurez-vous que vos erreurs sont visibles
- Réutiliser le code autant que possible
- Éviter les résultats incohérents
- Éviter les variables globales lorsque c'est possible
- Quand vous devriez utiliser une classe
- Faites vos projets dans une branche séparée et fusionner les modifications
Avant de commencer à coder
- Rédigez du pseudocode si vous créez un code avec de nombreuses étapes. Cela pourrait vous aider à décomposer le processus en plusieurs sous-fonctions.
- Si vous écrivez une fonction simple, notez ses intrants (inputs) et les extrants (outputs), y compris les types de données. Cela pourrait vous aider à valider les entrées.
-
Arrêtez-vous pour réfléchir à ce qui fonctionnera le mieux à long terme.
- Par exemple, vous écrivez une fonction pour effacer un ancien graphique et en afficher un nouveau. Il est peut-être préférable de séparer les fonctions pour effacer les anciens graphiques et afficher un nouveau graphique. Pensez à cela si, à l'avenir, un code pourrait appeler une fonction mais pas l'autre.
- Par exemple, imaginons que vous devez montrer les décomptes de maladies par province. Si vos clients semblent certains de ne vouloir que cette statistique, vous pouvez accélérer les pages en précalculant cette statistique au lieu de stocker toutes les données brutes. Cependant, si vous pourriez ajouter d'autres statistiques (comme les décomptes de maladies à travers le temps), il pourrait être préférable de stocker toutes les données brutes.
- Arrêtez-vous pour prendre en compte les erreurs potentielles dans vos fonctions. Par exemple, des clés de dictionnaire manquantes, des types d'entrée incorrects ou des longueurs de tableau inattendues.
Assurez-vous que vos erreurs sont visibles
- Utilisez des instructions d'assertion (assert statement) et des messages d'erreur pour vous assurer que les variables contiennent les données que vous attendez.
- Ne gérez jamais les exceptions avec du code qui empêche les messages d'erreur ou au moins les messages de journalisation (log). Pour en savoir plus, lisez The Most Diabolical Python Antipattern - realpython.com (en anglais seulement).
- Utilisez les outils développeur (Dev Tools) pour vérifier les données que votre code utilise pendant l'exécution. Il est très courant de découvrir que vous avez des types de données inattendus ou que vous avez oublié de supprimer de vieilles variables.
Réutilisez le code autant que possible
Cela garantit que vous n'avez qu'à corriger les bogues à un seul endroit au lieu de plusieurs copies du même code.
- Évitez de copier du code dans un fichier. Pourriez-vous créer plutôt une fonction appelée à deux endroits?
- Évitez de copier du code d'un fichier à un autre. Pourriez-vous exporter ce code entre les fichiers en tant que fonction?
- Évitez de copier un module/bibliothèque dans de nombreux dossiers sur plusieurs projets. Pourriez-vous simplement créer un lien vers un répertoire source unique pour cette bibliothèque?
- Surtout avec d3.js, vous pourriez remarquer beaucoup de code répétitif pour définir des attributs. Pourriez-vous créer des fonctions réutilisables pour définir des attributs? Par exemple, une fonction d'opacité qui définit l'opacité à 0 si les données sont invalides ou à 1 si ce n'est pas le cas.
Éviter des résultats incohérents
Par exemple :
- Si vous avez une liste déroulante pour sélectionner une date et un curseur pour sélectionner une date, assurez-vous qu'ils se mettent tous les deux à jour chaque fois que l'utilisateur interagit avec l'un ou l'autre. Sinon, les utilisateurs seront confus.
- Si vous supprimez les éléments DOM d'un graphique dans une fonction, effacez toutes les variables liées à cet ancien graphique à la ligne suivante. Ne mettez pas ces deux étapes dans différentes fonctions. Ainsi, les futurs programmeurs se souviendront que les deux étapes doivent être effectuées ensemble.
- Effacer les variables signifie les supprimer ou les définir comme valeurs nulles. Cela empêche votre code d'utiliser accidentellement les anciennes données du graphique sans créer d'erreurs.
- Comment supprimer des variables - Stack Overflow (en anglais seulement)
- Comment définir des variables sur des valeurs nulles - Stack Overflow (en anglais seulement)
Éviter les variables globales autant que possible
Elles rendent le code difficile à mettre à jour car vous pourriez briser de nombreuses parties d'un fichier en changeant simplement une variable.
Des alternatives possibles sont d'avoir un seul objet d'état avec les variables comme propriétés. Vous pouvez également transformer les variables globales en attributs de classe.
Quand utiliser une classe
Vous devriez utiliser une classe lorsque :
- votre code crée quelque chose dont vous pourriez avoir plusieurs exemplaires. Par exemple, plusieurs graphiques, tableaux, formulaires, etc.
- vous avez de nombreuses fonctions qui accèdent aux mêmes variables globales. Celles-ci pourraient être transformées en plusieurs méthodes qui accèdent aux mêmes attributs.
- vous vous trouvez à corriger des bogues dus à des variables d'état global écrasées. Cela pourrait être résolu en créant des attributs protégés et une validation des entrées dans les méthodes de définition (setter).
Faites vos projets dans une branche séparée et fusionner les modifications
- Si vous utilisez Git et ne savez pas comment faire cela, voici un tutoriel Git et GitHub - Youtube (en anglais seulement).
- Si vous utilisez un environnement de développement intégré qui ne prend pas cela en charge (comme AWS Cloud9), essayez de créer deux dossiers : un dossier stable pour montrer aux clients un code exempt de bogues et un dossier instable pour travailler sur de nouvelles fonctionnalités. Lorsque vous avez testé les nouvelles fonctionnalités pour vous assurer qu'elles sont exemptes de bogues, déplacez le code du dossier instable vers le dossier stable.
- Date de modification :
- Date de modification :