Bonus Channel

TDD Distilled

See where it all began! These eight bonus chapters are a careful, meticulous re-edit of the first 42 episodes of James Shore's original Let’s Play TDD series for Java. Umms and ahhs have been cut, typing time compressed, and dead ends removed.

  1. Testing Basics

    Sat, 28 July ’12

    We introduce the basics of test-driven development by creating a simple class that models long-term savings.

  2. Domain Logic

    Sat, 11 Aug ’12

    With a basic savings account class in place, we add more complexity in the form of concepts such as principal, interest, and capital gains tax.

  3. Cleanup

    Sat, 18 Aug ’12

    Increasing the complexity of the savings account class’s domain logic has led to some avoidable messes. We spend some time refactoring to clean up and simplify the code, with an emphasis on making the tests tell the story of the production code.

  4. Primitive Obsession

    Sat, 8 Sep ’12

    Our code exhibits the Primitive Obsession code smell: the use of integers rather than objects to represent fundamental domain concepts such as “Dollars” and “Tax Rate.” We undertake a series of major refactorings to resolve this smell. It results in significantly better code.

  5. A Basic User Interface

    Sat, 22 Sep ’12

    With our domain layer finished (for now), we turn our attention to the user interface. GUIs are notoriously difficult to test, but we take advantage of Swing’s MVC architecture with the goal of test-driving everything—and nearly succeed.

  6. Back to the Domain Model

    Sat, 6 Oct ’12

    Coding the UI has taught us some important things about how to structure the application—specifically, who should be responsible for aggregating yearly stock market results—so we dive back into the domain layer to make those fixes.

  7. Cumulative Rounding Error

    Fri, 2 Nov ’12

    Using integers to represent money has led to rounding errors over the long term. We take advantage of our value objects as we fix those problems.

  8. A New Capital Gains Tax Calculation

    Fri, 23 Nov ’12

    We discover a major discrepancy in the way our software behaves compared to the spreadsheet it’s meant to replace. We embark on an update of our stock market code, illustrating the kind of work that occurs when requirements change in the real world. Includes pair programming sessions with Rob Myers of Agile Institute!