SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Live TDD Demo


Arithmetic Expression Evaluator


  Ionut G. Stan & Andrei Savu
Mindset change

Think about the smallest feature that you want to
implement and express it in test code.
 
Implement it.
 
This leads to emergent design.
Problem
1 + 2 * 5 - 4 = ? 


Tools
Python, unittest, TextMate


Data Flow
Expression > Split in tokens > Postfix notation > Evaluate

1+2*5-4  >  (1, +, 2, *, 5, -, 4)  >  (1, 2, 5, *, +, 4, -)  >  7
Postfix Notation !?


     1 + 2             >   1 2 +
     1 + 2 - 3        >   1 2 + 3 -
     1 + 2 * 3        >   1 2 3 * + 
     1 + 2 * 3 - 4  >   1 2 3 * + 4 -
Conclusions




      TDD is no silver bullet
Questions?

  thanks :)

Weitere ähnliche Inhalte

Andere mochten auch

Design Fiction As a Service Prototyping Approach - Gert Pasman
Design Fiction As a Service Prototyping Approach - Gert PasmanDesign Fiction As a Service Prototyping Approach - Gert Pasman
Design Fiction As a Service Prototyping Approach - Gert Pasman
ServDes
 
Service Design Challenge: Transitioning from Concept to Implementation Innova...
Service Design Challenge: Transitioning from Concept to Implementation Innova...Service Design Challenge: Transitioning from Concept to Implementation Innova...
Service Design Challenge: Transitioning from Concept to Implementation Innova...
ServDes
 
Service Design in Public Sector: Boosting organisational Change Through Desig...
Service Design in Public Sector: Boosting organisational Change Through Desig...Service Design in Public Sector: Boosting organisational Change Through Desig...
Service Design in Public Sector: Boosting organisational Change Through Desig...
ServDes
 
Group's Presentation FINAL
Group's Presentation FINALGroup's Presentation FINAL
Group's Presentation FINAL
yin wang
 
Moving Towards Service Dominant Logic in Manufacturing Sector: Development of...
Moving Towards Service Dominant Logic in Manufacturing Sector: Development of...Moving Towards Service Dominant Logic in Manufacturing Sector: Development of...
Moving Towards Service Dominant Logic in Manufacturing Sector: Development of...
ServDes
 
A Representation Framework of Product-Service Systems for Classification and ...
A Representation Framework of Product-Service Systems for Classification and ...A Representation Framework of Product-Service Systems for Classification and ...
A Representation Framework of Product-Service Systems for Classification and ...
ServDes
 

Andere mochten auch (20)

Lean Coaching: the Wheel of Life and Harada Method - A new approach from the ...
Lean Coaching: the Wheel of Life and Harada Method - A new approach from the ...Lean Coaching: the Wheel of Life and Harada Method - A new approach from the ...
Lean Coaching: the Wheel of Life and Harada Method - A new approach from the ...
 
Kata - Devops CDSummit LA 2015
Kata - Devops CDSummit LA 2015 Kata - Devops CDSummit LA 2015
Kata - Devops CDSummit LA 2015
 
Design Fiction As a Service Prototyping Approach - Gert Pasman
Design Fiction As a Service Prototyping Approach - Gert PasmanDesign Fiction As a Service Prototyping Approach - Gert Pasman
Design Fiction As a Service Prototyping Approach - Gert Pasman
 
Service Design Challenge: Transitioning from Concept to Implementation Innova...
Service Design Challenge: Transitioning from Concept to Implementation Innova...Service Design Challenge: Transitioning from Concept to Implementation Innova...
Service Design Challenge: Transitioning from Concept to Implementation Innova...
 
HAN Lean Event 2015 Suzanne van Egmond
HAN Lean Event 2015 Suzanne van EgmondHAN Lean Event 2015 Suzanne van Egmond
HAN Lean Event 2015 Suzanne van Egmond
 
