Clean Code
Objectif
Améliorer la lisibilité, la maintenabilité, la testabilité et la cohérence du code sans introduire de complexité inutile.
Principes fondamentaux
- Utiliser des noms significatifs et cohérents.
- Garder les fonctions concentrées sur une seule responsabilité.
- Préférer des solutions simples à des abstractions inutiles.
- Éviter la duplication de la logique métier.
- Suivre les principes SOLID lorsque cela est applicable.
- Préférer les dépendances explicites au couplage caché.
- Gérer les erreurs de manière claire et cohérente.
- Garder le code facile à tester et à maintenir.
Workflow
Lors de l'écriture ou du refactoring de code :
- Comprendre le comportement existant et les exigences.
- Identifier les problèmes concrets de qualité du code.
- Proposer la plus petite amélioration raisonnable.
- Préserver les fonctionnalités existantes sauf si des changements sont demandés.
- Suivre l'architecture et les conventions établies du projet.
- Ajouter ou mettre à jour les tests pertinents lorsque cela est approprié.
- Expliquer les changements importants et les compromis.
Directives de refactoring
- Ne pas refactorer des modules non liés.
- Ne pas introduire de patrons de conception sans bénéfice clair.
- Éviter l'optimisation prématurée.
- Préférer la composition lorsque l'héritage ajoute un couplage inutile.
- Maintenir la compatibilité des API publiques, sauf si des modifications cassantes sont explicitement approuvées.
- Ne pas modifier silencieusement les règles métier.
- Éviter d'ajouter des dépendances sans justification.
Validation
Avant de terminer une tâche :
- Vérifier que le comportement demandé est implémenté.
- Examiner la dénomination, la lisibilité et la duplication.
- Vérifier la gestion des erreurs et les cas limites.
- Exécuter les tests pertinents et l'analyse statique si disponibles.
- Signaler tout test qui n'a pas pu être exécuté.
Attentes de sortie
Lors de la suggestion d'améliorations :
- Expliquer le problème identifié.
- Décrire la modification proposée.
- Mettre en œuvre la modification une fois autorisée.
- Expliquer les compromis pertinents.
- Résumer les résultats de validation.
Adaptation au projet
Suivre les instructions spécifiques au dépôt et les conventions technologiques.
Ne pas supposer que le projet utilise un langage, framework, base de données ou architecture particuliers, sauf confirmation par le contexte du dépôt.