SlideShare a Scribd company logo
Coding Dojo
Refactoring
­Tennis Kata­
@AlinPandichi
Coding Dojo
Expectations?
Coding Dojo Mindset
●  We are here to learn
●  Safe place outside of work
●  Need to slow down
●  Focus on doing it right
●  Non­competitive, collaborative, fun 
environment
Practice session
●  One laptop with a functional dev. env. is 
connected to a projector
●  Two developers pair program on the 
laptop. The others are watching the code 
changes.
●  Every 7 minutes, one developer leaves 
the laptop and the next one from the 
room takes his place. 
4 rules of simple design
●  Passes the tests
●  No duplication
●  Reveals intention
●  Fewer elements
Code smells
“A surface indication that usually 
corresponds to a deeper problem 
in the system”
Quick to spot:
●  bad names
●  long method, does too much
●  duplication
●  dead code, etc.
Refactoring
“A technique for restructuring 
an existing body of code, 
altering its internal structure 
without changing 
its external behavior”
Small transformations
●  Transformations preserving 
behavior
●  Small, less likely to go wrong
●  System is fully working after each 
change
●  Verified by working tests
●  Sequence of transformations 
produce a significant restructuring
Tennis Refactoring Kata
https://github.com/emilybache/
Tennis­Refactoring­Kata
Retrospective
●  What did you learn today?
●  What happened as expected?
●  What surprised you?
●  What do you plan to use at work?
Thank you!

More Related Content

What's hot (20)

PDF
Deliberate Practice (Agile Slovenia 2015)
Peter Kofler
 
PDF
Software Craftsmanship Journeyman Tour (2013)
Peter Kofler
 
PDF
TDD as if You Meant It (2013)
Peter Kofler
 
PDF
Coding Dojo: Asynchronous Clock-In (2016)
Peter Kofler
 
PDF
Designing Test Cases for the Gilded Rose Kata v3 (2016)
Peter Kofler
 
PDF
Coding Dojo Object Calisthenics (2016)
Peter Kofler
 
PDF
Idiomatic R for Rosetta Code (2013)
Peter Kofler
 
PDF
Mob Programming (2016)
Peter Kofler
 
PDF
Coding Dojo: Functional Calisthenics (2016)
Peter Kofler
 
PDF
Clean Readable Specifications (ETC 2016)
Peter Kofler
 
PDF
Coding Dojo: Data Munging (2016)
Peter Kofler
 
PDF
Code Retreat Venice (2016)
Peter Kofler
 
PDF
GDCR15 in Las Palmas, Gran Canaria
Peter Kofler
 
PDF
Code Quality Assurance v4 (2013)
Peter Kofler
 
PDF
JUnit Boot Camp (GeeCON 2016)
Peter Kofler
 
PDF
Coding Dojo: Baby Steps Push Challenge (2021)
Peter Kofler
 
PDF
Coding Dojo: Naming with Dices (2021)
Peter Kofler
 
PDF
Coding Dojo: Bank OCR Outside-In (2015)
Peter Kofler
 
PDF
Coding Dojo: Mars Rover (2014)
Peter Kofler
 
PDF
Extract Method Refactoring Workshop (2016)
Peter Kofler
 
Deliberate Practice (Agile Slovenia 2015)
Peter Kofler
 
Software Craftsmanship Journeyman Tour (2013)
Peter Kofler
 
TDD as if You Meant It (2013)
Peter Kofler
 
Coding Dojo: Asynchronous Clock-In (2016)
Peter Kofler
 
Designing Test Cases for the Gilded Rose Kata v3 (2016)
Peter Kofler
 
Coding Dojo Object Calisthenics (2016)
Peter Kofler
 
Idiomatic R for Rosetta Code (2013)
Peter Kofler
 
Mob Programming (2016)
Peter Kofler
 
Coding Dojo: Functional Calisthenics (2016)
Peter Kofler
 
Clean Readable Specifications (ETC 2016)
Peter Kofler
 
Coding Dojo: Data Munging (2016)
Peter Kofler
 
Code Retreat Venice (2016)
Peter Kofler
 
GDCR15 in Las Palmas, Gran Canaria
Peter Kofler
 
Code Quality Assurance v4 (2013)
Peter Kofler
 
JUnit Boot Camp (GeeCON 2016)
Peter Kofler
 
Coding Dojo: Baby Steps Push Challenge (2021)
Peter Kofler
 
Coding Dojo: Naming with Dices (2021)
Peter Kofler
 
Coding Dojo: Bank OCR Outside-In (2015)
Peter Kofler
 
Coding Dojo: Mars Rover (2014)
Peter Kofler
 
Extract Method Refactoring Workshop (2016)
Peter Kofler
 

Viewers also liked (15)

PPT
Προσβαση σε ΑΕΙ-ΤΕΙ
Upper High And Beyond
 
