Cape Town, South Africa
TDD in Python
Charles Haynes
Charles Haynes serves ThoughtWorks as a Principal Consultant and offers specific experience within the design and implementation of high-performance scalable distributed systems and large-scale enterprise solutions.
During his career Charles has used a large number of technologies including databases, loosely coupled distributed architectures, object-oriented analysis and design, resource optimisation, content management, Java application servers and building software development environments. Charles also worked in Google Infrastructure for 5 years and now travels the world as a consultant for ThoughtWorks.
Rachel Laycock works for ThoughtWorks as a Senior Consultant with 9 years of experience in systems development. She has worked on a wide range of technologies including web-based and rich client applications, and the integration of disparate systems.
Since working at ThoughtWorks, Rachel has coached teams on Agile and Continuous Delivery practices and presented on subjects ranging from Agile practices and techniques to the reality of implementing Continuous Delivery in the enterprise.
Prior to working at ThoughtWorks, Rachel spent 3 years in development roles where she promoted and introduced Agile practices within the development team including CI, TDD, and BDD.
Talk Outline
Do you think TDD just improves the quality of your code? We'll show you how TDD also improves the quality of your design, makes your code more manageable, readable, reusable and cures hangovers. OK maybe the last one isn't true but we know from experience that the rest are.
In this tutorial, we will focus on a practical introduction on how to do Test Driven Design in Python with a real world example, on real code, in real time, with your participation. We'll cover the Red, Green, Refactor practice, committing frequently, what a unit test is and is not, and how to use mocks to write good, isolated and fast unit tests. We will also cover patterns for keeping your code clean, well-designed and reusable, and give you the courage to refactor fearlessly and mercilessly!
We will demonstrate and describe some of the specific scaffolding you can use to make all of the above as easy as pie. We'll also show you some of the super cool stuff that only Python can do! Or at least is trivial in Python compared to lesser* languages.
*such as Java and C#