Formations Craftsmanship

Logo Clean Code

Formation Clean Code

Concevoir et écrire un code propre, améliorer un code existant

Durée 3 jours • Prix (HT) 1890€

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