SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Propulsez votre architecture
grâce au TDD et aux Mocks
FÉLIX-ANTOINE BOURBONNAIS
ING.JR, PSM, M.SC.
Agile Montréal
12 mars 2014
nasa.gov
©2014ElapseTechnologies
Image de Eyesplash
http://commons.wikimedia.org/wiki/File:Welkom_willkommen_Welcome_Bienvenue_Benvenuto.jpg
Félix-Antoine Bourbonnais
Ing. jr, PSM, M.Sc.
www.elapsetech.com
Formation – Accompagnement – Conseils
fbourbonnais@elapsetech.com
elapsetech.com/fab
@fbourbonnais
linkedin.com/in/fbourbonnais
Contact
Formateur et Coach Agile
Tests automatisés
TDD
BDD et ATDD
Code propre
Qualité logicielle
Architecture Agile
Orientation objet
Orientation aspect
Design testable et émergeant
Scrum
Accompagnement d’équipes
Agent de changement
©2014ElapseTechnologies
Avertissement
Cette présentation s’adresse
principalement à un public ayant déjà
expérimenté le TDD mais aucune
supervision n’est nécessaire pour en
profiter…
©2014ElapseTechnologies
Réchauffement…
Qui fait du TDD?
Qui utilise des Mocks?
Quelles sont vos
attentes?
Images de Idea Go / freedigitalphotos.net et ameshng / Flickr.com
©2014ElapseTechnologies
DOUBLURES ET MOCKS
Rappel sur les
©2014ElapseTechnologies
Rappel: les tests unitaires
©2014ElapseTechnologies
Rappel: les Mocks
CUT
Test
CUT
A
B
X
N
©2014ElapseTechnologies
Rappel: les mocks
C
Test
C
A
B
X
N
©2014ElapseTechnologies
Rappel: les mocks
C
Test
C
A’
B’
A’’
Lance
IOException
Retourne
[1]
©2014ElapseTechnologies
TDD
Rappels des fondements du
©2014ElapseTechnologies
Technique ou discipline?
Le TDD est une discipline
©2014ElapseTechnologies
Rappel: Le cycle du TDD
Écrire un
test qui
échoue
Faire
passer le
test
Réusiner
On passe à la phase
« VERTE » dès qu’on a un
test qui échoue.
Erreur de compilateur
= « échec ».1
On passe à la phase « Réusinage »
dès que le test passe.
2
1
©2014ElapseTechnologies
Shu-Ha-Ri
L’élève suit
l’enseignement
d’un maître
SHU
Il apprend
de d’autres
maîtres
(écoles)
HA
Il suit et a
sa propre
pratique…
RI
Power de Jardson Araújo du The Noun Project
Keikogi de Tiago Dos Reis Rodrigues duThe Noun Project
©2014ElapseTechnologies
TDD « CLASSIQUE »
Le design et le
Image: posterize / FreeDigitalPhotos.net
©2014ElapseTechnologies
TDD classique
Centré sur l’état
et le résultat final
Image: nuchylee / FreeDigitalPhotos.net
©2014ElapseTechnologies
TDD classique
Extraction des types
Classe
P Classe
R1
PTest
Division
R1Test
Classe
P
PTest
Mock
R1
©2014ElapseTechnologies
TDD classique
En résumé
TDD
Classique
Évolution du
« design »
•Par division
•Extraction
Problèmes
algorithmiques
•Traitement de
données
•Calculs
Valide l’état
©2014ElapseTechnologies
L’ORIENTATION OBJET
Rappel de
©2014ElapseTechnologies
InfrastructureDomaineUI
Messages et collaboration
Classe
ACtrl
Collaboration des objets  fonctionnalité
Classe
B
Classe
C
Iface
E
Classe
Persist
Classe
D
©2014ElapseTechnologies
Le « Tell don’t Ask »
getAmi(joe)
.getCorps()
.getJambe(Orient.GAUCHE)
.setPosition(
sol + 5,
centre + 20)
Image: renjith krishnan et jscreationzs / FreeDigitalPhotos.net
Hein !?!
©2014ElapseTechnologies
Pourquoi le « Tell don’t ask »
Cacher le
« comment »
Limiter l’effet
des
modifications
Limiter l’effet
d’avalanche
Réduire la
duplication
Laisser les objets
« s’occuper de
leurs oignons »
Éviter les
« domaines
anémiques »
©2014ElapseTechnologies
Stimulus
Un objet est une boîte noire
Classe
Réception d’un message
Envoi d’un message à
un collaborateur
Envoi d’un message à
un collaborateur
Retour d’une réponse
Effet
Effet
…
©2014ElapseTechnologies
PILOTER SON DESIGN AVEC DES MOCKS?
Comment
Image: jscreationzs / FreeDigitalPhotos.net
©2014ElapseTechnologies
Le TDD « Mockiste »
Centré sur les interactions et comportements
entre les objets considérant leur rôle
©2014ElapseTechnologies
Le TDD « Mockiste »
Utilise les Mocks comme pierre angulaire
Images: cooldesign/ freedigitalphotos.net
©2014ElapseTechnologies
TDD « Mockiste »
Extraction des types
Découverte des types par les Mocks
Définition de l’interface à partir des besoins établis dans les autres tests
©2014ElapseTechnologies
TDD piloté par les Mocks
Identifier les rôles
Viewer
<<Interface>>
Loader
Viewer
Test
Découverte pas à pas
Classe
PNGLoader
PNGLoader
Test
<<Interface>>
FileReader
Mock
Mock
?
?
Tirer les types à partir de la demande
©2014ElapseTechnologies
TDD piloté par les Mocks
Arriver à destination…
Test
acceptation
Viewer
UTest
Terminé
<<Interface>>
Loader
Classe
PNGLoader
Utest
<<Interface>>
FileReader
Fake
FileReader
Utest
©2014ElapseTechnologies
En résumé
Quelle est la responsabilité de
l’objet testé ?
De quoi est-ce que l’objet a besoin
pour réaliser son travail en terme de
rôles ?
Quels effets externes aura ce
comportement sur l’environnement
immédiat?
Classe testée
(CUT)
Responsabilité
A
Besoin de A
(rôle)
B
Effet sur B
©2014ElapseTechnologies
Exemple
banque.acheter(carte, marchand, montant)
--> carte.crediter(montant)
--> marchand.debiter(montant)
©2014ElapseTechnologies
DÉMONSTRATION
Présentation de la
Image: Stuart Miles / freedigitalphotos.net
©2014ElapseTechnologies
Démonstration
Soumissions à une conférence
#1 Soumission d’une présentation
En tant que soumissionnaire
Je veux soumettre une présentation à une conférence
Afin qu’elle soit évaluée par le comité de sélection
Critères d’acceptation
• Il est possible de soumettre une présentation
• La présentation est accumulée en attendant d’être évaluée par le comité
• Le comité est avisé qu’une nouvelle présentation doit être évaluée
©2014ElapseTechnologies
CONCLUSION et RÉSUMÉ
©2014ElapseTechnologies
Approche « outside-in »
Image: Simon Howden / FreeDigitalPhotos.net
UI
Domaine
Infrastructure
Duplication?
Réusinage
TDD
©2014ElapseTechnologies
Piloter le design par les mocks
Image: Simon Howden / FreeDigitalPhotos.net
UI
Domaine
Infrastructure
MyLibraryView
…Presenter
OnlineLibrary Book
LibraryProvider
LibraryRealTime
View
…Presenter
OnlineService
Moc
k
Moc
k
Composer à partir
des interactions
Position « utilisateur »
Explorations successives
(étape par étape)
Reporter les décisions
d’implémentations
Explorer sans trop
se compromettre
©2014ElapseTechnologies
Avantages de l’approche mockiste
Favorise le
« Tell don’t ask »
Moins de
« trains d’appels »
(Demeter)
Retarde les décisions
d’implémentations
Favorise un design
testable
Requiert moins
d’objets
implémentés pour
avoir une rétroaction
Classe fautive ciblée
en cas d’échec
©2014ElapseTechnologies
Avantages de l’approche mockiste
Développement piloté
par les besoins
(need-driven)
Définir les interfaces à
partir des appelants
Focalise sur le « Quoi »
avant le « Comment »
©2014ElapseTechnologies
Ce que l’on obtient généralement
Hiérarchie mince
Design basé sur
les rôles
Abstraction
(rôles)
Nommage clair
pour l’appelant
Possible meilleur
respect des
principes OO
©2014ElapseTechnologies
Désavantages de l’approche mockiste
Couplage du test
avec la signature
des collaborateurs
Fragiliser les tests
Fonctionne mal
avec des
problèmes
algorithmiques
Peut générer
beaucoup de
Mocks et
d’interfaces
Manquer de tests
intégrés
(pyramide)
©2014ElapseTechnologies
La bonne question…
Que voulez-vous
maximiser ?
©2014ElapseTechnologies
Complémentarité
Cette école doit être combinée!
Alterner entre les techniques
apporte généralement de bons
résultats.
Choisir selon ce que l’on veut
découvrir
©2014ElapseTechnologies
Rappel: TDD et architecture
+
Code testable
+ de
« design »
simple?
- de code
couplé
+ de code
réutilisable
+
d’architecture
émergeante
©2014ElapseTechnologies
Pour aller plus loin…
Image de anamkkml/ FreeDigitalPhotos.net et github.com
Code source
https://github.com/fbourbonn
ais/propulsez-architecture-tdd-
mocks
Diapositives
http://developpementagile.com/ar
chitecture-mocks-tdd
Les tests en
agilités
TDD pour
gestionnaires
Introduction à
l’ATDD et BDD
TDD avancé
TDD
Concepts
OO avancés
Nos formations sur le sujet
www.elapsetech.com/formation
©2014ElapseTechnologies
Merci Mon nom
Félix-Antoine Bourbonnais
Notre blogue
developpementagile.com
Notre site
elapsetech.com
Mon Twitter
@fbourbonnais
Mon LinkedIn
linkedin.com/in/fbourbonnais/fr
©2014ElapseTechnologies
Elapse Technologies
Formation
Accompagnement (coaching)
Mentorat virtuel
Conseils et diagnostics
Agilité (Scrum, Lean, XP)
Qualité et tests automatisés
Architecture Agile
Pratiques de développement
Votre allié en développement logiciel Agile
©2014ElapseTechnologies
Références
©2014ElapseTechnologies
Références
Steve Freeman, Tim Mackinnon, Nat Pryce, et Joe Walnes.
Mock roles, Not objects. p. 236–246. OOPSLA ’04.
Vancouver, BC, Canada, ACM, 2004.
Nat Pryce, et Steve Freeman, InfoQ: Mock Roles Not Object States .
QCon London 2007
http://www.infoq.com/presentations/Mock-Objects-Nat-Pryce-Steve-
Freeman
Martin Fowler, Mocks Aren’t Stubs, 2 janvier 2007.
[Résumé des approches]
http://martinfowler.com/articles/mocksArentStubs.html
©2014ElapseTechnologies
Références
Steve Freeman, Sustainable Test-Driven Development. QCon San Francisco
2009.
http://www.infoq.com/presentations/Sustainable-Test-Driven-Development
Codemanship presents... Classic TDD vs. London School, 2011. [Critiqué]
http://www.youtube.com/watch?v=AUE155LISV4
Michael Feathers et Steve Freeman. Michael Feathers and Steve Freeman on
Design, InfoQ at QCon San Francisco 2009
http://www.infoq.com/interviews/feathers-freeman-design
Discussion – « Classic TDD or « London School » - any
opinions/comments/elaboration on Jason Gorman’s post? » GOOS Mailinglist,
2011.
https://groups.google.com/d/topic/growing-object-oriented-
software/dOmOIafFDcI/discussion

