Qu'est-ce que la programmation défensive?
La programmation défensive est la création d'un code pour un logiciel informatique conçu pour éviter les problèmes avant qu'ils ne surviennent et pour rendre le produit plus stable. L'idée de base de cette approche est de créer un programme capable de s'exécuter correctement même par le biais de processus imprévus ou lorsque des entrées inattendues sont effectuées par les utilisateurs. La programmation défensive repose souvent sur une combinaison quelque peu paradoxale consistant à éliminer le code inutile tout en veillant à ce que des quantités suffisantes soient générées pour gérer toutes les actions possibles de l'utilisateur. Des tests approfondis sont également importants pour ce processus, tout comme la création de logiciels pouvant être audités et vérifiés facilement.
À bien des égards, le concept de programmation défensive ressemble beaucoup à celui de conduite défensive, en ce sens que les problèmes sont pris en compte avant qu’ils ne se posent. Une méthode courante pour tenter de le faire consiste à créer un code conçu pour traiter tous les scénarios possibles. Les programmeurs essaient généralement de déterminer les moyens par lesquels les utilisateurs sont susceptibles de saisir une entrée ou d'utiliser un logiciel pouvant ne pas correspondre aux paramètres attendus. L'utilisation de la programmation défensive repose sur le code lui-même, conçu pour pouvoir gérer des entrées étranges sans se bloquer ni rencontrer un événement d'erreur.
Apparemment, contrairement à cet élément de la programmation défensive, un code bien écrit doit être exempt d'entrées inutiles. Plus il y a de lignes de code faisant partie d'un programme, plus il y a de possibilités pour que des erreurs soient introduites. Les pratiques de programmation défensive encouragent généralement les développeurs à éliminer le code inutile et à rationaliser les programmes autant que possible. Il faut donc trouver un équilibre entre une programmation tenant compte de scénarios inattendus et un code contenant trop de contenu inutile sans fournir d'avantage.
Le test est l'un des aspects les plus importants de la programmation défensive. Malgré les efforts considérables déployés pour garantir la perfection du code, les développeurs manquent presque toujours une erreur ou créent du code avec des résultats inattendus. Des tests approfondis menés par des testeurs professionnels permettent à un développeur de disposer de centaines d'heures d'utilisation du produit pour rechercher les erreurs avant la publication du logiciel.
Le code lui-même créé dans la programmation défensive est également un aspect essentiel de ce processus. Non seulement il devrait être rationalisé autant que possible, mais il devrait également être présenté de manière claire et concise. Les développeurs utilisent souvent les audits pour réviser le code créé. Cela permet aux autres programmeurs de voir le travail qui a été fait, et un code lisible est important pour que cela soit une partie réaliste du développement.