PDF
Sentrifugo user guide 2.1
Sentrifugo open source HRMS
 
PDF
โรงเรียนรัตนบุรี5
witsanukongkam
 
PDF
Revolutionary Approach to Cell Site Activation
ADVA
 
PDF
Solo Repertoire List
Brandon Hamilton
 
PPT
Μεταλυκειακες Σπουδες
Upper High And Beyond
 
PDF
Sentrifugo user guide 1.1.7v
Sentrifugo open source HRMS
 
PDF
Sentrifugo user guide 2.0beta
Sentrifugo open source HRMS
 
PPT
Clase 15 esporotricosis y cromoblastomicosis 2015
Ras
 
PPTX
MIS presentation on Skype business model
Amit Tiwari
 
PPT
Clase 16 lobomicosis y rinosporidiosis prothotecosis y microsporidiosis 2015
Ras
 
PDF
5G: Why Wait? - 5G Observatory 2016
ADVA
 
PPT
Clase 20 cryptococosis, candidiasis, trichosporonosis y malasseziosis 2015
Ras
 
PPTX
Herencia poligenica
Lizette Sandoval Marin
 
PPT
Clase 19 aspergilosis y neumocystosis 2015
Ras
 
Προσβαση σε ΑΕΙ-ΤΕΙ
Upper High And Beyond
 
Sentrifugo user guide 2.1
Sentrifugo open source HRMS
 
โรงเรียนรัตนบุรี5
witsanukongkam
 
Revolutionary Approach to Cell Site Activation
ADVA
 
Solo Repertoire List
Brandon Hamilton
 
Μεταλυκειακες Σπουδες
Upper High And Beyond
 
Sentrifugo user guide 1.1.7v
Sentrifugo open source HRMS
 
Sentrifugo user guide 2.0beta
Sentrifugo open source HRMS
 
Clase 15 esporotricosis y cromoblastomicosis 2015
Ras
 
MIS presentation on Skype business model
Amit Tiwari
 
Clase 16 lobomicosis y rinosporidiosis prothotecosis y microsporidiosis 2015
Ras
 
5G: Why Wait? - 5G Observatory 2016
ADVA
 
Clase 20 cryptococosis, candidiasis, trichosporonosis y malasseziosis 2015
Ras
 
Herencia poligenica
Lizette Sandoval Marin
 
Clase 19 aspergilosis y neumocystosis 2015
Ras
 
Ad

Similar to Coding Dojo - Refactoring Tennis Kata (20)

PDF
Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-
Alin Pandichi
 
ODP
What is xp
Simone Federici
 
PPTX
Writing clean scientific software Murphy cleancoding
saber tabatabaee
 
PPTX
Pair programming
Gabriel Moral
 
PDF
Legacy code rehab.
johnnonolan
 
PPTX
Code Refactoring or Rewrite: How to Properly Dispose of Legacy Code
Roman Labunsky
 
PDF
Clean application development (talk)
Adam Culp
 
PDF
testmon for Python
tib0r
 
PDF
Test driven development - Zombie proof your code
Pascal Larocque
 
PPTX
Agile_SDLC_Node.js@Paypal_ppt
Hitesh Kumar
 
PPTX
Test Drive Dirven Driver HAHAahhaha.pptx
findwaytocom
 
PDF
Usable Software Design
Alexandru Bolboaca
 
PDF
Introduction to Continuous Delivery
Giovanni Toraldo
 
PPTX
CPP11 - Function Design
Michael Heron
 
PDF
Working With Legacy Code
Andrea Polci
 
PPTX
Dmytro Dziubenko "Developer's toolchain"
Fwdays
 
PDF
The Power Of Refactoring (php|tek 09)
Stefan Koopmanschap
 
PDF
Software Defect Prevention via Continuous Inspection
Josh Gough
 
PDF
Keeping code clean
Brett Child
 
PDF
Functional programming 101
Marcle Rodrigues
 
Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-
Alin Pandichi
 
What is xp
Simone Federici
 
Writing clean scientific software Murphy cleancoding
saber tabatabaee
 
Pair programming
Gabriel Moral
 
Legacy code rehab.
johnnonolan
 
Code Refactoring or Rewrite: How to Properly Dispose of Legacy Code
Roman Labunsky
 
Clean application development (talk)
Adam Culp
 
testmon for Python
tib0r
 
Test driven development - Zombie proof your code
Pascal Larocque
 
Agile_SDLC_Node.js@Paypal_ppt
Hitesh Kumar
 
Test Drive Dirven Driver HAHAahhaha.pptx
findwaytocom
 
Usable Software Design
Alexandru Bolboaca
 
Introduction to Continuous Delivery
Giovanni Toraldo
 
CPP11 - Function Design
Michael Heron
 
Working With Legacy Code
Andrea Polci
 