Más contenido relacionado

La actualidad más candente

Innovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséInnovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséEmmanuel Hugonnet
 
Industrialisation des développements Java
Industrialisation des développements JavaIndustrialisation des développements Java
Industrialisation des développements JavaChristian Blavier
 
Les Tests : une évolution, pas une révolution
Les Tests : une évolution, pas une révolutionLes Tests : une évolution, pas une révolution
Les Tests : une évolution, pas une révolutionZeenat Nazaroudine
 
Webinar dalisys externalisation_de_test_2012-09-20
Webinar dalisys externalisation_de_test_2012-09-20Webinar dalisys externalisation_de_test_2012-09-20
Webinar dalisys externalisation_de_test_2012-09-20DALISYS
 
AT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillagesAT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillagesJérôme Avoustin
 
Agilite Puissance3 chez W4
Agilite Puissance3 chez W4Agilite Puissance3 chez W4
Agilite Puissance3 chez W4Jean-Luc MAZE
 
Libre Semester of Code : Faire travailler les étudiants sur des logiciels lib...
Libre Semester of Code : Faire travailler les étudiants sur des logiciels lib...Libre Semester of Code : Faire travailler les étudiants sur des logiciels lib...
Libre Semester of Code : Faire travailler les étudiants sur des logiciels lib...here_and_there
 
AgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgile Toulouse
 

La actualidad más candente (15)

Innovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséInnovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette Automatisé
 
Industrialisation des développements Java
Industrialisation des développements JavaIndustrialisation des développements Java
Industrialisation des développements Java
 
Initiation à l&rsquo;AOP
Initiation à l&rsquo;AOPInitiation à l&rsquo;AOP
Initiation à l&rsquo;AOP
 
Les Tests : une évolution, pas une révolution
Les Tests : une évolution, pas une révolutionLes Tests : une évolution, pas une révolution
Les Tests : une évolution, pas une révolution
 
Le pilotage par les tests
Le pilotage par les testsLe pilotage par les tests
Le pilotage par les tests
 
Soigner Sa Schizophrénie
Soigner Sa SchizophrénieSoigner Sa Schizophrénie
Soigner Sa Schizophrénie
 
Webinar dalisys externalisation_de_test_2012-09-20
Webinar dalisys externalisation_de_test_2012-09-20Webinar dalisys externalisation_de_test_2012-09-20
Webinar dalisys externalisation_de_test_2012-09-20
 
AT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillagesAT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillages
 
CM processus agile
CM processus agileCM processus agile
CM processus agile
 
Initiation à l'agile
Initiation à l'agileInitiation à l'agile
Initiation à l'agile
 
