SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
HOW TO TURN YOUR DEVELOPERS
IN LESS THAN 6 MONTHS
IN PERFECT SOFTWARE CRAFTSMEN?
Jean-Laurent de Morlhon
Programmeur Java
@morlhon
Bruno Boucard
Programmeur C#
@brunoboucard
10 Février 2015 -14h
FRUITSHOP.IO
WE SELL FRUITS!! YEAH!!
ITERATION 0
learn.tocraft.fr
• Trouver un binôme
• Une machine par binôme
• Langage au choix
• Programme qui lit/écrit depuis la entrée/sortie standard
• Projet disponible sur
http://github.com/jeanlaurent/basicloop
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
ITERATION 1
• Faire une caisse enregistreuse simple pour les clients en
magasin
• 3 produits:
Pommes ( 1€ ), Bananes ( 1,5€ ), Cerises ( 0,75€ ).
• 1 article par ligne & afficher le total du panier en
centimes à chaque fois.
Tests Vérifications
> Pommes -> 100
> Cerises -> 175
> Cerises -> 250
> Cerises -> 75
> Pommes -> 175
> Cerises -> 250
> Bananes -> 400
> Pommes -> 500
10 minutes
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
ITERATION 2
• Même entrée et sortie que dans l’itération 1
• Prendre en compte des réductions
• Pour 2 lots de cerises achetés on applique 20 centimes de
réduction.
Tests Vérifications
> Pommes -> 100
> Cerises -> 175
> Cerises -> 230
> Cerises -> 75
> Pommes -> 175
> Cerises -> 230
> Bananes -> 380
> Cerises -> 455
> Cerises -> 510
> Pommes -> 610
10 minutes
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
ITERATION 3
• Support du format CSV en entrée
• Les articles doivent être séparés par des virgules
• Même prix & réductions que pour l’itération 2
Tests
> Pommes, Cerises, Bananes -> 325
> Pommes -> 425
10 minutes
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
ITERATION 3’
• Support du format CSV repoussé à plus tard, Même deadline !!!
• On revient à une entrée par ligne.
• La réduction pour les cerises passe à 30 centimes.
• Un lot de bananes acheté, le second est offert.
Tests Vérifications
> Cerises -> 75
> Cerises -> 120
> Bananes -> 270
> Bananes -> 270
> Cerises -> 75
> Pommes -> 175
> Cerises -> 220
> Bananes -> 370
> Pommes -> 470
> Bananes -> 470
> Cerises -> 545
10 minutes
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
ITERATION 4
• Support de la localisation
• La réduction pour les cerises repassent à 0,20 €
• On doit supporter les mots "Apples" et "Mele" pour "Pommes"
Tests
> Cerises -> 75
> Apples -> 175
> Cerises -> 230
> Bananes -> 380
> Bananes -> 380
10 minutes
Vérifications
> Cerises -> 75
> Apples -> 175
> Cerises -> 230
> Bananes -> 380
> Pommes -> 480
> Mele -> 580
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
ITERATION 5
• Support de la localisation par article
• Le support du CSV est pour la prochaine itération
• 3 lots de "Apples" valent 2 €
• 2 lots de "Mele" valent 1,50 €
Tests
> Mele -> 100
> Apples -> 200
> Apples -> 300
> Pommes -> 400
> Apples -> 400
> Mele -> 450
> Cerises -> 525
> Cerises -> 580
10 minutes
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
ITERATION 5’
• On a déployé du nouveau Hardware, faut redeployer asap.
• Même deadline
• 3 lots de "Apples" valent 2 €
• 2 lots de "Mele" valent 1 €
Tests Vérifications
> Mele, Apples, Apples,
Pommes, Apples, Mele,
Cerises, Cerises,
Bananes -> 680
> Cerises, Apples -> 175
> Cerises -> 230
> Apples, Pommes, Bananes -> 580
> Apples, Pommes -> 680
> Mele -> 780
> Pommes -> 880
10 minutes
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
ITERATION 6
• Fix Bug + Créer les super réductions
• Bug: Support du CSV ET d’une entrée par ligne
• 4 pommes achetées, 1 € de réduction
• 5 fruits achetés, 2 € de réduction
Tests
Vérifications
> Mele, Apples, Apples, Mele -> 200
> Bananes -> 150
> Mele, Apples, Apples, Pommes, Mele -> 150
> Mele, Apples, Apples, Pommes, Mele -> 100
> Bananes -> 250
10 minutes
Formations pour programmeurs par des programmeurs
learn.tocraft.fr
CONCLUSION
• Qui a utilisé un système de gestion de version ?
• Qui a utilisé des tests, a partir de quelle itération ?
• Qui a écrit et maintenu des tests d’acceptance ?
• Quid du code de CSV lorsqu’il n’était plus nécessaire
• Est-ce que votre code est propre ?
• Est-ce que votre code répond au besoin ?

