SlideShare a Scribd company logo
1 of 12
Coding Dojo
Agile Mëtteg – 29 Nov 2012
BOW (REI)


   Who are we?
        Eric Ferrot (eferrot@agilepartner.net)
        Cédric Pontet (cpontet@agilepartner.net , @cpontet)
   Who are you?
        Name
        Company
        Experience
        Language




                     http://www.breakaway.cc/Asia/Japan/Japan-Bowing.php


29 Nov 2012                 Agile Mëtteg – Coding Dojo                     2
KATA

Kata is a Japanese word describing detailed
choreographed patterns of movements practiced
either solo or in pairs.
By practicing in a repetitive manner
the learner develops the ability to execute those
techniques and movements in a natural, reflex-
like manner.
The goal is to internalize the movements and
techniques of a kata so they can be executed and
adapted under different circumstances, without


                                               型
thought.


29 Nov 2012       Agile Mëtteg – Coding Dojo       3
DOJO


A dojo is a Japanese term which literally means
"place of the way".
The term can refer to a formal training place for
any of the Japanese do arts but typically it is
considered the formal gathering place for
students of any Japanese martial arts style such
as karate, judo, or samurai, to conduct training,
examinations and other related encounters.



                                               道場
29 Nov 2012       Agile Mëtteg – Coding Dojo        4
CODING DOJO / CODE KATA


   Wikipedia
        Kata (programming)
   Dave Thomas (Agile Manifesto)
        CodeKata
   Laurent Bossavit & Emmanuel Gaillot
        CodingDojo
   Emilie Bache
        Online resources for Coding Dojos
        Coding Dojo Handbook

29 Nov 2012          Agile Mëtteg – Coding Dojo     5
GOAL


   Practice of
        Test Driven Design
        Baby steps
        Refactoring
                                                       Test
   Acquire good
   developer habits

                                            Refactor          Code




29 Nov 2012          Agile Mëtteg – Coding Dojo                      6
FIZZBUZZ

Return “fizz”, “buzz” or “fizzbuzz”.
For a given natural number greater than zero return
   “fizz” if the number is dividable by 3
   “buzz” if the number is dividable by 5
   “fizzbuzz” if the number is dividable by 3 and 5
       Input                      Result
       1                          1
       2                          2
       3                          fizz
       4                          4
       5                          buzz
       6                          fizz
       10                         buzz
       15                         fizzbuzz
       30                         fizzbuzz
29 Nov 2012              Agile Mëtteg – Coding Dojo       7
TRANSFORMATION PRIORITY PREMISE

Transformation            Description
{}–>nil                   no code at all->code that employs nil
nil->constant
constant->constant+       a simple constant to a more complex constant
constant->scalar          replacing a constant with a variable or an argument
statement->statements adding more unconditional statements
unconditional->if         splitting the execution path
scalar->array
array->container
statement->recursion
if->while
expression->function      replacing an expression with a function or algorithm
variable->assignment      replacing the value of a variable

  http://cleancoder.posterous.com/the-transformation-priority-premise

  29 Nov 2012                 Agile Mëtteg – Coding Dojo                         8
PRIME FACTORS


Compute the prime factors of a given natural
number
         Input              Result ([…] denotes a list)
         1                  []
         2                  [2]
         3                  [3]
         4                  [2,2]
         5                  [5]
         6                  [2,3]
         7                  [7]
         8                  [2,2,2]
         9                  [3,3]



29 Nov 2012      Agile Mëtteg – Coding Dojo               9
REFACTORING KATA


   Emilie Bache
        Can you refactor ?                             Yahtzee
        In really small steps ?
        Can you turn some,
        frankly, ugly code into
        a paradigm of elegant,
        readable, extensible
        design?
                                         http://www.parentdish.com/2010/04/20/yahtzee-game/




29 Nov 2012           Agile Mëtteg – Coding Dojo                                          10
SAYONARA


   What do you think ?
        Feedback is welcome

   Where to find Katas ?
        Catalogs
         •    CodersDojo
         •    CodeKata
         •    CodingDojo
         •    Schuchert
        Samples
         • CodersDojo                           http://www.hoshuha.com/blog/japanese-bowing-etiquette.html

         • Refactoring Katas

29 Nov 2012                Agile Mëtteg – Coding Dojo                                             11
Follow us


Agile Partner web site
        http://www.agilepartner.net
Blog
        http://blog.agilepartner.net

        @agilepartner

        http://www.facebook.com/agilepartner

               http://www.slideshare.net/agilepartner
29 Nov 2012           Agile Mëtteg – Coding Dojo         12

More Related Content

Similar to Coding Dojo

Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017David Völkel
 
2014 05-14-pythoncodingdojo
2014 05-14-pythoncodingdojo2014 05-14-pythoncodingdojo
2014 05-14-pythoncodingdojoaschlapsi
 
8th pre alg -l34--nov15
8th pre alg -l34--nov158th pre alg -l34--nov15
8th pre alg -l34--nov15jdurst65
 
Stop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesStop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesEdorian
 
The London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer EducationThe London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer EducationNicholas Tollervey
 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)Peter Kofler
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Peter Kofler
 

Similar to Coding Dojo (10)

Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017
 
2014 05-14-pythoncodingdojo
2014 05-14-pythoncodingdojo2014 05-14-pythoncodingdojo
2014 05-14-pythoncodingdojo
 
8th pre alg -l34--nov15
8th pre alg -l34--nov158th pre alg -l34--nov15
8th pre alg -l34--nov15
 
Stop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesStop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principles
 
Coding Kwoon
Coding KwoonCoding Kwoon
Coding Kwoon
 
