Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Growing object-oriented softwareSteve Freeman

    Growing object-oriented software

    Steve Freeman · 2009

    Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and “grow” software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you’ll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD—from integrating TDD into your processes to testing your most difficult features.

    Software EngineeringProgramming
    Open LibraryAmazon
    Stats for nerds
    16recommend
    27mentions
    23people
    2011–2026years
    70% recommend30% neutral

    Mentions per year

    201120132015201720192021202320252026

    What Hacker News says

    1. pramodbiligiriJun 2026
      My approach (with LLMs especially) aligns more with what's outlined in "Growing OO Software Guided by Tests" (https://growing-object-oriented-software.com/toc.html). Chapter 4 there says "First, Test a Walking Skeleton", and Chapter 5 has "Start Each Feature with an Acceptance Test". I think it comes down to: get something working end-to-end first in a verifiable way, and then keep refining both the feature and its tests (preferable with TDD).

      I've noticed that LLMs tend to generate multiple testcases in one shot (which is not how humans usually go about TDD), and also they don't start with Integration Tests, unless instructed to do so.

      thread
    2. squirrelApr 2024
      The obligatory definitive guide, of which the author appears to be unaware: http://www.growing-object-oriented-software.com/
      thread
    3. squirrelJun 2023
      A very good way to use mocks (not like illustrated here) is explained in the GOOS book by Freeman and Pryce: http://www.growing-object-oriented-software.com/
      thread
    4. crabmusketAug 2021
      To the author: if you haven't read POODR, I highly recommend that. It's the book that felt the most "real OOP" to me. No `class Dog extends Animal` in sight. It's written by one of those Smalltalkers, and I think it's got a lot of very valuable ideas about software design, not just OOP specifically.

      The "callback-y" approach in Growing Object-Oriented Software sounds fascinating.

      > Immediately I remind myself that the implementation from the book ignores the problem of persistence completely. If you close that application it loses all the state. I think this is not an accident. This is where things go wrong for OOP really fast.

      This is a really good point.

      EDIT: I see you really did not like 99 Bottles of OOP, which is by the author of POODR. In that case maybe her way of explaining things doesn't agree with you and you should skip it!

      thread
    5. sciurusAug 2021
      I don't know anything about the other two books, but the one discussed in depth is well-respected.

      http://www.growing-object-oriented-software.com/praise.html

      thread
    6. insertnicknameAug 2020
      It's all in this book: http://www.growing-object-oriented-software.com/
      thread

    Related

    Cover of Growing object-oriented software, guided by tests
    2010–2026

    Growing object-oriented software, guided by tests

    Steve Freeman
    43 recommend · 64
    Cover of Object-oriented software construction
    2010–2026

    Object-oriented software construction

    Bertrand Meyer
    22 recommend · 53
    Cover of Object-oriented programming
    2012–2026

    Object-oriented programming

    Brad J. Cox
    4 recommend · 17
    Cover of Designing Data-Intensive Applications
    2014–2026

    Designing Data-Intensive Applications

    Martin Kleppmann
    457 recommend · 846
    Practical Object-Oriented DesignSandi Metz
    2012–2026

    Practical Object-Oriented Design

    Sandi Metz
    14 recommend · 17
    Cover of Object-Oriented Software Engineering
    2012–2024

    Object-Oriented Software Engineering

    Ivar Jacobson
    3 recommend · 5
    Cover of Practical Object Oriented Design In Ruby
    2012–2025

    Practical Object Oriented Design In Ruby

    Sandi Metz
    46 recommend · 72
    Cover of Patterns of Enterprise Application Architecture
    2009–2026

    Patterns of Enterprise Application Architecture

    Martin Fowler
    34 recommend · 87