Weitere ähnliche Inhalte

Andere mochten auch

Conding Dojo Fruit Shop
Conding Dojo Fruit ShopConding Dojo Fruit Shop
Conding Dojo Fruit ShopDuchess France
 
How to test untestable code
How to test untestable codeHow to test untestable code
How to test untestable codeBruno Boucard
 
How to test untestable code at apidays Paris 2017
How to test untestable code at apidays Paris 2017 How to test untestable code at apidays Paris 2017
How to test untestable code at apidays Paris 2017 Bruno Boucard
 
CQRS without event sourcing
CQRS without event sourcingCQRS without event sourcing
CQRS without event sourcingThomas Pierrain
 
Coder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureCoder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureThomas Pierrain
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7Microsoft
 
Confoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to startConfoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to startQuentin Adam
 
Electrify your code with PHP Generators
Electrify your code with PHP GeneratorsElectrify your code with PHP Generators
Electrify your code with PHP GeneratorsMark Baker
 
Get Soaked - An In Depth Look At PHP Streams
Get Soaked - An In Depth Look At PHP StreamsGet Soaked - An In Depth Look At PHP Streams
Get Soaked - An In Depth Look At PHP StreamsDavey Shafik
 
Techniques d'accélération des pages web
Techniques d'accélération des pages webTechniques d'accélération des pages web
Techniques d'accélération des pages webJean-Pierre Vincent
 
Automation using-phing
Automation using-phingAutomation using-phing
Automation using-phingRajat Pandit
 
The quest for global design principles (SymfonyLive Berlin 2015)
The quest for global design principles (SymfonyLive Berlin 2015)The quest for global design principles (SymfonyLive Berlin 2015)
The quest for global design principles (SymfonyLive Berlin 2015)Matthias Noback
 
Top tips my_sql_performance
Top tips my_sql_performanceTop tips my_sql_performance
Top tips my_sql_performanceafup Paris
 
Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015Marcello Duarte
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSocketsGonzalo Ayuso
 

Andere mochten auch (20)

Conding Dojo Fruit Shop
Conding Dojo Fruit ShopConding Dojo Fruit Shop
Conding Dojo Fruit Shop
 
How to test untestable code
How to test untestable codeHow to test untestable code
How to test untestable code
 
How to test untestable code at apidays Paris 2017
How to test untestable code at apidays Paris 2017 How to test untestable code at apidays Paris 2017
How to test untestable code at apidays Paris 2017
 
CQRS without event sourcing
CQRS without event sourcingCQRS without event sourcing
CQRS without event sourcing
 
Coder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureCoder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architecture
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7
 
Confoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to startConfoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to start
 
Amongst models
Amongst modelsAmongst models
Amongst models
 
Electrify your code with PHP Generators
Electrify your code with PHP GeneratorsElectrify your code with PHP Generators
Electrify your code with PHP Generators
 
Get Soaked - An In Depth Look At PHP Streams
Get Soaked - An In Depth Look At PHP StreamsGet Soaked - An In Depth Look At PHP Streams
Get Soaked - An In Depth Look At PHP Streams
 
Elastic Searching With PHP
Elastic Searching With PHPElastic Searching With PHP
Elastic Searching With PHP
 
Techniques d'accélération des pages web
Techniques d'accélération des pages webTechniques d'accélération des pages web
Techniques d'accélération des pages web
 
Diving deep into twig
Diving deep into twigDiving deep into twig
Diving deep into twig
 
PHP5.5 is Here
PHP5.5 is HerePHP5.5 is Here
PHP5.5 is Here
 
Automation using-phing
Automation using-phingAutomation using-phing
Automation using-phing
 
The quest for global design principles (SymfonyLive Berlin 2015)
The quest for global design principles (SymfonyLive Berlin 2015)The quest for global design principles (SymfonyLive Berlin 2015)
The quest for global design principles (SymfonyLive Berlin 2015)
 
Mocking Demystified
Mocking DemystifiedMocking Demystified
Mocking Demystified
 
Top tips my_sql_performance
Top tips my_sql_performanceTop tips my_sql_performance
Top tips my_sql_performance
 
Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
 

Ähnlich wie Fruit shop techdays 2015

D8 lxp1fr formation-introduction-au-developpement-ibm-domino-xpages
D8 lxp1fr formation-introduction-au-developpement-ibm-domino-xpagesD8 lxp1fr formation-introduction-au-developpement-ibm-domino-xpages
D8 lxp1fr formation-introduction-au-developpement-ibm-domino-xpagesCERTyou Formation
 
Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeProposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeDestination Brocéliande
 
