architecture agile et développement durable

71
Architecture Agile et développement durable FÉLIX-ANTOINE BOURBONNAIS B.ING., M.SC., PSM Version 1.2 – Avril 2015

Upload: elapse-technologies

Post on 05-Jul-2015

747 views

Category:

Technology


1 download

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.

TRANSCRIPT

Page 1: Architecture Agile et développement durable

Architecture Agile et développement durable

FÉLIX-ANTOINE BOURBONNAIS

B.ING., M.SC., PSM

Version 1.2 – Avril 2015

Page 2: Architecture Agile et développement durable

© 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

Page 3: Architecture Agile et développement durable

© 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]

Page 4: Architecture Agile et développement durable

© 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

Page 5: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Scrum sans pratiques de développement pour soutenir le rythme

6

Page 6: Architecture Agile et développement durable

© 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

Page 7: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Nos prochains 90 minutes…

8

Page 8: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

FUTUR DU DÉVELOPPEMENTLe

9

Page 9: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

L’informatique est l’ADN de nos entreprises

10

Page 10: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Ça bougeait vite…

Et ça bouge encore plus vite !

11

Page 11: Architecture Agile et développement durable

© 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

Page 12: Architecture Agile et développement durable

© 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

Page 13: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Le défi moderne…

La maintenabilité !

16

Page 14: Architecture Agile et développement durable

© 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 !

Page 15: Architecture Agile et développement durable

© 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!

Page 16: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Comment augmenter

ma maintenabilité alors ?

19

Les principes d’architecture

durable existent!

Page 17: Architecture Agile et développement durable

LES DÉFIS

Partie 1

20

Architecture durable

Page 18: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

L’ARCHITECTURE LOGICIELLE DURABLE

21

Page 19: Architecture Agile et développement durable

© 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

Page 20: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Mais…

Ceci n’est pas une invitation au BDUF !

(Big Design Up Front)

24

Page 21: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Architecture évolutive

Tout est à propos de

casser les vagues de modifications!

25

Page 22: Architecture Agile et développement durable

© 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

Page 23: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

« A good architect maximizes the number of decisions not made »

-- Robert C. Martin

27

Page 24: Architecture Agile et développement durable

© 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

Page 25: Architecture Agile et développement durable

QUELQUES PISTES

2e partie

29

Architecture durable

Page 26: Architecture Agile et développement 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

Page 27: Architecture Agile et développement durable

© 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

Page 28: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Résultat…

32

Page 29: Architecture Agile et développement durable

© 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

Page 30: Architecture Agile et développement durable

© 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

Page 31: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

LES PRINCIPESQuelques pistes

35

Page 32: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

POLYMORPHISME et les DÉPENDANCES

Le

36

Page 33: Architecture Agile et développement durable

© 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

Page 34: Architecture Agile et développement durable

© 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!

Page 35: Architecture Agile et développement durable

© 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!

Page 36: Architecture Agile et développement durable

© 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

Page 37: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Notre objectif…

Contenir les vagues causées par les modifications !

Page 38: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

TELL DON’T ASK

42

Page 39: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Le « Tell don’t Ask »

43Image: sheelamohan et jscreationzs / FreeDigitalPhotos.net

Page 40: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

DOMAINE ANÉMIQUE…ou PEUT-ÊTRE PAS…

Avoir un

44

Page 41: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

2 grands contextes

Page 42: Architecture Agile et développement durable

© 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

Page 43: Architecture Agile et développement durable

© 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

Page 44: Architecture Agile et développement durable

© 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 ??

Page 45: Architecture Agile et développement durable

© 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?

Page 46: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Alternatives s.v.p. ?!?

Domaine riche

DDD

Repository

50

Page 47: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Le sous-titre dit tout…

Tackling Complexity in the

Heart of Software

Domain Driven Design (DDD)

Page 48: Architecture Agile et développement durable

© 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 !

Page 49: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Le danger sinon…

53

L’effet d’avalanche !

Page 50: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

PRINCIPES « SOLID »

Les

54

Page 51: Architecture Agile et développement durable

© 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/

Page 52: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

LES PATRONS MAL CONNUSQuelques pistes

56

Page 53: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

La Factory

Factory=

Usine

57

Page 54: Architecture Agile et développement durable

© 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

Page 55: Architecture Agile et développement durable

© 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

Page 56: Architecture Agile et développement durable

© 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

Page 57: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Astuce

61

Ces concepts servent également pour attaquer le code patrimonial

Page 58: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

LES GRANDS MODÈLES ET CHOIX ARCHITECTURAUX

Quelques pistes

62

Page 59: Architecture Agile et développement durable

© 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…

Page 60: Architecture Agile et développement durable

© 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

Page 61: Architecture Agile et développement durable

© 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.

Page 62: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Les « micro-services »

66

Page 63: Architecture Agile et développement durable

© 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

Page 64: Architecture Agile et développement durable

CONCLUSION

68

Architecture durable

Page 65: Architecture Agile et développement 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!

Page 66: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

Mais l’architecture durable n’est pas suffisante…

70

Il reste les pratiques durables…

Page 67: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

72

ArchitectureAgile.comDiapositives et références

Page 68: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

73

Mer

ciMon nom

Félix-Antoine Bourbonnais

Mon [email protected]

Notre bloguedeveloppementagile.com

Nos Twitter@fbourbonnais | @elapsetech

Mon LinkedInlinkedin.com/in/fbourbonnais/fr

Page 69: Architecture Agile et développement durable

© 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?

Page 70: Architecture Agile et développement durable

© 2

01

5 Elapse Tech

nolo

gies

Formations

75

Mer

ciMon nom

Félix-Antoine Bourbonnais

Mon [email protected]

Notre bloguedeveloppementagile.com

Nos Twitter@fbourbonnais | @elapsetech

Mon LinkedInlinkedin.com/in/fbourbonnais/fr

Page 71: Architecture Agile et développement durable

© 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?