Un autre des principes du Clean code est le principe DRY. Qui signifie Don’t Repeat Yourself ou en français: « Ne te répètes pas ».
La duplication de code ralentit la maintenance et favorise les erreurs.
Illustrons ce principe avec un exemple en Typescript :
function calculateRectangleArea(width: number, height: number): number {
return width * height;
}
function calculateCircleArea(radius: number): number {
return Math.PI * radius * radius;
}
function calculateTriangleArea(base: number, height: number): number {
return 0.5 * base * height;
}
function printRectangleArea(width: number, height: number): void {
const area = width * height;
console.log(`Rectangle area is ${area}`);
}
function printCircleArea(radius: number): void {
const area = Math.PI * radius * radius;
console.log(`Circle area is ${area}`);
}
function printTriangleArea(base: number, height: number): void {
const area = 0.5 * base * height;
console.log(`Triangle area is ${area}`);
}
Nous avons 3 fonctions pour calculer des aires et 3 fonctions pour afficher les aires de 3 formes différentes. Nous pouvons donc :
- centraliser le calcul de l’aire avec une seule méthode
- centraliser la fonction d’affichage
Ce qui donne :
function calculateArea(shape: string, ...dimensions: number[]): number {
switch (shape) {
case "rectangle":
return dimensions[0] * dimensions[1];
case "circle":
return Math.PI * dimensions[0] * dimensions[0];
case "triangle":
return 0.5 * dimensions[0] * dimensions[1];
default:
throw new Error("Unknown shape");
}
}
function printArea(shape: string, ...dimensions: number[]): void {
const area = calculateArea(shape, ...dimensions);
console.log(`${shape} area is ${area}`);
}
Et voilà, en centralisant, nous évitons la répétition des calculs pour chaque forme. La logique de code est donc réunie.
La réutilisation et la maintenance sont simplifiés. Le code est aussi plus facile à étendre, par exemple pour ajouter une nouvelle forme.
C’est tout pour aujourd’hui !