Service Design in Public Sector: Boosting organisational Change Through Desig...
Service Design in Public Sector: Boosting organisational Change Through Desig...Service Design in Public Sector: Boosting organisational Change Through Desig...
Service Design in Public Sector: Boosting organisational Change Through Desig...
 
How Lean are you?
How Lean are you?How Lean are you?
How Lean are you?
 
Group's Presentation FINAL
Group's Presentation FINALGroup's Presentation FINAL
Group's Presentation FINAL
 
How Kata Fits In
How Kata Fits InHow Kata Fits In
How Kata Fits In
 
Moving Towards Service Dominant Logic in Manufacturing Sector: Development of...
Moving Towards Service Dominant Logic in Manufacturing Sector: Development of...Moving Towards Service Dominant Logic in Manufacturing Sector: Development of...
Moving Towards Service Dominant Logic in Manufacturing Sector: Development of...
 
This is lean
This is lean This is lean
This is lean
 
Striving for Ideal Behaviors: A Lean Management System Supported By KaiNexus
Striving for Ideal Behaviors: A Lean Management System Supported By KaiNexusStriving for Ideal Behaviors: A Lean Management System Supported By KaiNexus
Striving for Ideal Behaviors: A Lean Management System Supported By KaiNexus
 
Lean Management Kata Training
Lean Management Kata Training Lean Management Kata Training
Lean Management Kata Training
 
How cynefin model improves lean implementation
How cynefin model improves lean implementationHow cynefin model improves lean implementation
How cynefin model improves lean implementation
 
Toyota kata and beyond
Toyota kata and beyondToyota kata and beyond
Toyota kata and beyond
 
Complexity versus Lean
Complexity versus LeanComplexity versus Lean
Complexity versus Lean
 
Why Your A3 Needs the IK
Why Your A3 Needs the IKWhy Your A3 Needs the IK
Why Your A3 Needs the IK
 
A Representation Framework of Product-Service Systems for Classification and ...
A Representation Framework of Product-Service Systems for Classification and ...A Representation Framework of Product-Service Systems for Classification and ...
A Representation Framework of Product-Service Systems for Classification and ...
 
SMED or Single Minute Exchange of Dies and Set-up Reduction Process
SMED or Single Minute Exchange of Dies and Set-up Reduction ProcessSMED or Single Minute Exchange of Dies and Set-up Reduction Process
SMED or Single Minute Exchange of Dies and Set-up Reduction Process
 
Connecting Kata with Hoshin Kanri and True North
Connecting Kata with Hoshin Kanri and True NorthConnecting Kata with Hoshin Kanri and True North
Connecting Kata with Hoshin Kanri and True North
 

Mehr von Andrei Savu

Counters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at HackoverCounters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at Hackover
Andrei Savu
 
Polyglot Persistence & Big Data in the Cloud
Polyglot Persistence & Big Data in the CloudPolyglot Persistence & Big Data in the Cloud
Polyglot Persistence & Big Data in the Cloud
Andrei Savu
 

Mehr von Andrei Savu (20)

The Evolving Landscape of Data Engineering
The Evolving Landscape of Data EngineeringThe Evolving Landscape of Data Engineering
The Evolving Landscape of Data Engineering
 
The Evolving Landscape of Data Engineering
The Evolving Landscape of Data EngineeringThe Evolving Landscape of Data Engineering
The Evolving Landscape of Data Engineering
 
Recap on AWS Lambda after re:Invent 2015
Recap on AWS Lambda after re:Invent 2015Recap on AWS Lambda after re:Invent 2015
Recap on AWS Lambda after re:Invent 2015
 
One Hadoop, Multiple Clouds - NYC Big Data Meetup
One Hadoop, Multiple Clouds - NYC Big Data MeetupOne Hadoop, Multiple Clouds - NYC Big Data Meetup
One Hadoop, Multiple Clouds - NYC Big Data Meetup
 
