Cours NSI Terminale : langages et programmation - Bonnes pratiques logicielles

Vous révisez la spécialité NSI pour le bac ? Cette fiche vous aide à maîtriser les bonnes pratiques de code en Python : style, documentation, maintenance et tests.
Langages et programmation : les bonnes pratiques à connaître pour le bac NSI
Dans le cadre du programme de NSI en Terminale, l’apprentissage de la programmation ne se limite pas à savoir écrire du code qui fonctionne. Il faut aussi apprendre à concevoir des programmes clairs, lisibles, maintenables et bien documentés. Cela implique de connaître le PEP 8, les bonnes pratiques de présentation, la structure d’un programme, ainsi que l’utilisation des docstrings, des tests ou encore des outils comme Pydoc ou Sphinx.
Comprendre les méthodes de développement logiciel, maîtriser le vocabulaire associé (comme les noms en snake_case ou kebab-case), respecter la syntaxe Python, ou encore savoir gérer les erreurs, font partie intégrante des notions clés à connaître.
Ce cours vous guidera dans l’univers de la programmation orientée objet, du debugging au refactoring, pour progresser vers un code propre, professionnel et pérenne – un vrai pas dans la vraie vie des développeurs.
Vous souhaitez consolider vos révisions en spécialité NSI ? Grâce à notre partenaire SchoolMouv, accédez à des cours complets, des vidéos pédagogiques et des exercices interactifs pour maîtriser les bases de la programmation, du modèle relationnel ou encore des bonnes pratiques en Python. Une manière simple et efficace de progresser à votre rythme et de réussir votre épreuve de NSI au bac !
1 - Langages et programmation : 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 aura du mal à comprendre d’emblée à quoi sert une fonction.
Pire, l’auteur lui-même aura peut-être des difficultés à se relire s’il 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éveloppeurs.
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 développeur.
2 - Langages et programmation : 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 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.
3 - Langages et programmation - Documentation et maintenance
La documentation du code facilite l’exploitation des fonctionnalités par les autres développeurs, et par l’auteur lorsqu’il 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.