13
Injection/inversion de dépendances MUG Lyon – 27 février 2014 – Hébergé par Sciences-U Clément Bouillier - @clem_bouillier

20140227 - injection de dépendances - mug lyon

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 20140227 - injection de dépendances - mug lyon

Injection/inversionde dépendances

MUG Lyon – 27 février 2014 – Hébergé par Sciences-UClément Bouillier - @clem_bouillier

Page 2: 20140227 - injection de dépendances - mug lyon

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

Page 3: 20140227 - injection de dépendances - mug lyon

Logo MUGLyon

1 2

3

Page 4: 20140227 - injection de dépendances - mug lyon

&

vous invitent le samedi 29 mars 2014 toute lajournée à LYON pour un événement mondial :

#gwab

http://bit.ly/1jn7pEG

Inscrivez-vous

Page 5: 20140227 - injection de dépendances - mug lyon

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/

Page 6: 20140227 - injection de dépendances - mug lyon

Injection de dépendances = Dependency Injection (DI)

…mais DI, c’est aussi Dependency Inversion (Principle = DIP)

…mais si! Le D du principe SOLID

…et on parle aussi d’IoC (Inversion of Control), non ?

commençons par là

Page 7: 20140227 - injection de dépendances - mug lyon

POURQUOI ?

Couplage faible (Low coupling) VS fort

Testabilité

Extensibilité

DEMO

Page 8: 20140227 - injection de dépendances - mug lyon

UTILISONS UN CONTAINER IoC/DI

Convention over Configuration pour le Register

DEMO

Proche des patterns Factory/Abstract Factory

Injection par constructeur, par setter ou par méthode

Page 9: 20140227 - injection de dépendances - mug lyon

USAGES « AVANCES »

Implémenter le pattern Strategy

DEMO

Implémenter le pattern Singleton/cycles de vie des objets injectés

Plusieurs Register pour une même classe/interface

Page 10: 20140227 - injection de dépendances - mug lyon

QUELQUES FAUSSES BONNES IDEES !

Injection du Container = Service Locator

Faire des usines à gaz !

Anti-pattern ServiceLocator

DEMO

Injecter des/dans les entités

Page 11: 20140227 - injection de dépendances - mug lyon

ET PLUS ENCORE…

Architecture hexagonale/en oignon

Domain Driven Design

Domain Events

Page 12: 20140227 - injection de dépendances - mug lyon

Feedback

MERCI !