Introducing Cloudera Director at Big Data Bash
Introducing Cloudera Director at Big Data BashIntroducing Cloudera Director at Big Data Bash
Introducing Cloudera Director at Big Data Bash
 
APIs & Underlying Protocols #APICraftSF
APIs & Underlying Protocols #APICraftSFAPIs & Underlying Protocols #APICraftSF
APIs & Underlying Protocols #APICraftSF
 
Challenges for running Hadoop on AWS - AdvancedAWS Meetup
Challenges for running Hadoop on AWS - AdvancedAWS MeetupChallenges for running Hadoop on AWS - AdvancedAWS Meetup
Challenges for running Hadoop on AWS - AdvancedAWS Meetup
 
Cloud as a Data Platform
Cloud as a Data PlatformCloud as a Data Platform
Cloud as a Data Platform
 
Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10
 
Creating pools of Virtual Machines - ApacheCon NA 2013
Creating pools of Virtual Machines - ApacheCon NA 2013Creating pools of Virtual Machines - ApacheCon NA 2013
Creating pools of Virtual Machines - ApacheCon NA 2013
 
Data Scientist Toolbox
Data Scientist ToolboxData Scientist Toolbox
Data Scientist Toolbox
 
Axemblr Provisionr 0.3.x Overview
Axemblr Provisionr 0.3.x OverviewAxemblr Provisionr 0.3.x Overview
Axemblr Provisionr 0.3.x Overview
 
2012 in Review - Bucharest JUG
2012 in Review - Bucharest JUG2012 in Review - Bucharest JUG
2012 in Review - Bucharest JUG
 
Metrics for Web Applications - Netcamp 2012
Metrics for Web Applications - Netcamp 2012Metrics for Web Applications - Netcamp 2012
Metrics for Web Applications - Netcamp 2012
 
Counters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at HackoverCounters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at Hackover
 
Simple REST with Dropwizard
Simple REST with DropwizardSimple REST with Dropwizard
Simple REST with Dropwizard
 
Guava Overview Part 2 Bucharest JUG #2
Guava Overview Part 2 Bucharest JUG #2 Guava Overview Part 2 Bucharest JUG #2
Guava Overview Part 2 Bucharest JUG #2
 
Guava Overview. Part 1 @ Bucharest JUG #1
Guava Overview. Part 1 @ Bucharest JUG #1 Guava Overview. Part 1 @ Bucharest JUG #1
Guava Overview. Part 1 @ Bucharest JUG #1
 
Polyglot Persistence & Big Data in the Cloud
Polyglot Persistence & Big Data in the CloudPolyglot Persistence & Big Data in the Cloud
Polyglot Persistence & Big Data in the Cloud
 
Building a Great Team in Open Source - Open Agile 2011
Building a Great Team in Open Source - Open Agile 2011Building a Great Team in Open Source - Open Agile 2011
Building a Great Team in Open Source - Open Agile 2011
 

Kürzlich hochgeladen

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Kürzlich hochgeladen (20)

Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
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
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
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
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
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
 
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...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 

TDD Performance Kata

  • 1. Live TDD Demo Arithmetic Expression Evaluator Ionut G. Stan & Andrei Savu
  • 2.
  • 3. Mindset change Think about the smallest feature that you want to implement and express it in test code.   Implement it.   This leads to emergent design.
  • 4. Problem 1 + 2 * 5 - 4 = ?  Tools Python, unittest, TextMate Data Flow Expression > Split in tokens > Postfix notation > Evaluate 1+2*5-4  >  (1, +, 2, *, 5, -, 4)  >  (1, 2, 5, *, +, 4, -)  >  7
  • 5. Postfix Notation !?  1 + 2             >   1 2 +  1 + 2 - 3        >   1 2 + 3 -  1 + 2 * 3        >   1 2 3 * +   1 + 2 * 3 - 4  >   1 2 3 * + 4 -
  • 6. Conclusions TDD is no silver bullet