SlideShare una empresa de Scribd logo
1 de 22
k e !
    gs to
 a s in
BGuildford Coding
        Dojo
First Things First

Who are you?

What do you do?

Coding experience

One unusual
factoid about
yourself
Some Definitions



Dojo - “the place of
learning the way”
Some Definitions


Kata - “way of doing”

A choreographed series of
motions designed to teach
a particular skill or
pattern
What’s the Idea?

Deliberate
Practice of Key
Skills

Learn from others

HAVE FUN!
Dojo Rules
We respect each
other’s commitment
(No phones, email,
Facebook etc)

We all do TDD

We all do pair
programming

We do “Simple
Design”
Simple Design
All tests pass

Clear, expressive and
consistent

Does not duplicate
behaviour or
configuration

Minimises the number
of classes and methods
Format

Pair up

A problem is presented to be solved

We work on it in pomodoros (25 minute
cycles) - http://tomato.ist/gcd

When time up, 5 minute break to demo
your code to nearby pair, and reflect

At the end we show & tell our code
TDD Refresh

Write a failing test

Watch it fail(!)

Write code to make it pass

Refactor

Rinse & repeat
Uncle Bob’s Laws of TDD

 You may not write production code until
 you have written a failing unit test

 You may not write more of a unit test
 than is sufficient to fail (not compiling
 is a counted as a test failure)

 You may not write more production code
 than is sufficient to pass the currently
 failing test
FizzBuzz
Write a program that
prints the numbers from 1
to 100. But for multiples
of three print “Fizz”
instead of the number and
for the multiples of five
print “Buzz”. For numbers
which are multiples of
both three and five print
“FizzBuzz”:

1, 2, Fizz, 4, Buzz,
Fizz, 7, 8, Fizz, Buzz,
11, Fizz, 13, 14,
FizzBuzz, 16, 17, etc...
http://tomato.ist/gcd
http://tomato.ist/gcd
FizzBuzz (2)
Now modify your code to
print “Whizz” for
multiples of 7!



Multiple of 3: Fizz

Multiple of 5: Buzz

Multiple of 7: Whizz
http://tomato.ist/gcd
http://tomato.ist/gcd
FizzBuzz (3)
Now modify your code to
print “Fizz” for
multiples of 3 AND
numbers with digit 3 in
them!

Multiple of 3 or contains
digit ‘3’: Fizz

Multiple of 5: Buzz

Multiple of 7: Whizz
http://tomato.ist/gcd
http://tomato.ist/gcd
So how did it go?

Is the code clean?

Any smells?

Refactored? How
often?

Open/Closed?
Thank You
        Chris Pitts
       @thirstybear




     This work is licensed under a Creative Commons
Attribution-NonCommercial-NoDerivs 3.0 Unported License.
No, really...we’re done!

Más contenido relacionado

Destacado

Educação informatizada
Educação informatizadaEducação informatizada
Educação informatizadaIfreal
 
презентацияпроектаFunster
презентацияпроектаFunsterпрезентацияпроектаFunster
презентацияпроектаFunsterrustem_media
 
Transcripcíon en Organismos Procariotas
Transcripcíon en Organismos ProcariotasTranscripcíon en Organismos Procariotas
Transcripcíon en Organismos Procariotaswithoutnosegirl
 
62287955 egan-greg-el-instante-aleph
62287955 egan-greg-el-instante-aleph62287955 egan-greg-el-instante-aleph
62287955 egan-greg-el-instante-alephmirelitos
 
Inmovilizador clio 2003
Inmovilizador clio 2003Inmovilizador clio 2003
Inmovilizador clio 2003tclalito
 
Un modelo evaluador y su metodología
Un modelo evaluador y su metodologíaUn modelo evaluador y su metodología
Un modelo evaluador y su metodologíaViiryp Gonzalez
 
Stretagies that fit Emerging Markets
Stretagies that fit Emerging MarketsStretagies that fit Emerging Markets
Stretagies that fit Emerging MarketsRizwan Qamar
 
A história da quadradinha
A história da quadradinhaA história da quadradinha
A história da quadradinhaji.calvaria
 
My Vampire Diaries
My Vampire DiariesMy Vampire Diaries
My Vampire DiariesLiam Jacobs
 
Dehesa la moheda presentación y precios 20122012
Dehesa la moheda presentación y precios 20122012Dehesa la moheda presentación y precios 20122012
Dehesa la moheda presentación y precios 20122012dehesalamoheda
 
