1. Le Nommage : Soyez Expressifs
Le nom d’une variable ou d’une fonction doit dire pourquoi elle existe, ce qu’elle fait et comment on l’utilise. ❌ Mauvais (Peu clair)2. Les Fonctions : Faites une seule chose (SRP)
Une fonction (ou un service) doit avoir une seule responsabilité. Si tu as besoin du mot “et” pour décrire ce que fait ta fonction, c’est qu’elle doit être découpée. ❌ Mauvais (Symfony - Service “fourre-tout”)3. Le Principe de “Don’t Repeat Yourself” (DRY)
Évite de copier-coller. Si tu vois la même logique deux fois, centralise-la. ❌ Mauvais (Twig/PHP - Duplication)4. Les Commentaires : Le code doit s’expliquer seul
N’utilise les commentaires que pour expliquer le “Pourquoi” (décisions complexes), jamais le “Quoi”. Si le code est complexe, renomme tes variables. ❌ Mauvais5. Les Principes SOLID (Le “S” et le “O”)
| Principe | Définition simple |
|---|---|
| Single Responsibility | Un fichier = Une mission. |
| Open/Closed | Ton code doit être ouvert à l’extension mais fermé à la modification. |
S : Single Responsibility Principle (SRP)
“Une classe ou une fonction ne devrait avoir qu’une seule raison de changer.” Si ton fichier s’occupe à la fois de calculer un prix, de formater une date et d’envoyer une notification, il a trop de raisons de changer. ❌ Le mauvais élève (La classe “Dieu”)- InvoiceCalculator : Ne connaît que les chiffres.
- InvoiceRenderer : Ne connaît que le HTML/PDF (Twig).
- InvoiceRepository : Ne connaît que la base de données (Doctrine).
O : Open/Closed Principle (OCP)
“Ouvert à l’extension, fermé à la modification.” Tu devrais pouvoir ajouter une nouvelle fonctionnalité sans modifier le code existant. ❌ Mauvais : Le switch infini6. Structure et Clean Architecture (Symfony)
En Symfony, respectez la hiérarchie pour ne pas transformer les contrôleurs en usines à gaz. Règle d’or :- Controller : Reçoit la
Request, valide les données (FormouMapRequestPayload), renvoie laResponse. Pas de logique métier. - Service : Contient toute la logique métier.
- Repository/Entity : Gère l’accès aux données via Doctrine.
Résumé pour l’équipe
- Lisibilité > Brièveté : On s’en fiche que le code soit court, on veut qu’il soit clair.
- Petit, c’est mieux : Des méthodes de moins de 20 lignes, des classes spécialisées.
- Supprime le code mort : Si une fonction n’est plus utilisée, on l’efface (Git s’en souvient).