Dw522 g formation-ibm-puredata-system-for-analytics-pour-developpeurs-et-admi...
Dw522 g formation-ibm-puredata-system-for-analytics-pour-developpeurs-et-admi...Dw522 g formation-ibm-puredata-system-for-analytics-pour-developpeurs-et-admi...
Dw522 g formation-ibm-puredata-system-for-analytics-pour-developpeurs-et-admi...CERTyou Formation
 
Devoxx france 2015 livrer chaque jour ce qui est prêt
Devoxx france 2015   livrer chaque jour ce qui est prêtDevoxx france 2015   livrer chaque jour ce qui est prêt
Devoxx france 2015 livrer chaque jour ce qui est prêtbeastiefurets
 
Techdays 2013 : ALM et eCommerce, des challenges en continu
Techdays 2013 : ALM et eCommerce, des challenges en continuTechdays 2013 : ALM et eCommerce, des challenges en continu
Techdays 2013 : ALM et eCommerce, des challenges en continuvlabatut
 
La qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesLa qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesGauthier Delamarre
 
10 s00005k formation-ip-office-9-technical-basic-implementation-workshop
10 s00005k formation-ip-office-9-technical-basic-implementation-workshop10 s00005k formation-ip-office-9-technical-basic-implementation-workshop
10 s00005k formation-ip-office-9-technical-basic-implementation-workshopCERTyou Formation
 
Université de la performance
Université de la performanceUniversité de la performance
Université de la performancepkernevez
 
Télécom - Web-Media : Un changement de référentiel
Télécom - Web-Media :  Un changement de référentielTélécom - Web-Media :  Un changement de référentiel
Télécom - Web-Media : Un changement de référentielJean-Eric Pelet
 

Ähnlich wie Fruit shop techdays 2015 (10)

Lean code
Lean codeLean code
Lean code
 
D8 lxp1fr formation-introduction-au-developpement-ibm-domino-xpages
D8 lxp1fr formation-introduction-au-developpement-ibm-domino-xpagesD8 lxp1fr formation-introduction-au-developpement-ibm-domino-xpages
D8 lxp1fr formation-introduction-au-developpement-ibm-domino-xpages
 
Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeProposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
 
Dw522 g formation-ibm-puredata-system-for-analytics-pour-developpeurs-et-admi...
Dw522 g formation-ibm-puredata-system-for-analytics-pour-developpeurs-et-admi...Dw522 g formation-ibm-puredata-system-for-analytics-pour-developpeurs-et-admi...
Dw522 g formation-ibm-puredata-system-for-analytics-pour-developpeurs-et-admi...
 
Devoxx france 2015 livrer chaque jour ce qui est prêt
Devoxx france 2015   livrer chaque jour ce qui est prêtDevoxx france 2015   livrer chaque jour ce qui est prêt
Devoxx france 2015 livrer chaque jour ce qui est prêt
 
Techdays 2013 : ALM et eCommerce, des challenges en continu
Techdays 2013 : ALM et eCommerce, des challenges en continuTechdays 2013 : ALM et eCommerce, des challenges en continu
Techdays 2013 : ALM et eCommerce, des challenges en continu
 
La qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesLa qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitaires
 
10 s00005k formation-ip-office-9-technical-basic-implementation-workshop
10 s00005k formation-ip-office-9-technical-basic-implementation-workshop10 s00005k formation-ip-office-9-technical-basic-implementation-workshop
10 s00005k formation-ip-office-9-technical-basic-implementation-workshop
 
Université de la performance
Université de la performanceUniversité de la performance
Université de la performance
 
Télécom - Web-Media : Un changement de référentiel
Télécom - Web-Media :  Un changement de référentielTélécom - Web-Media :  Un changement de référentiel
Télécom - Web-Media : Un changement de référentiel
 