Wicket - JUG Lausanne
Wicket - JUG LausanneWicket - JUG Lausanne
Wicket - JUG Lausanne
 
Agilite Puissance3 chez W4
Agilite Puissance3 chez W4Agilite Puissance3 chez W4
Agilite Puissance3 chez W4
 
Libre Semester of Code : Faire travailler les étudiants sur des logiciels lib...
Libre Semester of Code : Faire travailler les étudiants sur des logiciels lib...Libre Semester of Code : Faire travailler les étudiants sur des logiciels lib...
Libre Semester of Code : Faire travailler les étudiants sur des logiciels lib...
 
Introduction à Uml
Introduction à UmlIntroduction à Uml
Introduction à Uml
 
AgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratique
 

Similar a Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)

Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011agnes_crepet
 
Cleancode / Tocea / Introduction
Cleancode / Tocea / IntroductionCleancode / Tocea / Introduction
Cleancode / Tocea / IntroductionSylvain Leroy
 
Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020NimeOps
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] IntroductionCellenza
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgile Toulouse
 
Domain Driven Design - Agile Tour Lille 2009
Domain Driven Design - Agile Tour Lille 2009Domain Driven Design - Agile Tour Lille 2009
Domain Driven Design - Agile Tour Lille 2009François Wauquier
 
De la pensée projet à la pensée produit
De la pensée projet à la pensée produitDe la pensée projet à la pensée produit
De la pensée projet à la pensée produitOCTO Technology Suisse
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMGrégory Ott
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...Adrien Clerbois
 
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? Christophe HERAL
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...Sébastien Levert
 
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...TelecomValley
 
cours-01-intro.pdf
cours-01-intro.pdfcours-01-intro.pdf
cours-01-intro.pdfNihedBahria2
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à zArnaud Auroux
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Saâd Zerhouni
 
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...Adrien Blind
 

Similar a Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014) (20)

Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011
 
Cleancode / Tocea / Introduction
Cleancode / Tocea / IntroductionCleancode / Tocea / Introduction
Cleancode / Tocea / Introduction
 
Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] Introduction
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
 
Domain Driven Design - Agile Tour Lille 2009
Domain Driven Design - Agile Tour Lille 2009Domain Driven Design - Agile Tour Lille 2009
Domain Driven Design - Agile Tour Lille 2009
 
De la pensée projet à la pensée produit
De la pensée projet à la pensée produitDe la pensée projet à la pensée produit
De la pensée projet à la pensée produit
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALM
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALM
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
 
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
 
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
 
cours-01-intro.pdf
cours-01-intro.pdfcours-01-intro.pdf
cours-01-intro.pdf
 
Digital way - Innovation - @Objectif
Digital way  - Innovation - @ObjectifDigital way  - Innovation - @Objectif
Digital way - Innovation - @Objectif
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à z
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C#
 
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
 

Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)