Concevoir avec les Design Patterns
Référence : ADP
Durée : 5 jours (35 heures)
Les Design Patterns sont aujourd'hui reconnus comme un outil essentiel de conception objet et sont présents dans la plupart des Frameworks. Leur utilisation judicieuse améliore évolutivité et maintenabilité des logiciels. Mais dans les équipes où se côtoient développeurs chevronnés et inexpérimentés, la complexité inhérente aux Design Patterns fait qu'ils sont sous (ou mal) utilisés, et peuvent être source d'incompréhensions.
A l'issue de cette formation vous serez capable d'utiliser pragmatiquement les Design Patterns dans votre démarche de conception. Vous saurez les employer pour documenter et communiquer vos architectures et conceptions et pour améliorer la qualité de votre code existant.
Travaux pratiques :
Vous découvrirez les Design Patterns en les mettant en oeuvre de manière progressive dans une étude de cas et irez, pour certains, jusqu'à leur implémentation en Java, C# ou C++. Après avoir découvert vous-même certains Patterns et les avoir utilisés dans votre démarche de conception, vous serez amené à trouver des solutions d'architecture basées sur les Patterns. Une deuxième étude de cas vous permettra de mettre en pratique l'ensemble des acquis du cours.
Vous allez apprendre à :
- Maîtriser les principes fondamentaux de la conception objet
- Connaître les principaux Design Patterns
- Mettre en oeuvre pragmatiquement les Design Patterns au sein d'une conception objet
- Découvrir de nouveaux Patterns
- Appréhender la notion de langage de Patterns
- Découvrir comment les Patterns s'appliquent à l'architecture et aux Frameworks
- Mettre en oeuvre une démarche globale basée sur les Design Patterns
- Structurer les applications orientées objet en packages respectant les règles de couplage et de cohésion
- Améliorer une application existante en utilisant les principes du Refactoring combinés aux Design Patterns
Méthode pédagogique :
60% de travaux pratiques
Audience :
Développeurs objet, concepteurs, architectes
Pré-requis :
- Connaissances en conception objet, ou avoir suivi le cours OOAD
- Expérience concrète d'un langage de programmation objet
Programme :
- Introduction à la conception objet et aux Design Patterns
- Processus de développement agiles
- Analyse et conception
- La conception dans les processus agiles
- Découverte d'un Design Pattern
- Principes fondamentaux de conception
- Les Patterns Grasp d'affectation des responsabilités
- Les principes fondamentaux de la conception objet
- Les outils de la conception objet
- Design Patterns du GoF et autres Patterns
- Les Design Patterns de comportement (Itérateur, Stratégie, Template Method, Etat, Observateur, Médiateur, Visiteur)
- Les Design Patterns de création (Singleton, Fabrique Abstraite, Builder)
- Les Design Patterns de structure (Composite, Pont, Adaptateur, Décorateur, Façade, Proxy, Value Object)
- Les interactions entre Design Patterns
- Les langages de Patterns
- Patterns et architecture
- Couches logicielles
- Modèle Vue Contrôleur (MVC) et ses variantes
- Domain Driven Design
- Frameworks
- Démarche globale basée sur les Patterns
- Mise en oeuvre systématique des Patterns
- Documentation et communication autour des Patterns
- Organiser un modèle et en contrôler la qualité
- Règles d'organisation en packages
- Métriques de packages
- Le Refactoring
- Définition et principes du Refactoring
- Quelques "mauvaises odeurs"
- Exemples de Refactoring
- Refactoring vers les Design Patterns
- Les outils du Refactoring