L'impératif de qualité logicielle
- Conséquences d'une qualité insuffisante
- Le cycle infernal: écriture, réécriture
- Le concept de dette technique
- Outils et processus: nécessaires, mais pas suffisants
- Outils de contrôle de qualité
- Processus et formattage
- Limitations
- Qu'est-ce que du code propre ?
Principes de conception propre
- Principes généraux
- Principes fondateurs de la POO
- Les quatre principes de Kent Beck
- Importance du nommage
- Le bon sens par les acronymes: YAGNI/KISS/DRY/POLA
- Quelques principes de programmation fonctionnelle
- Minimiser le couplage, maximiser la cohésion
- Les principes SOLID
- Cohésion et couplage
- Stabilité et instabilité
- Supple design
- Intention-Revealing Interfaces
- Side-Effect-Free Functions
- Defensive Programming
- Conceptual Contours
- Standalone Classes et Closure of Operations
- Declarative Style of Design
- Bonus: le principe de symétrie
Améliorer la qualité du code existant: smells et refactors
- Les concepts de smell et de refactor
- Les smells de Martin Fowler
- Duplicated method
- Duplicated class
- Long method
- Long class
- Primitive obsession
- Bref aperçu d'autres smells
- Uneffective Java
- Egalité.. ou pas
- Immutabilité à trous
- Obsolescence instantanée
- Cachez cette exception que je ne saurais voir
- ArrayList obsession
- Design faible
- Modules techniques: Service-Dao-Entity
- Generate getters and setters
- La mort par imbrication: l'escalier du diable
- Paquets dépaquetés
- Etre ou ne pas être: la relation inappropriée Is-not-a
- Javadoc et tests alibi
- L'éditorialiste: l'intelligence enfouie dans les commentaires
- La nuit des codes vivants
- Modifier proprement une application legacy
Panorama des autres méthodes de conception propre
- La conception Test-first au service de la qualité
- Software Craftsmanship
- Briques de conception standard
- Le domaine métier comme noyau du logiciel: l'approche Domain-driven Design