J'avais entendu le nom il y a quelques années mais n'ayant pas plus creusé le concept je l'avais oublié. Le hasard du destin me fait retomber dessus aujourd'hui. Bref il s'agit de 9 règles de programmation à appliquer.
En résumé :
- N'utiliser qu'un seul niveau d'indentation
- Ne pas utiliser le mot-clef ELSE
- Encapsuler toutes les primitives et les String dans des objets
- Encapsuler les collections dans des objets
- N'enchaîner qu'un seul point (ou flèche) par ligne
- Ne pas utiliser d’abréviations
- Garder des classes petites (moins de 50 lignes)
- Aucune classe ne doit avoir plus de deux instances en guise de variables
- Ne jamais utiliser de Getter/Setter
Globalement, je le fais sans m'en rendre compte, mes classes sont minuscules (20 lignes en moyennes). Éventuellement le ELSE m'est encore utile mais c'est vrai que programmant en fail-first je lui préfère un throw direct et donc qu'il n'apparaît vraiment pas souvent.
Riduildel, cher ami, ce qui est décrit dans l'article ne constitue pas des tests unitaires dans le sens où ils sont covariants au code alors qu'un test unitaire, écrit en TDD est par essence contravariant.
Dit autrement, un test unitaire n'a pas besoin d'être modifié lorsque le code change puisqu'il est découplé du code. Pour le dire autrement, cela fait plus de 10 ans que j'écris des tests unitaires et je n'ai réellement compris ce qu'il fallait faire et comment en écrire que depuis moins d'un an... #Craftsmanship
Tout sombre dans le chaos et personne ne semble s’y intéresser.
A practical demonstration of how to apply the Single Responsibility Principle
Pour toi Lenny
Toujours intéressant comme piqûre de rappel.
-
Not only working software, but also well-crafted software
Pas seulement un logiciel qui marche, mais aussi un logiciel bien fait.
-
Not only responding to change, but also steadily adding value
Pas seulement répondre au changement, mais aussi ajouter régulièrement de la valeur.
-
Not only individuals and interactions, but also a community of professionals
Pas seulement des interactions et des individus, mais aussi une communauté de professionnels.
-
Not only customer collaboration, but also productive partnerships
Pas seulement de la collaboration avec le client, mais aussi des partenariats productifs.