Xavier Lamorlette

Conception clean code (code sain)

Vocabulaire

Fonction pure

Une fonction pure :

SOLID

S: Single Responsibility

Une classe / fonction doit avoir une et une seule responsabilité.
Une classe ne doit donc changer que pour une seule raison.

Cela permet :

O: Open / Close

Une classe doit être ouverte à l'extension mais fermée à la modification : elle ne doit être modifiable que par extension.
L'objectif est de ne pas toucher le code existant pour ne pas introduire de bug.
Cela force à un bon usage de l'abstraction et du polymorphisme.

L: Liskov Substitution

On doit pouvoir utiliser une instance d'une classe dérivée à la place d'une de la classe de base sans le savoir, sans que cela modifie la cohérence du programme.
Ce princide de substitualité permet de dire si l'héritage est cohérent de point de vue fonctionnel des clients.

Programmation par contrat :

I: Interface Segregation

Il vaut mieux des interfaces spécifiques pour chaque client plutôt qu'une seule interface générale.
Un client ne doit pas dépendre de méthodes qu'il n'utilise pas.
Ce principe est proche de celui de responsabilité unique.

Cela permet :

D: Dependency Inversion

Il faut dépendre des abstractions et non des implémentations.
Les modules de haut niveau ne doivent pas dépendre de ceux de bas niveau. Tous doivent dépendre d'abstractions.
Les abstractions ne doivent pas dépendre des détails mais le contraire.

Inversion of Control

Dependency Injection

La dépendance est un service qui fait partie de l'état de l'objet.
Un objet fourni à un autre une dépendance, plutôt que de laisser l'objet la construire ou la trouver lui-même.
Ça permet le découplage.
L'injection peut-être faite via le constructeur ou un setteur.

Dependency Injection

Règles de flocage

De Sandi Metz dans 99 Bottles of OOP.

Règles à appliquer dans l'ordre :

  1. Sélectionner les choses les plus similaires.
  2. Trouver leur plus petite différence.
  3. Appliquer le changement le plus simple pour la supprimer.

Étapes d'une transformation de code:

  1. Compiler le nouveau code.
  2. Appeler le nouveau code.
  3. Utiliser le résultat du nouveau code.
  4. Effacer l'ancien code.

La dernière mise à jour de cette page date de janvier 2019.

Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.