architecture agile et développement durable

Post on 05-Jul-2015

747 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

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 Bourbonnaisfbourbonnais@elapsetech.com

© 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

Mon courrielfbourbonnais@elapsetech.com

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

Mon courrielfbourbonnais@elapsetech.com

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?

top related