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.

39 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

mary Brown said...

As I read the blog I felt a tug on the heartstrings. it exhibits how much effort has been put into this.
Final Year Project Domains for CSE

Spring Training in Chennai

Project Centers in Chennai for CSE

Spring Framework Corporate TRaining

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.

Photo Tour 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/

Sebo Repair said...

Hold solid gold in your IRA. Find out how to roll your 401k or IRA into pure gold...TAX FREE See our 10 best Gold IRA's + get your FREE Gold Kit 10 Best Gold IRA Companies for 2020.

토토사이트 said...

As the Internet develops further in the future, I think we need to collect materials that people might be interested in. Among the data to be collected, your 먹튀검증사이트 will also be included.

OLD SITE said...

NuggPlug is the world's most convenient 420-platform that offers our users access to hundreds of the top Cannabis, hemp brands in the world for more about us visit the website nuggplug.

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. 먹튀검증커뮤니티

GOGOLIVE said...

It's really great. Thank you for providing a quality article. There is something you might be interested in. Do you know 바카라사이트? If you have more questions, please come to my site and check it out!

토토사이트 said...

Hello, I read the post well. 토토커뮤니티 It's a really interesting topic and it has helped me a lot. In fact, I also run a website with similar content to your posting. Please visit once

토토사이트 said...

Easily, the article is actually the best topic on this registry related issue. I fit in with your 먹튀검증 and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantastic lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates

토토사이트 said...

I am overwhelmed by your post with such a nice topic. Usually I visit your 안전놀이터 and get updated through the information you include but today’s blog would be the most appreciable. Well done! Your information was very useful to me. That's exactly what I've been looking for 메이저토토사이트! What kind of article do you like?? If someone asks, they will say that they like the article related to 메이저사이트 just like your article. If you are interested in my writing, please visit !! What a nice comment!Nice to meet you. I live in a different country from you. Your writing will be of great help to me and to many other people living in our country. I was looking for a post like this, but I finally found 토토사이트.

토토사이트 said...

I think it's pointless to read such articles anymore. I think now is the time to go one step ahead. I seek progressive writing. When you come to my site, there are many more progressive articles and articles related to 주식디비, Come to play.

카지노사이트 said...

You did a great job writing. I have the same interests, so please bear with me here.카지노사이트

토토사이트 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 토토프레이

oznazzz said...

Sweet blog! I found it while browsing on Yahoo News.
Do you have any tips on how to get listed in Yahoo News?
I’ve been trying for a while but I never seem to get
there! Thank you
Also visit my site:강남출장

카지노사이트 said...

Unbelievable!! The problem I was thinking about was solved.카지노사이트You are really awesome.

먹튀검증 said...

I like the data. I've been using this stuff lately.먹튀검증

토토사이트 said...

Thanks for such a fantastic blog. Where else could anyone get that kind of info written in such a perfect way? I have a presentation that I am presently writhing on, and I have been on the look out for such great information. 토토사이트

GOGOLIVE 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...

I saw your article well. You seem to enjoy 바카라사이트 for some reason. We can help you enjoy more fun. Welcome anytime :-)

토토사이트 said...

I haven't seen anything interesting in a long time, and I'm writing on this form, so I hope to see you.토토사이트

먹튀검증 said...

This site contains a lot of really good information. Lots of useful inaformation. 먹튀 I'll add it to my bookmarks and stop by often. Maybe other visitors will think the same way as me. I hope you have a nice day today. Oh, it would be nice to visit our site and receive useful information. 먹튀검증사이트

먹튀신고 said...

I am contemplating this topic. I think you can solve my problems. My site is at "카지노사이트". I hope you can help me.

토토사이트 said...

Thanks for such a fantastic blog. Where else could anyone get that kind of info written in such a perfect way? I have a presentation that I am presently writhing on, and I have been on the look out for such great information. 토토사이트

GOGOLIVE said...

I don't know how many hours I've been searching for articles of these answers. Glad to find your article.바카라사이트

먹튀신고 said...

As I am looking at your writing, I regret being unable to do outdoor activities due to Corona 19, and I miss my old daily life. If you also miss the daily life of those days, would you please visit my site once? My site is a site where I post about photos and daily life when I was free.토토커뮤니티

먹튀사이트 said...

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

스포츠토토 said...

It's amazing that you figured all this out on your own, and I need to learn how to do it like you.스포츠토토