Φύλλο εργασίας Θουκυδίδη Ιστορία Κεφ. 71 73
Φύλλο εργασίας Θουκυδίδη Ιστορία Κεφ. 71 73Φύλλο εργασίας Θουκυδίδη Ιστορία Κεφ. 71 73
Φύλλο εργασίας Θουκυδίδη Ιστορία Κεφ. 71 73Vassiliki Yiannou
 
Apresentacao TCC - ERP Open Souce
Apresentacao TCC - ERP Open SouceApresentacao TCC - ERP Open Souce
Apresentacao TCC - ERP Open SouceAnderson De Faro
 
Construindo Diretivas com AngularJS
Construindo Diretivas com AngularJSConstruindo Diretivas com AngularJS
Construindo Diretivas com AngularJSRodrigo Branas
 
Coding dojo - TDD
Coding dojo - TDDCoding dojo - TDD
Coding dojo - TDDSteve Zhang
 
Continuous Delivery na SoundCloud
Continuous Delivery na SoundCloudContinuous Delivery na SoundCloud
Continuous Delivery na SoundCloudVitor Pellegrino
 

Destacado (20)

Educação informatizada
Educação informatizadaEducação informatizada
Educação informatizada
 
презентацияпроектаFunster
презентацияпроектаFunsterпрезентацияпроектаFunster
презентацияпроектаFunster
 
Transcripcíon en Organismos Procariotas
Transcripcíon en Organismos ProcariotasTranscripcíon en Organismos Procariotas
Transcripcíon en Organismos Procariotas
 
Presentación1
Presentación1Presentación1
Presentación1
 
62287955 egan-greg-el-instante-aleph
62287955 egan-greg-el-instante-aleph62287955 egan-greg-el-instante-aleph
62287955 egan-greg-el-instante-aleph
 
Inmovilizador clio 2003
Inmovilizador clio 2003Inmovilizador clio 2003
Inmovilizador clio 2003
 
Un modelo evaluador y su metodología
Un modelo evaluador y su metodologíaUn modelo evaluador y su metodología
Un modelo evaluador y su metodología
 
Stretagies that fit Emerging Markets
Stretagies that fit Emerging MarketsStretagies that fit Emerging Markets
Stretagies that fit Emerging Markets
 
El Valor Verdadero y El Perdón
El Valor Verdadero y El PerdónEl Valor Verdadero y El Perdón
El Valor Verdadero y El Perdón
 
A história da quadradinha
A história da quadradinhaA história da quadradinha
A história da quadradinha
 
My Vampire Diaries
My Vampire DiariesMy Vampire Diaries
My Vampire Diaries
 
Dehesa la moheda presentación y precios 20122012
Dehesa la moheda presentación y precios 20122012Dehesa la moheda presentación y precios 20122012
Dehesa la moheda presentación y precios 20122012
 
Φύλλο εργασίας Θουκυδίδη Ιστορία Κεφ. 71 73
Φύλλο εργασίας Θουκυδίδη Ιστορία Κεφ. 71 73Φύλλο εργασίας Θουκυδίδη Ιστορία Κεφ. 71 73
Φύλλο εργασίας Θουκυδίδη Ιστορία Κεφ. 71 73
 
Apresentacao TCC - ERP Open Souce
Apresentacao TCC - ERP Open SouceApresentacao TCC - ERP Open Souce
Apresentacao TCC - ERP Open Souce
 
Construindo Diretivas com AngularJS
Construindo Diretivas com AngularJSConstruindo Diretivas com AngularJS
Construindo Diretivas com AngularJS
 
Protecting Power Plants from SSR
Protecting Power Plants from SSRProtecting Power Plants from SSR
Protecting Power Plants from SSR
 
O som
O somO som
O som
 
Coding dojo - TDD
Coding dojo - TDDCoding dojo - TDD
Coding dojo - TDD
 
Continuous Delivery na SoundCloud
Continuous Delivery na SoundCloudContinuous Delivery na SoundCloud
Continuous Delivery na SoundCloud
 
Tudo para meninas
Tudo para meninasTudo para meninas
Tudo para meninas
 

Similar a Guildford Coding Dojo1

Kata de TDD by Jordi Anguela
Kata de TDD by Jordi AnguelaKata de TDD by Jordi Anguela
Kata de TDD by Jordi AnguelaCodium
 
