refactoring vers les design patterns pyxis v2
TRANSCRIPT
Design est non-déterministe
Ce n’est pas un processus répétable qui garanti un résultat
prédictible
Les techniques de design sont guidé par des heuristiques
Intuitive
Plusieurs facteurs l’influence
Le design est un processus itératif
Processus à évolution lente
Compromis et priorités
Principe d’essais et erreurs
LES DÉFIS DU DESIGN
Abstraction claire
Designer de façon modulaire
Favoriser une forte cohésion
Séparation des préoccupations
Designer en strate ou en oignons
Limiter le nombre d’abstractions par niveau
Distribution des responsabilités balancée
S’inspirer des objets de la vie
Limitation du couplage
Garder le minimum d’interconnections
Rendre les contrats explicites
Encapsuler les détails d’implémentation
LES HEURISTIQUES FONDAMENTALES
Choix de solutions simples
Pas de partie en trop (utiliser le TDD)
Éviter les défaillances
Design pour la testabilité
Identification des zones à haut risque de changement
Extensibilité, Plugins, IOC, DI
Utilisation de solutions éprouvées
Design Patterns
LES HEURISTIQUES FONDAMENTALES
Contexte
DESIGN PATTERNS (PATRONS DE CONCEPTION)
Problèmes connus
Bonnespratiques
Solutions éprouvées
Creational
•Factory Method
•Abstract Factory
•Prototype
•Singleton
Structural
•Adapter
•Adapter
•Bridge
•Composite
•Decorator
•Facade
•Proxy
Behavioral
•Interpreter
•Template Method
•Chain of responsibility
•Command
•Iterator
•Mediator
•Memento
•Flyweight
•Observer
•State
•Strategy
•Visitor
LES DESIGN PATTERNS
Class
Object
Dans ce patron une famille d'algorithmes sont encapsulés de
manière à être interchangeables. Les algorithmes peuvent
changer indépendamment de l 'application qui s'en sert.
UTILISER UNE STRATÉGIE INTERCHANGER UN
ALGORITHME
Dans ce patron une famille d'algorithmes sont encapsulés de
manière à être interchangeables. Les algorithmes peuvent
changer indépendamment de l 'application qui s'en sert.
UTILISER UNE STRATÉGIE INTERCHANGER UN
ALGORITHME
Ce patron permet d'attacher dynamiquement des
responsabilités à un objet. C’est une alternative à l 'héritage
UTILISER LE DÉCORATEUR POUR ÉVITER L’EXPLOSION
DE HIÉRARCHIE
Ce patron permet d'attacher dynamiquement des
responsabilités à un objet. C’est une alternative à l 'héritage
UTILISER LE DÉCORATEUR POUR ÉVITER L’EXPLOSION
DE HIÉRARCHIE
Ce patron fournit une interface pour créer des objets sans
spécifier la classe concrète. La méthode s’occupe de la
création de l’ instance.
UTILISER UNE FACTORY POUR DÉLÉGUER LA CRÉATION
D’OBJETS
Ce patron fournit une interface pour créer des objets sans
spécifier la classe concrète. La méthode s’occupe de la
création de l’ instance.
UTILISER UNE FACTORY METHOD POUR DÉLÉGUER LA
CRÉATION D’OBJETS
A retenir
Le design est un art plus qu’une science
Les patterns sont là pour nous aider
Faire attention à la complexité
Eric De Carufel
http://blog.decarufel.net
http://pyxis-tech.com
Sources : https://bitbucket.org/decarufe/refactortopatterns
Questions?
23
CONCLUSION
Est à la recherche de dévelopeurs
Visitez la section carrière sur
pyxis-tech.com