20140227 - injection de dépendances - mug lyon

Preview:

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

Injection/inversionde dépendances

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

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

Logo MUGLyon

1 2

3

&

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

#gwab

http://bit.ly/1jn7pEG

Inscrivez-vous

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/

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à

POURQUOI ?

Couplage faible (Low coupling) VS fort

Testabilité

Extensibilité

DEMO

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

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

QUELQUES FAUSSES BONNES IDEES !

Injection du Container = Service Locator

Faire des usines à gaz !

Anti-pattern ServiceLocator

DEMO

Injecter des/dans les entités

ET PLUS ENCORE…

Architecture hexagonale/en oignon

Domain Driven Design

Domain Events

Feedback

MERCI !

Recommended