Dmytro Dziubenko "Developer's toolchain"
Fwdays
 
The Power Of Refactoring (php|tek 09)
Stefan Koopmanschap
 
Software Defect Prevention via Continuous Inspection
Josh Gough
 
Keeping code clean
Brett Child
 
Functional programming 101
Marcle Rodrigues
 
Ad

More from Alin Pandichi (12)

PDF
[Codecamp] The sorry state of frontend code
Alin Pandichi
 
PDF
Unit Testing your React / Redux app (@BucharestJS)
Alin Pandichi
 
ODP
Coding Dojo - The learning remote control
Alin Pandichi
 
PDF
The sorry state of frontend code [a talk @ Softbinator]
Alin Pandichi
 
PDF
Behavior driven development - a recap (@ Symfony Bucharest Meetup)
Alin Pandichi
 
PDF
The sorry state of frontend code
Alin Pandichi
 
ODP
How to unit test your React/Redux app
Alin Pandichi
 
PDF
Covariance and contravariance. Say what?! (Agile Talks #22)
Alin Pandichi
 
PDF
Coding Dojo - Berlin Clock - TDD
Alin Pandichi
 
PDF
Avatar.js
Alin Pandichi
 
PDF
Software development - the java perspective
Alin Pandichi
 
PDF
Java 8 - Lambdas and much more
Alin Pandichi
 
[Codecamp] The sorry state of frontend code
Alin Pandichi
 
Unit Testing your React / Redux app (@BucharestJS)
Alin Pandichi
 
Coding Dojo - The learning remote control
Alin Pandichi
 
The sorry state of frontend code [a talk @ Softbinator]
Alin Pandichi
 
Behavior driven development - a recap (@ Symfony Bucharest Meetup)
Alin Pandichi
 
The sorry state of frontend code
Alin Pandichi
 
How to unit test your React/Redux app
Alin Pandichi
 
Covariance and contravariance. Say what?! (Agile Talks #22)
Alin Pandichi
 
Coding Dojo - Berlin Clock - TDD
Alin Pandichi
 
Avatar.js
Alin Pandichi
 
Software development - the java perspective
Alin Pandichi
 
Java 8 - Lambdas and much more
Alin Pandichi
 

Recently uploaded (20)

PPTX
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
PDF
99 Bottles of Trust on the Wall — Operational Principles for Trust in Cyber C...
treyka
 
PDF
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
PDF
DoS Attack vs DDoS Attack_ The Silent Wars of the Internet.pdf
CyberPro Magazine
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
PDF
GDG Cloud Southlake #44: Eyal Bukchin: Tightening the Kubernetes Feedback Loo...
James Anderson
 
PDF
How to Comply With Saudi Arabia’s National Cybersecurity Regulations.pdf
Bluechip Advanced Technologies
 
PPTX
Wondershare Filmora Crack Free Download 2025
josanj305
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
PPTX
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
PDF
Deploy Faster, Run Smarter: Learn Containers with QNAP
QNAP Marketing
 
PDF
Sound the Alarm: Detection and Response
VICTOR MAESTRE RAMIREZ
 
PDF
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
PDF
Hello I'm "AI" Your New _________________
Dr. Tathagat Varma
 
PDF
Introducing and Operating FME Flow for Kubernetes in a Large Enterprise: Expe...
Safe Software
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
PDF
Dev Dives: Accelerating agentic automation with Autopilot for Everyone
UiPathCommunity
 
PDF
Optimizing the trajectory of a wheel loader working in short loading cycles
Reno Filla
 
PPTX
Practical Applications of AI in Local Government
OnBoard
 
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
99 Bottles of Trust on the Wall — Operational Principles for Trust in Cyber C...
treyka
 
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
DoS Attack vs DDoS Attack_ The Silent Wars of the Internet.pdf
CyberPro Magazine
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
GDG Cloud Southlake #44: Eyal Bukchin: Tightening the Kubernetes Feedback Loo...
James Anderson
 
How to Comply With Saudi Arabia’s National Cybersecurity Regulations.pdf
Bluechip Advanced Technologies
 
Wondershare Filmora Crack Free Download 2025
josanj305
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
Deploy Faster, Run Smarter: Learn Containers with QNAP
QNAP Marketing
 
Sound the Alarm: Detection and Response
VICTOR MAESTRE RAMIREZ
 
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
Hello I'm "AI" Your New _________________
Dr. Tathagat Varma
 
Introducing and Operating FME Flow for Kubernetes in a Large Enterprise: Expe...
Safe Software
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
Dev Dives: Accelerating agentic automation with Autopilot for Everyone
UiPathCommunity
 
Optimizing the trajectory of a wheel loader working in short loading cycles
Reno Filla
 
Practical Applications of AI in Local Government
OnBoard
 

Coding Dojo - Refactoring Tennis Kata