Architecture Agile et
développement durable
FÉLIX-ANTOINEBOURBONNAIS
B.ING., M.SC.,PSM
Version1.2– Avril 2015
©2015ElapseTechnologies
Formations
3
Félix-Antoine Bourbonnais
B.ing., PSM, M.Sc. Ma passion…
/ Faire progresser les règles de l’art de
notre industrie et transmettre ma
passion pour le génie logiciel
Mon rêve…
/ Rendre le développement logiciel plus
professionnel, humain et qu’il repose
sur la compétence et la connaissance.
Ce que je fais…
/ J’aide des entreprises et des
professionnels à s’améliorer à l’aide
d’outils techniques et humains pour
développer durablement
©2015ElapseTechnologies
Formations
4
Qui sommes-nous ?
Je suis…
/ Formateur
/ Conférencier
/ Coach Agile et technique
Expert en…
/ Tests automatisés
/ Pratiques de développement
/ Architecture évolutive
/ Agilité et Scrum
Félix-Antoine Bourbonnais
fbourbonnais@elapsetech.com
©2015ElapseTechnologies
Formations
Image de Eyesplash
http://commons.wikimedia.org/wiki/File:Welkom _willkomme n_Welcome_Bienvenue_Be nvenut o.jpg
©2015ElapseTechnologies
Formations
Scrum sans pratiques de développement pour
soutenir le rythme
6
©2015ElapseTechnologies
Formations
Développement logiciel durable
Gestion de projets
durable
+
Architecture
durable
+
Pratiques
durables
7Image : http://robclearyphoto.blogspot.ca/2012/06/green-roof-cookfox.html
©2015ElapseTechnologies
Formations
Nos prochains 90 minutes…
8
©2015ElapseTechnologies
Formations
FUTUR DU DÉVELOPPEMENT
Le
9
©2015ElapseTechnologies
Formations
L’informatique est l’ADN de nos entreprises
10
©2015ElapseTechnologies
Formations
Ça bougeait vite…
Et ça bouge encore plus vite !
11
©2015ElapseTechnologies
Formations
La réalité
Le futur technologique
est incertain et il faut
livrer de plus en plus
vite…
12
Cloud
Big-Data
NoSQL
Distribué
Mobile
©2015ElapseTechnologies
Formations
Pouvons-nous changer demain ?
Est-ce que nos architecture
permettent de changer
et de nous adapter
comme si de rien
n’était en maintenant
notre vélocité?
15
©2015ElapseTechnologies
Formations
Le défi moderne…
La maintenabilité !
16
©2015ElapseTechnologies
Formations
Mais il ne faut surtout pas ralentir pour autant!
17
Il faut livrer vite, sans
compromissur la qualité
Il faut un code malléable !
©2015ElapseTechnologies
Formations
Le développement logiciel est désormais
un flot perpétuel…
18
Évitez de laisser la
graisse s’accumuler
dans le tuyau!
©2015ElapseTechnologies
Formations
Comment augmenter
ma maintenabilité alors ?
19
Les principes
d’architecture
durable existent!
LES DÉFIS
Partie 1
20
Architecture durable
©2015ElapseTechnologies
Formations
L’ARCHITECTURE LOGICIELLE DURABLE
21
©2015ElapseTechnologies
Formations
Architecture durable
23
On veut concilier
l’environnement avec
l’économie pour que la
croissance perdure
Hum…On veut une architecture durable,
modulaire et la plus indépendante
que possible de la technologie
©2015ElapseTechnologies
Formations
Mais…
Ceci n’est pas une
invitation au BDUF !
(Big Design Up Front)
24
©2015ElapseTechnologies
Formations
Architecture évolutive
Tout est à propos de
casser les vagues
de modifications!
25
©2015ElapseTechnologies
Formations
On ne peut pas tout prévoir…
On veut des digues à
différents niveaux !
… des conteneurs
de vagues!
26
©2015ElapseTechnologies
Formations
« A good architect maximizes the
number of decisions not made »
-- Robert C. Martin
27
©2015ElapseTechnologies
Formations
OK… Et concrètement?
Décollage…
Notre petite abeille aura besoin
d’une bonne carte pour
repérer toutes les fleurs offrant
les divers nutriments
pour fairele meilleur miel.
28
QUELQUES PISTES
2e partie
29
Architecture durable
©2015ElapseTechnologies
Formations
Avertissement
Rien n’est noir ou
blanc…
Tout est une question de
connaître pour appliquer
ou non les concepts selon
le contexte
30
©2015ElapseTechnologies
Formations
Le constat
Les bases de
l’orientation objet ne
sont peut-être pas aussi
solides qu’on le pense…
31
©2015ElapseTechnologies
Formations
Résultat…
32
©2015ElapseTechnologies
Formations
Le problème
Faire une architecture
durable, distribuée,
découplée, etc. demande
de faire des choix…
Mais sans maîtrise
des modèles…?
33
©2015ElapseTechnologies
Formations
Notre objectif
Pour s’adapter aux
nouvelles réalités, il faut
revisiter l’OO à la
lumière de ces défis..
34
©2015ElapseTechnologies
Formations
LES PRINCIPES
Quelques pistes
35
©2015ElapseTechnologies
Formations
POLYMORPHISME et les DÉPENDANCES
Le
36
©2015ElapseTechnologies
Formations
Inversion des dépendances
La grande contribution de
l’OO est la capacité à
inverser la
dépendance par
rapport au flot d’exécution
37
©2015ElapseTechnologies
Formations
L’abstraction
Le paradigme OO
implique l’utilisation
d’abstractions et
d’interfaces
38
Chaque abstraction est un point d’inflexion
qui permet de réduire le couplage et de
développer durablement!
©2015ElapseTechnologies
Formations
Les dépendances
Le polymorphisme est à
la base même de l’OO
C’est un « briseur de
dépendances » puissant!
39
On veut brancher les
dépendances, pas les souder!
©2015ElapseTechnologies
Formations
Briser les dépendances
40
X
SQLDb
MapDb
if( dbType == SQL )
... sqlDb.query("SELECT id ..."
else
... mapDb.get(id)
X
MapRepoSqlRepo
repository.findById(id)Repository
©2015ElapseTechnologies
Formations
Notre objectif…
Contenir les vagues causées par les modifications !
©2015ElapseTechnologies
Formations
TELL DON’T ASK
42
©2015ElapseTechnologies
Formations
Le « Tell don’t Ask »
43Image: sheelamohan et jscreationzs / FreeDigitalPhotos.net
©2015ElapseTechnologies
Formations
DOMAINE ANÉMIQUE…
ou PEUT-ÊTRE PAS…
Avoir un
44
©2015ElapseTechnologies
Formations
2 grands contextes
©2015ElapseTechnologies
Formations
Domaine anémique
Domaine où les objets ont
des données mais pas de
comportements.
Les comportements sont
uniquement dans des
objets « Managers » qui
gèrent le domaine
46
©2015ElapseTechnologies
Formations
Conséquences courantes
• Duplication de la logique (DRY)
• Les « contrôleurs » et « Managers » deviennent gros. On voit
la « God Class » approcher…
• Une modification demande de modifier plusieurs « services »
• Prévoir les effets des modifications devient difficile
(fragilitéd’un système)
• Difficiled’étendre le système facilement sans avoir à modifier
plusieurs classes
47
©2015ElapseTechnologies
Formations
Est-ce mauvais ?
Non pas forcément
(ex.: Rails)
Mais est-ce un choix
conscient ou par
défaut?
48
Avez-vous mesuré les désavantages en
fonction de votre contexte ??
©2015ElapseTechnologies
Formations
Active Record ?
49
Mêmes questions!
Est-ce un choix conscient et pour quel type d’application?
©2015ElapseTechnologies
Formations
Alternatives s.v.p. ?!?
Domaine riche
DDD
Repository
…
50
©2015ElapseTechnologies
Formations
Le sous-titre dit tout…
Tackling Complexity in the
Heart of Software
Domain
Driven Design (DDD)
©2015ElapseTechnologies
Formations
Moralité
Pour bénéficier d’une meilleure vitesse et d’une
bonne maintenabilitéet d’une réduction de la
complexité, vous avez intérêt à combinerles
deuxdans le même système !
©2015ElapseTechnologies
Formations
Le danger sinon…
53
L’effet d’avalanche !
©2015ElapseTechnologies
Formations
PRINCIPES « SOLID »
Les
54
©2015ElapseTechnologies
Formations
Principes S.O.L.I.D.
SRP
Single Responsibility
OCP
Open Closed
LSP
Liskov Substitution
ISP
Interface Segregation
DIP
Dependency Inversion
55
Image
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
©2015ElapseTechnologies
Formations
LES PATRONS MAL CONNUS
Quelques pistes
56
©2015ElapseTechnologies
Formations
La Factory
Factory
=
Usine
57
©2015ElapseTechnologies
Formations
Le « Repository »
Repository
=
Un entrepôt
58Image de toolstop
Son but est de déshydrater
et réhydrater des objets
©2015ElapseTechnologies
Formations
Pourquoi ?
Trop souvent, la
création est
mélangéeavec
l’entreposage ou la
logique d’affaires
59
©2015ElapseTechnologies
Formations
Concepts associés
60Image Bob Jagendorf, Yutaka Tsutano, SteelCityHobbies , Team 19
Créer
Factory
Utiliser
Objets du
domaine
Persister
Repository
Transporter
DTO
©2015ElapseTechnologies
Formations
Astuce
61
Ces concepts servent également pour attaquer le
code patrimonial 
©2015ElapseTechnologies
Formations
LES GRANDS MODÈLES ET CHOIX
ARCHITECTURAUX
Quelques pistes
62
©2015ElapseTechnologies
Formations
Modèles architecturaux
Hexagonal et Port & Adapter
Le domaine d’affaires
est au centre
Les préoccupations
bas-niveau sont des
« plugins »
63http://www.duncannisbet.co.uk/hexagonal-architecture-for-testers-part-1
Ce qui nous ramène à
l’utilisation
astucieuse de l’abstraction…
©2015ElapseTechnologies
Formations
Remarque
Architecture hurlante de Bob Martin
Les plans architecturaux
d’une maison doivent crier:
« Ceci est une maison »
64Source: Robert C. Martin
©2015ElapseTechnologies
Formations
Modèles architecturaux
DDD
Destiné à résoudre des
problèmes (logique)
complexes de design
Centré sur le
domaine « client »
65http://www.zankavtaskin.com/2013/09/applied-domain-driven-design-ddd-part-1.html
* Diagrammenonofficiel.Retenirl’idéegénérale.
©2015ElapseTechnologies
Formations
Les « micro-services »
66
©2015ElapseTechnologies
Formations
Modèles architecturaux
Clean Architecture
67http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
CONCLUSION
68
Architecture durable
©2015ElapseTechnologies
Formations
Savez-vous ce que sera votre produit et la
technologiedans 5 ans ?
69
Il n’est pas nécessaire de
deviner. Il faut simplement
s’outiller pour évoluer
avec eux!
©2015ElapseTechnologies
Formations
Mais l’architecture durable n’est pas suffisante…
70
Il reste les pratiques durables…
©2015ElapseTechnologies
Formations
72
ArchitectureAgile.com
Diapositives et références
©2015ElapseTechnologies
Formations
73
Merci
Mon nom
Félix-Antoine Bourbonnais
Mon courriel
fbourbonnais@elapsetech.com
Notre blogue
developpementagile.com
Nos Twitter
@fbourbonnais | @elapsetech
Mon LinkedIn
linkedin.com/in/fbourbonnais/fr
©2015ElapseTechnologies
Formations
74
Conception OO avancée Elapse
Formations
Le contenu de cette présentation est couvert
dans notre formation:
Vous voulez approfondir le sujet?
Elapse
Accompagnement et diagnostics
Demandez à notre professionnel d’aller
vous visiter pour une journée ou deux !
Besoin de conseils personnalisés?
©2015ElapseTechnologies
Formations
75
Merci
Mon nom
Félix-Antoine Bourbonnais
Mon courriel
fbourbonnais@elapsetech.com
Notre blogue
developpementagile.com
Nos Twitter
@fbourbonnais | @elapsetech
Mon LinkedIn
linkedin.com/in/fbourbonnais/fr
©2015ElapseTechnologies
Formations
76
Conception OO avancée Elapse
Formations
Le contenu de cette présentation est couvert
dans notre formation:
Vous voulez approfondir le sujet?
Elapse
Accompagnement et diagnostics
Demandez à notre professionnel d’aller
vous visiter pour une journée ou deux !
Besoin de conseils personnalisés?

Architecture Agile et développement durable (v 1.2)