Fruit shop techdays 2015

  • 1. HOW TO TURN YOUR DEVELOPERS IN LESS THAN 6 MONTHS IN PERFECT SOFTWARE CRAFTSMEN? Jean-Laurent de Morlhon Programmeur Java @morlhon Bruno Boucard Programmeur C# @brunoboucard 10 Février 2015 -14h FRUITSHOP.IO WE SELL FRUITS!! YEAH!!
  • 2.
  • 3. ITERATION 0 learn.tocraft.fr • Trouver un binôme • Une machine par binôme • Langage au choix • Programme qui lit/écrit depuis la entrée/sortie standard • Projet disponible sur http://github.com/jeanlaurent/basicloop Formations pour programmeurs par des programmeurs learn.tocraft.fr
  • 4. Formations pour programmeurs par des programmeurs learn.tocraft.fr ITERATION 1 • Faire une caisse enregistreuse simple pour les clients en magasin • 3 produits: Pommes ( 1€ ), Bananes ( 1,5€ ), Cerises ( 0,75€ ). • 1 article par ligne & afficher le total du panier en centimes à chaque fois. Tests Vérifications > Pommes -> 100 > Cerises -> 175 > Cerises -> 250 > Cerises -> 75 > Pommes -> 175 > Cerises -> 250 > Bananes -> 400 > Pommes -> 500 10 minutes
  • 5. Formations pour programmeurs par des programmeurs learn.tocraft.fr ITERATION 2 • Même entrée et sortie que dans l’itération 1 • Prendre en compte des réductions • Pour 2 lots de cerises achetés on applique 20 centimes de réduction. Tests Vérifications > Pommes -> 100 > Cerises -> 175 > Cerises -> 230 > Cerises -> 75 > Pommes -> 175 > Cerises -> 230 > Bananes -> 380 > Cerises -> 455 > Cerises -> 510 > Pommes -> 610 10 minutes
  • 6. Formations pour programmeurs par des programmeurs learn.tocraft.fr ITERATION 3 • Support du format CSV en entrée • Les articles doivent être séparés par des virgules • Même prix & réductions que pour l’itération 2 Tests > Pommes, Cerises, Bananes -> 325 > Pommes -> 425 10 minutes
  • 7. Formations pour programmeurs par des programmeurs learn.tocraft.fr
  • 8. Formations pour programmeurs par des programmeurs learn.tocraft.fr ITERATION 3’ • Support du format CSV repoussé à plus tard, Même deadline !!! • On revient à une entrée par ligne. • La réduction pour les cerises passe à 30 centimes. • Un lot de bananes acheté, le second est offert. Tests Vérifications > Cerises -> 75 > Cerises -> 120 > Bananes -> 270 > Bananes -> 270 > Cerises -> 75 > Pommes -> 175 > Cerises -> 220 > Bananes -> 370 > Pommes -> 470 > Bananes -> 470 > Cerises -> 545 10 minutes
  • 9. Formations pour programmeurs par des programmeurs learn.tocraft.fr ITERATION 4 • Support de la localisation • La réduction pour les cerises repassent à 0,20 € • On doit supporter les mots "Apples" et "Mele" pour "Pommes" Tests > Cerises -> 75 > Apples -> 175 > Cerises -> 230 > Bananes -> 380 > Bananes -> 380 10 minutes Vérifications > Cerises -> 75 > Apples -> 175 > Cerises -> 230 > Bananes -> 380 > Pommes -> 480 > Mele -> 580
  • 10. Formations pour programmeurs par des programmeurs learn.tocraft.fr ITERATION 5 • Support de la localisation par article • Le support du CSV est pour la prochaine itération • 3 lots de "Apples" valent 2 € • 2 lots de "Mele" valent 1,50 € Tests > Mele -> 100 > Apples -> 200 > Apples -> 300 > Pommes -> 400 > Apples -> 400 > Mele -> 450 > Cerises -> 525 > Cerises -> 580 10 minutes
  • 11. Formations pour programmeurs par des programmeurs learn.tocraft.fr
  • 12. Formations pour programmeurs par des programmeurs learn.tocraft.fr ITERATION 5’ • On a déployé du nouveau Hardware, faut redeployer asap. • Même deadline • 3 lots de "Apples" valent 2 € • 2 lots de "Mele" valent 1 € Tests Vérifications > Mele, Apples, Apples, Pommes, Apples, Mele, Cerises, Cerises, Bananes -> 680 > Cerises, Apples -> 175 > Cerises -> 230 > Apples, Pommes, Bananes -> 580 > Apples, Pommes -> 680 > Mele -> 780 > Pommes -> 880 10 minutes
  • 13. Formations pour programmeurs par des programmeurs learn.tocraft.fr ITERATION 6 • Fix Bug + Créer les super réductions • Bug: Support du CSV ET d’une entrée par ligne • 4 pommes achetées, 1 € de réduction • 5 fruits achetés, 2 € de réduction Tests Vérifications > Mele, Apples, Apples, Mele -> 200 > Bananes -> 150 > Mele, Apples, Apples, Pommes, Mele -> 150 > Mele, Apples, Apples, Pommes, Mele -> 100 > Bananes -> 250 10 minutes
  • 14. Formations pour programmeurs par des programmeurs learn.tocraft.fr CONCLUSION • Qui a utilisé un système de gestion de version ? • Qui a utilisé des tests, a partir de quelle itération ? • Qui a écrit et maintenu des tests d’acceptance ? • Quid du code de CSV lorsqu’il n’était plus nécessaire • Est-ce que votre code est propre ? • Est-ce que votre code répond au besoin ?