Upload
elapse-technologies
View
747
Download
1
Embed Size (px)
DESCRIPTION
Beaucoup d’équipes ont embrassé Scrum sans considérer l’architecture nécessaire pour soutenir un tel rythme et minimiser la dette technique. Comment adopter une architecture émergente, malléable et facile à changer? Bref, comment faire du développement logiciel durable? Principes SOLID, patrons de conception d’entreprise, architecture émergente et pilotée par le domaine (DDD) seront au menu.
Citation preview
Architecture Agile et développement durable
FÉLIX-ANTOINE BOURBONNAIS
B.ING., M.SC., PSM
Version 1.2 – Avril 2015
© 2
01
5 Elapse Tech
nolo
gies
Formations
3
Félix-Antoine BourbonnaisB.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
© 2
01
5 Elapse Tech
nolo
gies
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 [email protected]
© 2
01
5 Elapse Tech
nolo
gies
Formations
Image de Eyesplashhttp://commons.wikimedia.org/wiki/File:Welkom _wi llkomme n_Welcome_B ienven ue_Be nvenut o.jpg
© 2
01
5 Elapse Tech
nolo
gies
Formations
Scrum sans pratiques de développement pour soutenir le rythme
6
© 2
01
5 Elapse Tech
nolo
gies
Formations
Développement logiciel durable
Gestion de projets durable
+
Architecture durable
+
Pratiquesdurables
7Image : http://robcleary photo. blogspot.ca/2012/ 06/g reen-roof-cookfox.html
© 2
01
5 Elapse Tech
nolo
gies
Formations
Nos prochains 90 minutes…
8
© 2
01
5 Elapse Tech
nolo
gies
Formations
FUTUR DU DÉVELOPPEMENTLe
9
© 2
01
5 Elapse Tech
nolo
gies
Formations
L’informatique est l’ADN de nos entreprises
10
© 2
01
5 Elapse Tech
nolo
gies
Formations
Ça bougeait vite…
Et ça bouge encore plus vite !
11
© 2
01
5 Elapse Tech
nolo
gies
Formations
La réalité
Le futur technologiqueest incertain et il faut
livrer de plus en plus
vite…
12
Cloud
Big-Data
NoSQLDistribué
Mobile
© 2
01
5 Elapse Tech
nolo
gies
Formations
Pouvons-nous changer demain ?
Est-ce que nos architecture
permettent de changeret de nous adaptercomme si de rien
n’était en maintenant
notre vélocité?
15
© 2
01
5 Elapse Tech
nolo
gies
Formations
Le défi moderne…
La maintenabilité !
16
© 2
01
5 Elapse Tech
nolo
gies
Formations
Mais il ne faut surtout pas ralentir pour autant!
17
Il faut livrer vite, sans compromis sur la qualité
Il faut un code malléable !
© 2
01
5 Elapse Tech
nolo
gies
Formations
Le développement logiciel est désormais
un flot perpétuel…
18
Évitez de laisser la graisse s’accumuler
dans le tuyau!
© 2
01
5 Elapse Tech
nolo
gies
Formations
Comment augmenter
ma maintenabilité alors ?
19
Les principes d’architecture
durable existent!
LES DÉFIS
Partie 1
20
Architecture durable
© 2
01
5 Elapse Tech
nolo
gies
Formations
L’ARCHITECTURE LOGICIELLE DURABLE
21
© 2
01
5 Elapse Tech
nolo
gies
Formations
Architecture durable
23
On veut concilierl’environnement avec
l’économie pour que la
croissance perdure
Hum…On veut une architecture durable,
modulaire et la plus indépendanteque possible de la technologie
© 2
01
5 Elapse Tech
nolo
gies
Formations
Mais…
Ceci n’est pas une invitation au BDUF !
(Big Design Up Front)
24
© 2
01
5 Elapse Tech
nolo
gies
Formations
Architecture évolutive
Tout est à propos de
casser les vagues de modifications!
25
© 2
01
5 Elapse Tech
nolo
gies
Formations
On ne peut pas tout prévoir…
On veut des digues à différents niveaux !
… des conteneursde vagues!
26
© 2
01
5 Elapse Tech
nolo
gies
Formations
« A good architect maximizes the number of decisions not made »
-- Robert C. Martin
27
© 2
01
5 Elapse Tech
nolo
gies
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 nutrimentspour faire le meilleur miel.
28
QUELQUES PISTES
2e partie
29
Architecture durable
© 2
01
5 Elapse Tech
nolo
gies
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
© 2
01
5 Elapse Tech
nolo
gies
Formations
Le constat
Les bases de
l’orientation objet ne
sont peut-être pas aussi solides qu’on le pense…
31
© 2
01
5 Elapse Tech
nolo
gies
Formations
Résultat…
32
© 2
01
5 Elapse Tech
nolo
gies
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
© 2
01
5 Elapse Tech
nolo
gies
Formations
Notre objectif
Pour s’adapter aux
nouvelles réalités, il faut revisiter l’OO à la lumière de ces défis..
34
© 2
01
5 Elapse Tech
nolo
gies
Formations
LES PRINCIPESQuelques pistes
35
© 2
01
5 Elapse Tech
nolo
gies
Formations
POLYMORPHISME et les DÉPENDANCES
Le
36
© 2
01
5 Elapse Tech
nolo
gies
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
© 2
01
5 Elapse Tech
nolo
gies
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!
© 2
01
5 Elapse Tech
nolo
gies
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!
© 2
01
5 Elapse Tech
nolo
gies
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
© 2
01
5 Elapse Tech
nolo
gies
Formations
Notre objectif…
Contenir les vagues causées par les modifications !
© 2
01
5 Elapse Tech
nolo
gies
Formations
TELL DON’T ASK
42
© 2
01
5 Elapse Tech
nolo
gies
Formations
Le « Tell don’t Ask »
43Image: sheelamohan et jscreationzs / FreeDigitalPhotos.net
© 2
01
5 Elapse Tech
nolo
gies
Formations
DOMAINE ANÉMIQUE…ou PEUT-ÊTRE PAS…
Avoir un
44
© 2
01
5 Elapse Tech
nolo
gies
Formations
2 grands contextes
© 2
01
5 Elapse Tech
nolo
gies
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
© 2
01
5 Elapse Tech
nolo
gies
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)
• Difficile d’étendre le système facilement sans avoir à modifier plusieurs classes
47
© 2
01
5 Elapse Tech
nolo
gies
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 ??
© 2
01
5 Elapse Tech
nolo
gies
Formations
Active Record ?
49
Mêmes questions!
Est-ce un choix conscient et pour quel type d’application?
© 2
01
5 Elapse Tech
nolo
gies
Formations
Alternatives s.v.p. ?!?
Domaine riche
DDD
Repository
…
50
© 2
01
5 Elapse Tech
nolo
gies
Formations
Le sous-titre dit tout…
Tackling Complexity in the
Heart of Software
Domain Driven Design (DDD)
© 2
01
5 Elapse Tech
nolo
gies
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 à combiner les
deux dans le même système !
© 2
01
5 Elapse Tech
nolo
gies
Formations
Le danger sinon…
53
L’effet d’avalanche !
© 2
01
5 Elapse Tech
nolo
gies
Formations
PRINCIPES « SOLID »
Les
54
© 2
01
5 Elapse Tech
nolo
gies
Formations
Principes S.O.L.I.D.
SRPSingle Responsibility
OCPOpen Closed
LSPLiskov Substitution
ISPInterface Segregation
DIPDependency Inversion
55Imagehttp://lostechies.com/derickbailey/2009/02/11/solid-development-principles -in-motivational-pictures/
© 2
01
5 Elapse Tech
nolo
gies
Formations
LES PATRONS MAL CONNUSQuelques pistes
56
© 2
01
5 Elapse Tech
nolo
gies
Formations
La Factory
Factory=
Usine
57
© 2
01
5 Elapse Tech
nolo
gies
Formations
Le « Repository »
Repository=
Un entrepôt
58Image de toolstop
Son but est de déshydrateret réhydrater des objets
© 2
01
5 Elapse Tech
nolo
gies
Formations
Pourquoi ?
Trop souvent, la création est
mélangée avec
l’entreposage ou la logique d’affaires
59
© 2
01
5 Elapse Tech
nolo
gies
Formations
Concepts associés
60Image Bob Jagendorf, Yutaka Tsutano, SteelCityHobbies , Team 19
Créer
Factory
Utiliser
Objets du domaine
Persister
Repository
Transporter
DTO
© 2
01
5 Elapse Tech
nolo
gies
Formations
Astuce
61
Ces concepts servent également pour attaquer le code patrimonial
© 2
01
5 Elapse Tech
nolo
gies
Formations
LES GRANDS MODÈLES ET CHOIX ARCHITECTURAUX
Quelques pistes
62
© 2
01
5 Elapse Tech
nolo
gies
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/hexag ona l-architecture-for-testers-part-1
Ce qui nous ramène à l’utilisation
astucieuse de l’abstraction…
© 2
01
5 Elapse Tech
nolo
gies
Formations
Remarque
Architecture hurlante de Bob Martin
Les plans architecturaux d’une maison doivent crier:
« Ceci est une maison »
64Source: Robert C. Martin
© 2
01
5 Elapse Tech
nolo
gies
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
* Diagramme non officiel. Retenir l ’idée générale.
© 2
01
5 Elapse Tech
nolo
gies
Formations
Les « micro-services »
66
© 2
01
5 Elapse Tech
nolo
gies
Formations
Modèles architecturaux
Clean Architecture
67http://blog.8thlight.com/ uncle-bob/2012/08/13/the-clean-architecture.html
CONCLUSION
68
Architecture durable
© 2
01
5 Elapse Tech
nolo
gies
Formations
Savez-vous ce que sera votre produit et la technologie dans 5 ans ?
69
Il n’est pas nécessaire de deviner. Il faut simplement
s’outiller pour évolueravec eux!
© 2
01
5 Elapse Tech
nolo
gies
Formations
Mais l’architecture durable n’est pas suffisante…
70
Il reste les pratiques durables…
© 2
01
5 Elapse Tech
nolo
gies
Formations
72
ArchitectureAgile.comDiapositives et références
© 2
01
5 Elapse Tech
nolo
gies
Formations
73
Mer
ciMon nom
Félix-Antoine Bourbonnais
Notre bloguedeveloppementagile.com
Nos Twitter@fbourbonnais | @elapsetech
Mon LinkedInlinkedin.com/in/fbourbonnais/fr
© 2
01
5 Elapse Tech
nolo
gies
Formations
74
Conception OO avancée ElapseFormations
Le contenu de cette présentation est couvert dans notre formation:
Vous voulez approfondir le sujet?
ElapseAccompagnement et diagnostics
Demandez à notre professionnel d’aller vous visiter pour une journée ou deux !
Besoin de conseils personnalisés?
© 2
01
5 Elapse Tech
nolo
gies
Formations
75
Mer
ciMon nom
Félix-Antoine Bourbonnais
Notre bloguedeveloppementagile.com
Nos Twitter@fbourbonnais | @elapsetech
Mon LinkedInlinkedin.com/in/fbourbonnais/fr
© 2
01
5 Elapse Tech
nolo
gies
Formations
76
Conception OO avancée ElapseFormations
Le contenu de cette présentation est couvert dans notre formation:
Vous voulez approfondir le sujet?
ElapseAccompagnement et diagnostics
Demandez à notre professionnel d’aller vous visiter pour une journée ou deux !
Besoin de conseils personnalisés?