Stephen Freeman Rotating Header Image

Correcting "Growing Object Oriented Software"

We appear to have sold enough copies of Growing Object Oriented Software to require another print run (which is nice). We’re allowed to make some minor corrections as long as it doesn’t affect the paging.

In a modern spirit of crowdsourcing, please let us know of anything we should fix in the next round by commenting on this post. We can’t promise we can get it in, but we will try.

Thanks in advance.


  1. Grzegorz says:


  2. Here are the mistakes I found when reading the book. The corrected form is in brackets.

    117 “Now [that] we have the beginnings”
    147 “sniper.currentPrice(123, 45, [PriceSource.FromSniper]);”
    148 “now [as] the code is growing a little”
    189 Figure 16.3 is missing
    303 “We can [use] it to explicitly”
    307 “no matter how many threads [it] starts”
    310 “will send an autionSearch[Finished]() notification”
    311 “new MultithreadedStressTester([50000]);” (compared to the next page’s assertion message)
    332 “Steve [got] tired of [the] duplication”

  3. Congratulations on getting another print run.

    I’m not sure if you’ve got these already, but there was a thread on the mailing list a couple of years back with a number of errors people had found:

  4. @Tom, yes thanks, we’ve got those

  5. David says:

    Excellent news! How many copies does that mean you’ve sold?

    Really minor, but… there are a few times where you refer to a specific collection class rather than its interface. For example, on page 120, the code for unpacking the event returns a HashMap, where it might be better to return a Map and hide the implementation decision from the rest of the code.

  6. @David. Thanks. I’m not entirely sure. We get statements, but infrequently and the internals of the production process are a mystery to me.

  7. Ed Sykes says:

    can you correct the use of java to c# please? 😉

  8. “lattice of objects that acts a frame” => “… acts [as] a frame”
    “Southabee’s On-Line have sent us.” => “… [has] sent us.”

    “We define a null implementation as a temporary empty implementation, introduced to allow the programmer to make progress by deferring effort and intended to be replaced.” – The “intended to be replaced” at the end is quite awkward.

    “…we think it’s reasonable that the Sniper has access to this information.” – Perhaps questionable, but I would use “have” instead of “has” using the subjunctive mood and thereby indicating judgement or opinion.

    Immediately following the phrase, “The setup method is persistedObjectFrom() and the query method is assertReloadsWithSameStateAs().” is a code sample that has the method “hasSamePersistenFieldsAs(original))” where Persistent is missing a ‘t’.

  9. Please, could you update windowlicker library to be able built/run properly with latest versions of browsers?

  10. Antony Denyer says:

    Our copy in the office and my personal copy are in tatters. Is there any chance there will a hard back edition?

  11. @antony That’s good to hear 🙂 I’m afraid I don’t control the publishing formats, so I think a hardback copy is unlikely. Perhaps best to ask AW directly 🙂

  12. Simonas Pinevicius says:

    page 133

    new AuctionMessageTranslator(
    new AuctionSniper(auction, new SniperStateDisplayer()))

  13. Shane Mingins says:

    Does that mean Amazon may one day have it again? I just got this update on my order …

    Due to a lack of availability, we will not be able to obtain the following item(s) from your order:

    Steve Freeman, Nat Pryce “Growing Object-Oriented Software, Guided by Tests”

    Totally bummed!!

  14. @Shane #wtf! I’ll get on to the publishers. There’s supposed to be another printing. In the meantime, have you tried from O’Reilly’s Safari? Let me know.

  15. Shane Mingins says:

    @steve … I’m down in New Zealand so tend to go through Amazon … not sure on p&p from Safari, I’ll have a look. Thanks.

  16. Shane Mingins says:

    Awesome, O’Reilly do PDF’s, thanks for the pointer 🙂

  17. Robin says:

    p114 & p115:


    I guess should be “notifies”.

  18. Robin says:


    1. Tell the auction….to the Sniper.
    2. Check the Sniper…to the price.
    3. Check the auction…from Sniper.

    Point 3 could do with “the” before “Sniper”.

Leave a Reply

Your email address will not be published. Required fields are marked *