Standards de programmation

Cet article ne couvre pas les efforts de standardisation comme ceux de WG21, qui oeuvre à la standardisation pour ISO du langage C++, mais discute plutôt des standards qui imposent un cadre aux pratiques des programmeurs ou des programmeuses en classe ou en entreprise.

Dans la pratique de la programmation, la question des standards de programmation est matière à débats : indenter avec des espaces ou des tabulations? Comment marquer l'indentation? Comment nommer les variables, les types et les fonctions? Y a-t-il des mots clés à éviter ou des façons de faire qui sont proscrites dans une entreprise ou dans un projet donné? Et ainsi de suite. Par exemple, certains domaines d'application sont réfractaires aux exceptions, d'autres à la récursivité, d'autres encore éviteront la programmation générique ou les conteneurs standards, etc.

Les standards de programmation entraînent une sorte signature pour le code, et donnent une impression d'homoigénéité stylistique pour un groupe donné. Ce faisant, ils facilitent la compréhension du code aux gens du même groupe qui le rencontrent pour la première fois : les indices visuels et les façons de faire communes accélèrent le repérage des éléments clés d'un programme et permettent aux gens de se concentrer sur l'essentiel.

Quelques standards de programmation au sens large

La forme que prennent les énoncés dans un langage ou l'autre a-t-elle de l'importance? Réflexion intéressante de Bertrand Meyer (l'auteur du langage Eiffel) sur le sujet : http://bertrandmeyer.com/2014/05/17/code-matters/

Les standards qui suivent sont des exemples de diverses provenances. Aucun n'a raison dans l'absolu.

Pour C :

Pour C# :

Proposition de règles pour programmer avec C# dans Unity (je ne sais pas s'il s'agit d'un standard accepté par la communauté) : http://wiki.unity3d.com/index.php/Csharp_Coding_Guidelines

Pour C++ :

Pour Go :

Pour Java :

Pour JavaScript :

Pour Lisp :

Pour les langages de la plateforme .NET :

Pour Objective-C :

Pour Python :

Pour Ruby :

Pour Scala :

Pour les shells :

Chez X.org :

Pour le Web :

Pour les projets GNU :

Autres :

Critiques :


Valid XHTML 1.0 Transitional

CSS Valide !