Live coding au MUGLyon. Voir les commentaires des slides pour les explications (télécharger le PPT pour les voir) + le repository GitHub suivant avec les étapes représentées par des commits séparés : https://github.com/devcrafting/CouplingAndDependency
2. Le MUG Lyon
Une session tous les derniers jeudis du mois à Sciences-U (merci !)
•
Vote pour le futur logo MUGLyon
Prochaines sessions
•
•
•
Global Windows Azure Bootcamp le samedi 29 mars
Session d’avril : Gestion des périphériques modernes avec System Center
Configuration Manager
Session de mai : Code Simplicity avec Rui Carvalho
Suivez toutes les communautés lyonnaises sur le calendrier Lyon Tech Hub !
•
•
CARA Night Lean et startups le 4 mars
Human Talks le 11 mars
4. &
vous invitent le samedi 29 mars 2014 toute la
journée à LYON pour un événement mondial :
#gwab
Inscrivez-vous
http://bit.ly/1jn7pEG
5. Qui suis-je ?
Architecte/chef de projet/consultant mais avant tout
ARTISAN DEVELOPPEUR
> Twitter : @clem_bouillier
Membre actif des groupes suivants
> DevLyon : groupe de développeurs indépendants partageant une
vision de l’informatique créant de la valeur http://devlyon.fr
> MUG Lyon : groupe de passionnés de technologies en
environnement Microsoft sur Lyon
> Fier d’être développeur : groupe visant à promouvoir le métier
de développeur en France http://fierdetredeveloppeur.org/
6. Injection de dépendances = Dependency Injection (DI)
…et on parle aussi d’IoC (Inversion of Control), non ?
…mais DI, c’est aussi Dependency Inversion (Principle = DIP)
…mais si! Le D du principe SOLID
commençons par là
7. Couplage faible (Low coupling) VS fort
Testabilité
POURQUOI ?
Extensibilité
DEMO
8. Proche des patterns
Factory/Abstract Factory
Convention over Configuration pour le Register
UTILISONS UN CONTAINER IoC/DI
Injection par constructeur, par setter ou par méthode
DEMO
9. Implémenter le pattern Singleton/cycles de vie des objets injectés
USAGES « AVANCES »
Plusieurs Register pour une même classe/interface
Implémenter le pattern Strategy
DEMO
10. Anti-pattern ServiceLocator
Injection du Container = Service Locator
QUELQUES FAUSSES BONNES IDEES !
Injecter des/dans les entités
Faire des usines à gaz !
DEMO
13. Quelques références
Martin Fowler sur IoC/DI :
http://martinfowler.com/articles/injection.html
Uncle Bob sur le DIP : http://www.oodesign.com/dependencyinversion-principle.html
Mark Seemann sur le Service Locator :
http://blog.ploeh.dk/2010/02/03/ServiceLocatorisanAnti-Pattern/
Jimmy Bogard sur DDD :
http://lostechies.com/jimmybogard/2010/02/04/strengthening-yourdomain-a-primer/