Test Driven Development Workshop
Test Driven Development WorkshopTest Driven Development Workshop
Test Driven Development WorkshopKaren Sijbrandij
 
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspecTDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspecPatrick Luca Fazzi
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019Paulo Clavijo
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)wolframkriesing
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipCamille Bell
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingLemi Orhan Ergin
 
Mobile Development - Unit and Automation Testing
Mobile Development - Unit and Automation TestingMobile Development - Unit and Automation Testing
Mobile Development - Unit and Automation TestingManuel Vicente Vivo
 
Global Day of Coderetreat Munich 2018
Global Day of Coderetreat Munich 2018Global Day of Coderetreat Munich 2018
Global Day of Coderetreat Munich 2018David Völkel
 
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
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven DevelopmentPablo Villar
 
Python Coding Dojo - 2014-03-19
Python Coding Dojo - 2014-03-19Python Coding Dojo - 2014-03-19
Python Coding Dojo - 2014-03-19aschlapsi
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentjakubkoci
 

Similar a Guildford Coding Dojo1 (20)

Tdd
TddTdd
Tdd
 
Kata de TDD by Jordi Anguela
Kata de TDD by Jordi AnguelaKata de TDD by Jordi Anguela
Kata de TDD by Jordi Anguela
 
Test Driven Development Workshop
Test Driven Development WorkshopTest Driven Development Workshop
Test Driven Development Workshop
 
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspecTDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
 
Code Retreat
Code RetreatCode Retreat
Code Retreat
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
Tdd is not about testing
Tdd is not about testingTdd is not about testing
Tdd is not about testing
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 
Code Kata
Code KataCode Kata
Code Kata
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW Craftsmanship
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair Programming
 
Mobile Development - Unit and Automation Testing
Mobile Development - Unit and Automation TestingMobile Development - Unit and Automation Testing
Mobile Development - Unit and Automation Testing
 
Global Day of Coderetreat Munich 2018
Global Day of Coderetreat Munich 2018Global Day of Coderetreat Munich 2018
Global Day of Coderetreat Munich 2018
 
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
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
 
Python Coding Dojo - 2014-03-19
Python Coding Dojo - 2014-03-19Python Coding Dojo - 2014-03-19
Python Coding Dojo - 2014-03-19
 
BDD
BDDBDD
BDD
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Basic TDD moves
Basic TDD movesBasic TDD moves
Basic TDD moves
 

Último

Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimaginedpanagenda
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfUK Journal
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 

Último (20)

Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 

Guildford Coding Dojo1

  • 1. k e ! gs to a s in BGuildford Coding Dojo
  • 2. First Things First Who are you? What do you do? Coding experience One unusual factoid about yourself
  • 3. Some Definitions Dojo - “the place of learning the way”
  • 4. Some Definitions Kata - “way of doing” A choreographed series of motions designed to teach a particular skill or pattern
  • 5. What’s the Idea? Deliberate Practice of Key Skills Learn from others HAVE FUN!
  • 6. Dojo Rules We respect each other’s commitment (No phones, email, Facebook etc) We all do TDD We all do pair programming We do “Simple Design”
  • 7. Simple Design All tests pass Clear, expressive and consistent Does not duplicate behaviour or configuration Minimises the number of classes and methods
  • 8. Format Pair up A problem is presented to be solved We work on it in pomodoros (25 minute cycles) - http://tomato.ist/gcd When time up, 5 minute break to demo your code to nearby pair, and reflect At the end we show & tell our code
  • 9. TDD Refresh Write a failing test Watch it fail(!) Write code to make it pass Refactor Rinse & repeat
  • 10. Uncle Bob’s Laws of TDD You may not write production code until you have written a failing unit test You may not write more of a unit test than is sufficient to fail (not compiling is a counted as a test failure) You may not write more production code than is sufficient to pass the currently failing test
  • 11. FizzBuzz Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”: 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, etc...
  • 14. FizzBuzz (2) Now modify your code to print “Whizz” for multiples of 7! Multiple of 3: Fizz Multiple of 5: Buzz Multiple of 7: Whizz
  • 17. FizzBuzz (3) Now modify your code to print “Fizz” for multiples of 3 AND numbers with digit 3 in them! Multiple of 3 or contains digit ‘3’: Fizz Multiple of 5: Buzz Multiple of 7: Whizz
  • 20. So how did it go? Is the code clean? Any smells? Refactored? How often? Open/Closed?
  • 21. Thank You Chris Pitts @thirstybear This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.