Bonnes pratiques logicielles

information-icon

Les premières épreuves du bac 2024 sont pour bientôt ! Consulte notre dossier sur le contrôle continu et le calcul des notes de ton bac pour maximiser ta préparation pour les révisions à ton examen 💪

Conformité

  • Les langages informatiques ont une orthographe, une grammaire et obéissent à des règles de syntaxe.
  • La manière de nommer les éléments du code a une incidence directe sur la lisibilité du code.
  • L'intérêt de choisir des noms explicites s'applique également aux fonctions.
  • En cas de nommage sybillin, toute personne autre que l'auteur·e aura du mal à comprendre d'emblée à quoi sert une fonction.
  • Pire, l'auteur·e lui·elle-même aura peut-être des difficultés à se relire s'il·elle doit se plonger dans son propre code après plusieurs semaines ou plusieurs mois.
  • La production de code Python obéit à un certain nombre de règles qui servent de bases communes à l'ensemble des développeur·se·s.
  • Ces règles sont définies dans un document appelé PEP 8 (Python Enhancement Proposal).
  • Le PEP 8 indique par exemple qu'on doit trouver une espace avant et après le signe = sauf pour les paramètres nommés des fonctions.
  • Le PEP 8 précise entre autres :
  • les conventions de nommage ;
  • les modalités d'indentation ;
  • la longueur des lignes ;
  • l’espacement à appliquer entre les lignes.
  • Il existe des outils spécifiques pour aider le développeur à produire un code conforme : le linter, par exemple, qui signale les erreurs de syntaxe et le non-respect des règles stylistiques.
  • Les linters peuvent être utilisés en ligne de commande ou de manière intégrée à l'IDE du·de la développeur·se.

Optimisation du code

  • La conformité stylistique du code est d'autant plus importante que le code produit est amené à être lu pour être compris et éventuellement modifié, par l'auteur·e ou par des tiers.
  • La reformulation de code est souvent désignée par le terme réusinage ou son équivalent anglais refactoring.
  • Le code peut être modifié pour différentes raisons :
  • le rendre conforme aux règles de style en vigueur ;
  • le rendre conforme aux spécifications ;
  • l’adapter à des besoins nouveaux ;
  • l’optimiser (notamment la rapidité des traitements ou la réduction de la complexité algoritmique) ;
  • l’adapter pour des raisons de compatibilité ou sécurité dues à des évolutions de l'environnement.
  • Chaque langage informatique a ses tournures et ses spécificités. Dans le cas de Python, la formule consacrée pour indiquer la conformité du code aux principes du langage consiste à le qualifier de « pythonesque ».
  • Les principes qui sous-tendent la programmation en Python ont été résumés dans un texte intitulé le « Zen de Python ».
  • Ce texte de référence peut être affiché dans l'interpréteur Python avec la commande suivante import this.
  • On relèvera notamment la recommandation d'aérer le code et de favoriser sa lisibilité.
  • Le recours à des tests est très utile pour s'assurer que le code produit bien les résultats attendus et qu’il continue à fonctionner après modification (on parle de couverture de code).
  • Un programme informatique est censé répondre à un certain nombre d'exigences, et donc de critères de validation.

Documentation et maintenance

  • La documentation du code facilite l'exploitation des fonctionnalités par les autres développeur·se·s, et par l'auteur·e lorsqu'il·elle doit se replonger dans son propre code pour l'optimiser ou le maintenir.
  • Les chaînes de documentation ou doctstrings constituent un moyen facile et rapide de documenter la production logicielle directement au niveau du code.
  • Le module Pydoc module notamment permet d'accéder à l'ensemble de la documentation et d'effectuer des recherches sur le langage et ses bibliothèques, mais aussi de générer des fichiers de documentation au format texte ou HTML, et même un serveur HTTP local pour la consultation de la documentation.
  • Cette documentation au format HTML peut ensuite facilement être publiée sur le web ou sur un intranet pour proposer une ressource de documentation en ligne.
  • Pour des besoins de documentation plus élaborés, il existe un outil plus complet, écrit lui aussi en Python : le générateur de documentation Sphinx.
  • Il est nécessaire de maintenir la capacité d’un logiciel à fonctionner dans la durée : on parle de maintenance logicielle.
  • La maintenance peut porter sur différents aspects susceptibles d'affecter le bon fonctionnement d'un logiciel :
  • corrections de bugs ;
  • améliorations ou modifications de fonctionnalités ;
  • anticipation de l'évolution de la plateforme hébergeant le logiciel ;
  • migration sur une autre plateforme.
  • Le portage de code est un terme technique qui désigne la transposition d'un code initial dans un autre environnement ou éventuellement un nouveau langage.