Wednesday, November 17, 2010

Book review: Growing Object Oriented Software Guided by Tests

I’m a curious kind of guy. It is with some surprise, then, that I catch myself re-reading a technical book: Nat Pryce and Steve Freeman’s Growing Object Oriented Software Guided By Tests. It’s a very practical book, stuffed with code and useful advice, but it’s also more than that.

The first section of the book gives an overview of the basic principles of object-oriented design and test-driven development; not much is new but everything is clearly explained. The third and final section is a potpourri of test-centric techniques to identify problems and improve code quality. But the meat of the book is in the second section, a long walkthrough the development of a sample program. It’s a much larger example than usually found on programming books, tackling thorny issues such as asynchornous inter-process communication and end-to-end testing of GUIs. And it reads like a real software project, there are missteps, refactorings are rolled-back, some of the work is almost clerical, but then there are the great design breakthoughs, the elegant ideas that simultaneously solve several difficulties, the joy in seeing the product grow. It felt like reading a good novel. And that’s kind of what it is, a programming book that is a narrative, not an exposition. Besides making for a good read, the narrative aspect of the book is important for showing how modern object-orientation practice takes place.

OO criticisms nowadays are a dime a dozen, and though they sometimes present good points, often many of the arguments are directed at practices that aren’t so common, or at least that shouldn’t be so common. For instance, inheritance hierarchies, rampant mutable state, and patternitis (the FactoryFactory syndrome), are not indictments of object orientation, just symptoms of bad programming practice. One of the great things about GOOS is that it provides a great example of actual non-trivial object-orientation. And the same goes for test-driven-development, any abstract discussion of the benefits of TDD is bound to seem hand-wavey; this book helps to ground the understanding in real coding, done step by step in front of the reader’s eyes.

Anyway, I've read some pretty good technical books this year, but this one was the best.

40 comments:

Joshua Smith said...
This comment has been removed by a blog administrator.
Anonymous said...

Natural wig short hair wig, hairdresser said that lush hair extensions this hairstyle is the summer when the best of hair extensions sale a female hairstyle, and this hairstyle do not have to cheap hair extensions worry about being out of date, enough brutal while also let you wear after There is clip in hair extensions a supernatural feeling.

Cosvillage said...

I wanted to thank you for this excellent read. Thank you for taking time to know more about in this subject. CosVillage is a leading online cosplay costume store who deals in the hair wig products at the best prices. For more cosplay costume store online


master said...

I do ponder there unit most extra satisfying open doors antecedently for those who tried your knowledge getting ready framework.

hair wig
hair wig
hair wig

Terri Meeks said...

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!.. wigs for women

Slc Nanny said...

Funded Trader was founded for one reason and one reason only. To FINANCIALLY EMPOWER Traders and help them to make an INCOME doing what they LOVE. The firm was established by Traders for Traders who understand that a lot of people spend tons of money on expensive Trading courses and perfecting their skills but unfortunately lack the funds to actually take their newly acquired skills and actually make a living from it and more information click here Mexadroid Forex Robot: Should Forex Traders Trust Megadroid?
and get quality results.


Anonymous said...

Great book showing how and why developing object-oriented software starting with tests can lead to cleaner and more maintainable code while minimising waste.

Highly recommended KRW Personal Injury Attorneys said...

A must read for any green or brownfield software developer. I had to buy a second copy because all my colleagues keep borrowing it.

expresswigbraids said...

Thanks for sharing the best information and suggestions, I love your content, and they are very nice and very useful to us. If you are looking for the best Braided Wigs, then visit EXPRESS WIG BRAIDS. I appreciate the work you have put into this.

Unknown said...

hello admin, do you know? very nice blog and I am following this blog every day. Your author is also very high quality indeed. very nice article. My web site, and I strive to provide quality service for your blog. Would you like to look at my web site admin? https://royalcbd.com/product/cbd-oil-1000mg/

Express Wig Braids said...

It’s great to come across a blog every once in a while that isn’t the same out of date rehashed material. Fantastic read. Amazon braided wigs

먹튀검증 said...

browsing the internet for information and found your blog. I am impressed with the information you have on this blog.토토검증

먹튀검증 said...

Very good message. I stumbled across your blog and wanted to say that I really enjoyed reading your articles. Anyway, I will subscribe to your feed and hope you post again soon. 먹튀검증커뮤니티

토토사이트 said...

Pretty section of content. I simply stumbled upon lot of beneficial info! write custom essays rewriting services 토토존

토토사이트 said...

