Maîtriser les fondements de la conception objet
Encapsulation : intérêt, bonnes pratiques
Agrégation d'objets
Héritage : cas d'usage, préférence pour la composition
Polymorphisme : ad-hoc, sous-typage, types paramétriques
Objets Valeurs (Value Objects)
Cercle vertueux de l'ignorance
Atelier : construire un schéma de classes cohérent
Gérer l'interaction entre les objets du système
Tell don't ask
Gestion des dépendances
Découpage des règles d’affaires basé sur l’interaction
Conception basée sur les comportements
Loi de Déméter
Atelier : implémentation de patterns de comportements
Concevoir un domaine et découper des objets
Conception par concepts plutôt que par données : concepts, types d'objets
Architecture Héxagonale
Présentation des principes SOLID
Principe de la responsabilité unique (SRP)
Principe de l’ouverture-fermeture (OCP)
Atelier : multiples exemples de mauvaise/bonne implémentation
Introduire une abstraction
Métrique de l'Abstraction-Instabilité (R. C. Martin)
Principe de substitution de Liskov (LSP)
Composition versus héritage
Principe de la ségrégation des interfaces (ISP)
Atelier : analyse d'un code et présentation des métriques - ré-écriture d'exemples concrets
Concevoir une application en couches
Conception modulaire
Conception d'un domaine d'affaires (aperçu du DDD)
Séparation de l’infrastructure (persistance, UI, ORM, etc.)
Principe d’inversion des dépendances (DIP)
Entrepôts référentiels (Repositories)
Objet de transport (DTO)
Présentation de la clean architecture
Atelier : implémentation d'une application en couches
Comprendre et appliquer les design patterns
Historique et ouvrages de référence
Domaines d'application
Comment appliquer les Design Patterns
Générer des instances
Factory et Abstract Factory pour la création sous condition
Singleton et dérivé : maîtrise des ressources disponibles
Organiser les structures de données
Le Composite, comment simplifier les listes
Proxy et Adapter, les interfaces de l'accès aux méthodes
La Facade : clarifier un composant
Maîtriser le comportement des objets
Strategy : l'usine à méthodes
Observer : l'événementiel sans événements
Chaîne de responsabilité et arbres de responsabilité
Visiteur et accès : maîtrise de la collaboration
Aperçu d'autres Design Patterns
Atelier : implémentation des différents design patterns étudiés