Organise a Code Dojo!
Organise a Code Dojo!Organise a Code Dojo!
Organise a Code Dojo!
 
The London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer EducationThe London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer Education
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)
 

More from Agile Partner S.A.

Domain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationDomain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationAgile Partner S.A.
 
Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesAgile Partner S.A.
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Agile Partner S.A.
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaborationAgile Partner S.A.
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Agile Partner S.A.
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industryAgile Partner S.A.
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Partner S.A.
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Partner S.A.
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Partner S.A.
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéAgile Partner S.A.
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean StartupAgile Partner S.A.
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileAgile Partner S.A.
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamAgile Partner S.A.
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgile Partner S.A.
 

More from Agile Partner S.A. (20)

Domain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationDomain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementation
 
Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétaires
 
Découverte de l'esprit agile
Découverte de l'esprit agileDécouverte de l'esprit agile
Découverte de l'esprit agile
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaboration
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industry
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePoint
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOps
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile Testing
 
Introduction to agile methods
Introduction to agile methodsIntroduction to agile methods
Introduction to agile methods
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilité
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean Startup
 
Agile testing games
Agile testing gamesAgile testing games
Agile testing games
 
Lkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à KanbanLkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à Kanban
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets Agile
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support team
 
It job day Henam 2011-06-20
It job day Henam 2011-06-20It job day Henam 2011-06-20
It job day Henam 2011-06-20
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years research
 

Recently uploaded

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Recently uploaded (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Coding Dojo

  • 1. Coding Dojo Agile Mëtteg – 29 Nov 2012
  • 2. BOW (REI) Who are we? Eric Ferrot (eferrot@agilepartner.net) Cédric Pontet (cpontet@agilepartner.net , @cpontet) Who are you? Name Company Experience Language http://www.breakaway.cc/Asia/Japan/Japan-Bowing.php 29 Nov 2012 Agile Mëtteg – Coding Dojo 2
  • 3. KATA Kata is a Japanese word describing detailed choreographed patterns of movements practiced either solo or in pairs. By practicing in a repetitive manner the learner develops the ability to execute those techniques and movements in a natural, reflex- like manner. The goal is to internalize the movements and techniques of a kata so they can be executed and adapted under different circumstances, without 型 thought. 29 Nov 2012 Agile Mëtteg – Coding Dojo 3
  • 4. DOJO A dojo is a Japanese term which literally means "place of the way". The term can refer to a formal training place for any of the Japanese do arts but typically it is considered the formal gathering place for students of any Japanese martial arts style such as karate, judo, or samurai, to conduct training, examinations and other related encounters. 道場 29 Nov 2012 Agile Mëtteg – Coding Dojo 4
  • 5. CODING DOJO / CODE KATA Wikipedia Kata (programming) Dave Thomas (Agile Manifesto) CodeKata Laurent Bossavit & Emmanuel Gaillot CodingDojo Emilie Bache Online resources for Coding Dojos Coding Dojo Handbook 29 Nov 2012 Agile Mëtteg – Coding Dojo 5
  • 6. GOAL Practice of Test Driven Design Baby steps Refactoring Test Acquire good developer habits Refactor Code 29 Nov 2012 Agile Mëtteg – Coding Dojo 6
  • 7. FIZZBUZZ Return “fizz”, “buzz” or “fizzbuzz”. For a given natural number greater than zero return “fizz” if the number is dividable by 3 “buzz” if the number is dividable by 5 “fizzbuzz” if the number is dividable by 3 and 5 Input Result 1 1 2 2 3 fizz 4 4 5 buzz 6 fizz 10 buzz 15 fizzbuzz 30 fizzbuzz 29 Nov 2012 Agile Mëtteg – Coding Dojo 7
  • 8. TRANSFORMATION PRIORITY PREMISE Transformation Description {}–>nil no code at all->code that employs nil nil->constant constant->constant+ a simple constant to a more complex constant constant->scalar replacing a constant with a variable or an argument statement->statements adding more unconditional statements unconditional->if splitting the execution path scalar->array array->container statement->recursion if->while expression->function replacing an expression with a function or algorithm variable->assignment replacing the value of a variable http://cleancoder.posterous.com/the-transformation-priority-premise 29 Nov 2012 Agile Mëtteg – Coding Dojo 8
  • 9. PRIME FACTORS Compute the prime factors of a given natural number Input Result ([…] denotes a list) 1 [] 2 [2] 3 [3] 4 [2,2] 5 [5] 6 [2,3] 7 [7] 8 [2,2,2] 9 [3,3] 29 Nov 2012 Agile Mëtteg – Coding Dojo 9
  • 10. REFACTORING KATA Emilie Bache Can you refactor ? Yahtzee In really small steps ? Can you turn some, frankly, ugly code into a paradigm of elegant, readable, extensible design? http://www.parentdish.com/2010/04/20/yahtzee-game/ 29 Nov 2012 Agile Mëtteg – Coding Dojo 10
  • 11. SAYONARA What do you think ? Feedback is welcome Where to find Katas ? Catalogs • CodersDojo • CodeKata • CodingDojo • Schuchert Samples • CodersDojo http://www.hoshuha.com/blog/japanese-bowing-etiquette.html • Refactoring Katas 29 Nov 2012 Agile Mëtteg – Coding Dojo 11
  • 12. Follow us Agile Partner web site http://www.agilepartner.net Blog http://blog.agilepartner.net @agilepartner http://www.facebook.com/agilepartner http://www.slideshare.net/agilepartner 29 Nov 2012 Agile Mëtteg – Coding Dojo 12