Skip to main content

Classes-et-Interfaces

Classes

Nommage

Les classes qui représentent des services doivent représenter le type de classe dans leur convention de nommage, mais cela ne s'applique pas aux modèles.

Services

Au singulier, pour toute classe qui contient une logique métier.

✅ A faire
class StudentService {
....
}
❌ A ne pas faire
class StudentsService{
...
}
❌ Aussi, à ne pas faire
class StudentBusinessLogic {
...
}
❌ Aussi, à ne pas faire
class StudentBL {
...
}

Controllers

Au pluriel, pour refléter les endpoints tels que /api/students afin d'exposer votre logique via des opérations RESTful.

✅ A faire
class StudentsController {
....
}
❌ A ne pas faire
class StudentController {
...
}

Champs

Un champ est une variable de n'importe quel type qui est déclarée directement dans une classe ou une structure. Les champs sont des membres de leur type conteneur.

Nommage

Les champs de classe sont nommés en camel case avec un préfixe _

✅ A faire
class StudentsController {
private readonly string _studentName;
}
❌ A ne pas faire
class StudentController {
private readonly string StudentName;
}
❌ Aussi, à ne pas faire
class StudentController {
private readonly string studentName;
}

Doit suivre les mêmes règles de nommage que celles mentionnées dans les sections sur les variables.

Instanciations

4.2.0 Alias des paramètres d'entrée

Si les noms des variables d'entrée correspondent aux alias d'entrée, utilisez-les, sinon vous devez utiliser les alias, en particulier avec les valeurs passées en paramètre.

✅ A faire
int score = 150;
string name = "Josh";

var student = new Student(name, score);
Aussi, à faire
var student = new Student(name: "Josh", score: 150);
❌ Mais, à ne pas faire
var student = new Student("Josh", 150);
❌ Aussi, à ne pas faire
Student student = new (...);

Respect de l'ordre des propriétés

Lors de l'instanciation d'une instance de classe, assurez-vous que l'affectation de vos propriétés correspond à l'ordre des propriétés dans les déclarations de classe.

✅ A faire
public class Student
{
public Guid Id {get; set;}
public string Name {get; set;}
}

var student = new Student
{
Id = Guid.NewGuid(),
Name = "Elbek"
}
✅ Aussi, à faire
public class Student
{
private readonly Guid id;
private readonly string name;

public Student(Guid id, string name)
{
this.id = id;
this.name = name;
}
}

var student = new Student (id: Guid.NewGuid(), name: "Elbek");
❌ A ne pas faire
public class Student
{
public Guid Id {get; set;}
public string Name {get; set;}
}

var student = new Student
{
Name = "Elbek",
Id = Guid.NewGuid()
}
❌ Aussi, à ne pas faire
public class Student
{
private readonly Guid id;
private readonly string name;

public Student(string name, Guid id)
{
this.id = id;
this.name = name;
}
}

var student = new Student (id: Guid.NewGuid(), name: "Elbek");
❌ Aussi, à ne pas faire
public class Student
{
private readonly Guid id;
private readonly string name;

public Student(Guid id, string name)
{
this.id = id;
this.name = name;
}
}

var student = new Student (name: "Elbek", id: Guid.NewGuid());