Cover of Growing object-oriented software, guided by tests

Growing object-oriented software, guided by tests

by Steve Freeman · first published 2010

64mentions
43recommended by
54HN commenters
2010–2026first – last mentioned

80% recommend17% neutral4% critical

Why HN recommends it

Walks through TDD on a larger worked example, showing how to evolve architecture, add abstractions, and refactor by listening to tests. Suits developers who know TDD basics and want a realistic, pragmatic next step.

Summarised by Claude from recommending comments

Affiliate links. As an Amazon Associate I earn from qualifying purchases.

Mentions per year

130 2007: 0 mentions2008: 0 mentions2009: 0 mentions2010: 3 mentions2011: 1 mention2012: 1 mention2013: 0 mentions2014: 13 mentions2015: 5 mentions2016: 0 mentions2017: 4 mentions2018: 10 mentions2019: 4 mentions2020: 4 mentions2021: 4 mentions2022: 4 mentions2023: 4 mentions2024: 0 mentions2025: 1 mention2026: 1 mention200720172026

What Hacker News says

  • weavie · Sep 4, 2015 · Recommends

    …their hammer for which everything becomes a nail. - Patterns of Enterprise Application Architecture (Martin Fowler) - Refactoring: Improving the Design of Existing Code (Martin Fowler and Kent Beck) - Growing Object-Oriented Software, Guided by Tests (Steve Freeman)

    on “Ask HN: I have a mental block designing software. Time to quit?” ↗
  • un_montagnard · Oct 21, 2019 · Recommends

    Refactoring by Martin Fowler and Kent Beck. Patterns of Enterprise Application Architecture by Martin Fowler. Domain Driven Design by Eric Evans. Growing Object-Oriented Software, guided by tests by Steve Freeman and Nat Pryce.

    on “Ask HN: What are the most fundamental books on computer science?” ↗
  • Tainnor · Jan 15, 2022 · Recommends

    I think the original ideas of mocks (if you go and read Growing Object-Oriented Software, Guided by Tests) had some merit: In that style of TDD, mocks are used to discover (hopefully somewhat stable) interfaces between components, and in theory, it fits with the idea that OOP is about "objects sending messages…

    on “Favor real dependencies for unit testing” ↗
  • antrix · Apr 30, 2014 · Recommends

    As a start, I recommend reading "Growing Object-Oriented Software, Guided by Tests". I am still not a 100% convert but I did get many of the same questions answered. http://www.amazon.com/Growing-Object-Oriented-Software-Guide...

    on “TDD, Straw Men, and Rhetoric” ↗
  • MiyamotoAkira · Aug 6, 2018 · Recommends

    …things that you can't do while testing. Once I learned how to test properly, TDD has been helpful, never a hindrance. In case you haven't read them `Test Driven Development By Example` by Kent Beck and `Growing Object-Oriented Software Guided by Tests` by Steve Freeman and Nat Pryce are great books

    on “Unit testing anti-patterns: Structural Inspection” ↗
  • chris_j · Aug 29, 2020 · Recommends

    …I did Jason's ~TDD training course a number of years ago and gained a lot from it - but the book is useful on its own). A book that explains TDD in the context of a much larger example application is Growing Object-Oriented Software, Guided by Tests by Steve Freeman, Nat Pryce (sometimes referred to as "The GOOS Book"). One of the difficult things about TDD is that it takes a long time to learn to do it effectively. I personally didn't really "get"…

    on “Ask HN: What resource do you recommend to start with Test Driven Development?” ↗
  • chris_j · Jul 26, 2021 · Recommends

    …Communication At Work by Jon Wortmann and Ethan Becker, Mindset by Carol Dweck, Drive by Daniel Pink, The Power of Habit by Charles Duhigg. Some brilliant books focussing a bit more on tech and code craft: Growing Object Oriented Software, Guided by Tests ("The GOOS Book") by Nat Pryce and Steve Freeman, Refactoring by Martin Fowler, Clean Code and Clean Architecture by Bob Martin.

    on “Ask HN: Books that improved your career?” ↗
  • eneveu · Nov 6, 2010 · Recommends

    …about cryptography. - The Non-Designer's Design Book (3rd edition) by Robin Williams. Only read a few chapters, but I'm learning a lot about design. Very simple principles that change everything. - Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce. I decided to go with this book instead of reading Beck's book on TDD. I'm learning / revisiting a lot of best practices from TDD masters. I recommend it to Java Developers…

    on “Ask HN: What are you reading right now?” ↗
  • zts · Jul 25, 2011 · Recommends

    If you're looking for book suggestions, I'd recommend "Growing Object-Oriented Software, Guided By Tests" by Steve Freeman and Nat Pryce. It's pretty pragmatic, and the treatment of the subject is pretty thought-provoking (at least, I thought so when I read it). The examples are all Java, but the accompanying…

    on “Where unit testing fails” ↗
  • davidjnelson · Feb 28, 2014 · Recommends

    Growing Object Oriented Software Guided By Tests is a great book on the topic: http://www.amazon.com/Growing-Object-Oriented-Software-Guide... Misko Hevery's (also happens to be creator of angularjs!) Testability Explorer blog is also a great resource:…

    on “Testing at Airbnb” ↗
  • dcuthbertson · Mar 18, 2014 · Recommends

    It's a reference to Alistair Cockburn's "Ports and Adapters" pattern, also called "Hexagonal Architecture".[1] The only reason I ever heard of it is that it was mentioned in the book "Growing Object-Oriented Software, Guided by Tests", by Steve Freeman and Nat Pryce (a good book in my opinion). [1] http://alistair.cockburn.us/Hexagonal+architecture

    on “Hexagonal Architecture Guidelines For Rails” ↗
  • Jeff_Dickey · Mar 21, 2014 · Recommends

    Difficulty of testing is a generally reliable indicator of a design that's in deep pain. [Growing Object-Oriented Software, Guided by Tests](http://www.growing-object-oriented-software.com) is easily one of the two or three most influential technical books I've read in my career — and the book's only five years old. When I'm spelunking through…

    on “Rails – The Missing Parts – Policies” ↗
  • btrombley · May 16, 2014 · Recommends

    …get into overly academic debates about exactly what a "unit" is and how strictly you should adhere to the red-green-refactor steps. For a really thoughtful and in-depth approach to API TDD I recommend Growing Object-Oriented Software, Guided by Tests by Steve Freeman (http://www.amazon.com/Growing-Object-Oriented-Software-Guide...).

    on “TDD your API” ↗
  • ranko · Feb 21, 2015 · Recommends

    There were two things that helped me get started: pairing with a more experienced developer who did TDD, and reading Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce. You might not have the luxury of the first, but the second is pretty accessible, even if you don't use the particular tools that the authors demonstrate.

    on “Ask HN: How do I start with test driven development?” ↗
  • ranko · Jun 5, 2017 · Recommends

    Growing Object-Oriented Software Guided by Tests, by Steve Freeman and Nat Pryce. The examples are, IIRC, in Java, but the ideas about TDD are applicable to any OO language. It'll make you think more about how you write testable code and the test themselves.

    on “Ask HN: What language-agnostic programming books should I read?” ↗

Keyboard shortcuts

/
Focus search
j / k
Next / previous book
Enter
Open focused book
Esc
Close / go back
g h
Go to Home
g t
Go to Top all-time
g m
Go to Most recommended
g r
Go to Rising
g f
Go to For You
?
Show this help