SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
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 :)

Mais conteúdo relacionado

Destaque

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 ...Learning Everywhere
 
Kata - Devops CDSummit LA 2015
Kata - Devops CDSummit LA 2015 Kata - Devops CDSummit LA 2015
Kata - Devops CDSummit LA 2015 John Willis
 
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 PasmanServDes
 
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 FINALyin wang
 
How Kata Fits In
How Kata Fits InHow Kata Fits In
How Kata Fits InMike Rother
 
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
 
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 KaiNexusKaiNexus
 
How cynefin model improves lean implementation
How cynefin model improves lean implementationHow cynefin model improves lean implementation
How cynefin model improves lean implementationPierre E. NEIS
 
Toyota kata and beyond
Toyota kata and beyondToyota kata and beyond
Toyota kata and beyondWilliam Judd
 
Complexity versus Lean
Complexity versus LeanComplexity versus Lean
Complexity versus LeanJurgen Appelo
 
Why Your A3 Needs the IK
Why Your A3 Needs the IKWhy Your A3 Needs the IK
Why Your A3 Needs the IKMike Rother
 
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
 
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 ProcessW3 Group Canada Inc.
 
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 NorthW3 Group Canada Inc.
 

Destaque (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
 

Mais de Andrei Savu

The Evolving Landscape of Data Engineering
The Evolving Landscape of Data EngineeringThe Evolving Landscape of Data Engineering
The Evolving Landscape of Data EngineeringAndrei Savu
 
The Evolving Landscape of Data Engineering
The Evolving Landscape of Data EngineeringThe Evolving Landscape of Data Engineering
The Evolving Landscape of Data EngineeringAndrei Savu
 
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 2015Andrei Savu
 
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 MeetupAndrei Savu
 
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 BashAndrei Savu
 
APIs & Underlying Protocols #APICraftSF
APIs & Underlying Protocols #APICraftSFAPIs & Underlying Protocols #APICraftSF
APIs & Underlying Protocols #APICraftSFAndrei Savu
 
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 MeetupAndrei Savu
 
Cloud as a Data Platform
Cloud as a Data PlatformCloud as a Data Platform
Cloud as a Data PlatformAndrei Savu
 
Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Andrei Savu
 
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 2013Andrei Savu
 
Data Scientist Toolbox
Data Scientist ToolboxData Scientist Toolbox
Data Scientist ToolboxAndrei Savu
 
Axemblr Provisionr 0.3.x Overview
Axemblr Provisionr 0.3.x OverviewAxemblr Provisionr 0.3.x Overview
Axemblr Provisionr 0.3.x OverviewAndrei Savu
 
2012 in Review - Bucharest JUG
2012 in Review - Bucharest JUG2012 in Review - Bucharest JUG
2012 in Review - Bucharest JUGAndrei Savu
 
Metrics for Web Applications - Netcamp 2012
Metrics for Web Applications - Netcamp 2012Metrics for Web Applications - Netcamp 2012
Metrics for Web Applications - Netcamp 2012Andrei 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 HackoverAndrei Savu
 
Simple REST with Dropwizard
Simple REST with DropwizardSimple REST with Dropwizard
Simple REST with DropwizardAndrei Savu
 
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 Andrei Savu
 
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 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 CloudAndrei Savu
 
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 2011Andrei Savu
 

Mais de 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
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
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...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 

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