Dans cet article, nous allons voir comment nommer correctement les éléments d’un programme C# afin d’écrire un code plus clair, plus professionnel et plus facile à maintenir.
Quand on programme, on ne choisit pas les noms “au hasard”. Un bon nom permet de comprendre rapidement :
Des conventions de nommage communes permettent aussi à plusieurs développeurs de lire le même code sans être perturbés par des styles différents.
En C#, ces conventions sont très importantes. Elles rendent le code plus lisible et plus cohérent.
Un bon nom doit être :
On évite donc les noms vagues comme :
int x;
string truc;
bool test;
On préfère :
int age;
string nomJoueur;
bool estVivant;
En C#, il existe deux grandes conventions d’écriture pour les noms.
Chaque mot commence par une majuscule.
Exemples :
NomJoueur
PointsDeVie
AfficherPersonnage
Le premier mot commence par une minuscule, puis chaque mot suivant commence par une majuscule.
Exemples :
nomJoueur
pointsDeVie
afficherPersonnage
En C#, on utilise généralement :
Une classe représente souvent une entité, un objet ou un concept. Son nom doit donc être un nom clair, souvent au singulier.
On utilise PascalCase.
Exemples corrects :
class Personnage
class CompteBancaire
class CapteurTemperature
class Produit
Exemples moins bons :
class personnage
class perso
class machin
Le nom d’une classe doit en général répondre à la question :
“Quel type d’objet est-ce ?”
Exemples :
PersonnageVoitureEleveCommandeUne variable contient une valeur. Son nom doit décrire cette valeur.
On utilise généralement camelCase.
Exemples :
string nom;
int pointsDeVie;
bool estVivant;
double temperatureActuelle;
string a;
int valeur1;
bool b;
Ces noms ne disent presque rien.
Une méthode représente une action. Son nom doit donc, en général, commencer par un verbe.
On utilise PascalCase.
Exemples :
AfficherPersonnage()
Attaquer()
RecevoirDegats()
CalculerTotal()
Demarrer()
Le nom d’une méthode doit répondre à la question :
“Que fait cette méthode ?”
On évite donc les noms trop flous comme :
Faire()
Traiter()
Go()
Action()
sauf si le contexte est vraiment évident.
Une propriété représente souvent une caractéristique d’un objet.
On utilise PascalCase.
Exemples :
public string Nom { get; set; }
public int PointsDeVie { get; set; }
public bool EstVivant { get; set; }
Même si, dans d’autres langages, on voit souvent des attributs en minuscule, en C# une propriété publique se nomme en général comme une classe ou une méthode : avec PascalCase.
Un champ privé est une variable déclarée dans une classe, souvent utilisée en interne.
Il existe plusieurs styles selon les équipes, mais une convention très fréquente en C# est :
Exemples :
private string _nom;
private int _pointsDeVie;
private bool _estVivant;
Cela permet de repérer immédiatement qu’il s’agit d’un champ privé.
Exemple avec propriété :
class Personnage
{
private int _pointsDeVie;
public int PointsDeVie
{
get { return _pointsDeVie; }
set
{
if (value >= 0)
{
_pointsDeVie = value;
}
}
}
}
Un paramètre est une donnée reçue par une méthode.
On utilise généralement camelCase.
Exemple :
public void RecevoirDegats(int degats)
{
pointsDeVie -= degats;
}
Autres exemples :
public void ChangerNom(string nouveauNom)
public int Additionner(int nombre1, int nombre2)
Une constante est une valeur qui ne change pas.
En C#, on utilise généralement PascalCase pour les constantes, même si dans d’autres langages on voit parfois du MAJUSCULE_AVEC_UNDERSCORES.
Exemple :
const int PointsDeVieMaximum = 100;
const double Tva = 0.21;
Les variables booléennes ne contiennent que deux valeurs : true ou false.
Leur nom doit donc exprimer clairement un état ou une question.
Exemples :
bool estVivant;
bool estConnecte;
bool aGagne;
bool peutAttaquer;
On reconnaît souvent un booléen grâce à des débuts comme :
est...a...peut...doit...Cela rend les conditions beaucoup plus lisibles :
if (estVivant)
{
Console.WriteLine("Le personnage peut continuer.");
}
Les abréviations rendent souvent le code moins clair.
Exemple moins bon :
int nbPv;
string nomPers;
Exemple plus clair :
int nombreDePointsDeVie;
string nomPersonnage;
Cela dit, certaines abréviations très connues peuvent rester acceptables si elles sont comprises par tous, par exemple :
idurltvxmlMais il faut rester prudent.
Un nom doit être précis, mais pas interminable.
Exemple excessif :
int nombreTotalDePointsDeVieRestantsDuPersonnagePrincipal;
Exemple plus raisonnable :
int pointsDeVieRestants;
Le but est de trouver un équilibre entre précision et lisibilité.
Un nom doit représenter une seule chose claire.
Exemple confus :
string infos;
Que contient infos ? Un nom ? Un texte complet ? Une liste ? Une description ?
On préfère :
string description;
string nomComplet;
string messageErreur;
Il faut éviter de mélanger plusieurs langues dans le même code.
Exemple à éviter :
string playerName;
int pointsDeVie;
bool isAlive;
Mieux vaut choisir une convention cohérente :
string nomJoueur;
int pointsDeVie;
bool estVivant;
string playerName;
int hitPoints;
bool isAlive;
Dans un contexte scolaire, surtout au début, tout en français peut être très utile pour comprendre les concepts. Dans un contexte professionnel, l’anglais est très fréquent.
class perso
{
public string n;
public int pv;
public void atk()
{
Console.WriteLine(n);
}
}
class Personnage
{
public string Nom;
public int PointsDeVie;
public void AfficherNom()
{
Console.WriteLine(Nom);
}
}
class Personnage
{
private int _pointsDeVie;
public string Nom { get; set; }
public int PointsDeVie
{
get { return _pointsDeVie; }
set
{
if (value >= 0)
{
_pointsDeVie = value;
}
}
}
public void RecevoirDegats(int degats)
{
PointsDeVie -= degats;
}
}
| Élément | Convention fréquente | Exemple |
|---|---|---|
| Classe | PascalCase | Personnage |
| Méthode | PascalCase | RecevoirDegats() |
| Propriété | PascalCase | PointsDeVie |
| Variable locale | camelCase | pointsDeVie |
| Paramètre | camelCase | degats |
| Champ privé | _camelCase |
_pointsDeVie |
| Constante | PascalCase | PointsDeVieMaximum |
Les conventions de nommage ne sont pas du “décor”. Elles servent à écrire un code :
En C#, retiens surtout ceci :
_camelCaseQuand tu dois choisir un nom, pose-toi simplement une de ces questions :
Si la réponse est oui, le nom est probablement bon.