Asking questions are truly nice thing if you are not understanding something fully,
except this article gives nice understanding even 토토프레이

먹튀사이트 said...

This is the truth of life.먹튀사이트 You're so cool. I'll fall for you.

thebestsitehere said...

Excellent way of describing, and good piece of writing to obtain data concerning my
presentation subject, which i am going to convey in school.강남오피
Just desire tto say your article is as surprising.
The clarity in your post is simply excellent and i could
assume you’re an expert on this subject. Well with your permission allow me to grab your RSS feed to keep updated with forthcoming post. Thanks a million and please carry on the enjoyable work.


opbest said...


whoah this blog is excellent i like studying
your posts. Stay up the good work! You recognize, a lot of people are hunting around for
this info, you could help them greatly.

Also visit my page === 안마

(freaky)


majortotositepro said...

I think it should be a good opportunity to get feedback from others who are experienced. 메이저사이트

oncasinositenet said...

Excellent goods from you, man. I have understand your stuff previous to and you are just extremely excellent. 카지노사이트

totopickpro said...

I just couldn’t leave your website before telling you that I truly enjoyed the top quality info you present to your visitors? Will be back again frequently to check up on new posts. 사설토토

Cleaning Company Dubai UAE said...

Horizontally surfaces usually are mostly simple clean together with accumulate far more dust in comparison with vertical or maybe inclined types of surface. So, you possibly can clean most of these surfaces easily that has a vacuum cleaner and then disinfect these individuals with almost any disinfectant. You should definitely use light-weight detergents to decontaminate the desk along with daily work with substances mainly because some detergents employ a pungent smell which enables it to really provok the technician. cleaning services

Anonymous said...

I like your blog. i ma happy to read your blog its very informative and your blog is really looks a ton different than on my computer have you noticed 토토사이트검증

Anonymous said...

I’m delighted that I have noticed this 안전한놀이터 weblog. Lastly something not a junk, which we undergo incredibly frequently.

Anonymous said...

I should state and much obliged for the data 메이저검증업체 Instruction is unquestionably a sticky subject the best on this valuable topic

Anonymous said...

but I believe it will help a lot in my country we present the verification criteria 토토추천

Anonymous said...

I live in a different country than you 메이저사이트 look forward to it.It's always coming

Anonymous said...

The Design looks very good The registered guarantor at reliable. Always fighting! 먹튀폴리스

사설토토사이트 said...

I’m very pleased to discover this site. I want to to thank you for ones time for this particularly wonderful read!! I definitely savored every part of it and i also have you saved as a favorite to see new information on your blog. 사설토토사이트


바카라사이트 said...

Your writing is perfect and complete. 바카라사이트 However, I think it will be more wonderful if your post includes additional topics that I am thinking of. I have a lot of posts on my site similar to your topic. Would you like to visit once?


온라인바카라 said...

Many thanks for the article, I have a lot of spray lining knowledge but always learn something new. Keep up the good work and thank you again. 온라인바카라


우리카지노 said...

Hello, I am one of the most impressed people in your article. 우리카지노 What you wrote was very helpful to me. Thank you. Actually, I run a site similar to you. If you have time, could you visit my site? Please leave your comments after reading what I wrote. If you do so, I will actively reflect your opinion. I think it will be a great help to run my site. Have a good day.


casino said...

I'm so happy to finally find a post with what I want. casino You have inspired me a lot. If you are satisfied, please visit my website and leave your feedback.


카지노사이트 said...

Your post has really helped me a lot. I live in a different country than you, but I believe it will help a lot in my country. 카지노사이트 Thank you very much. Can I refer to your post on my website? Your post touched me a lot and helped me a lot. If you have any questions, please visit my site and read what kind of posts I am posting. I am sure it will be interesting.


메가슬롯 said...

It's so nice to know you. I hope you also welcome me.메가슬롯If you welcome me, please visit my blog and write. My blog is on It's hard because of Covid - 19, but let's do our best!!


sportstotohot.com said...

Great blog, thank you so much for sharing with us. 토토

totosite365.info said...

Valuable info. Fortunate me I discovered your web site by chance. 토토사이트

casinosite.one said...

Really thank you! Really Great. 바카라사이트

온라인바카라사이트^^ said...

First of all, thank you for your post. 온라인바카라사이트 Your posts are neatly organized with the information I want, so there are plenty of resources to reference. I bookmark this site and will find your posts frequently in the future. Thanks again ^^

denice said...

Your posts are neatly organized with the information I want