- Paperback: 384 pages
- Publisher: Addison Wesley; 1 edition (12 Oct. 2009)
- Language: English
- ISBN-10: 0321503627
- ISBN-13: 978-0321503626
- Product Dimensions: 17.8 x 2.5 x 23.1 cm
- Average Customer Review: 4.9 out of 5 stars See all reviews (22 customer reviews)
Amazon Bestsellers Rank:
30,090 in Books (See Top 100 in Books)
- #13 in Books > Computers & Internet > Computer Science > Programming > Software Design, Testing & Engineering > Design Patterns
- #33 in Books > Computers & Internet > Computer Science > Programming > Software Design, Testing & Engineering > Software Architecture
- #33 in Books > Computers & Internet > Computer Science > Programming > Software Design, Testing & Engineering > Functional Programming
- See Complete Table of Contents
Growing Object-Oriented Software, Guided by Tests (Beck Signature) Paperback – 12 Oct 2009
|New from||Used from|
- Choose from over 13,000 locations across the UK
- Prime members get unlimited deliveries at no additional cost
- Find your preferred location and add it to your address book
- Dispatch to this address when you check out
Frequently Bought Together
Customers Who Bought This Item Also Bought
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your e-mail address or mobile phone number.
More About the AuthorsDiscover books, learn about writers, and more.
From the Back Cover
Foreword by Kent Beck
"The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows.” --Ward Cunningham
“At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one's a keeper.” --Robert C. Martin
“If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book.”--Michael Feathers
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. Coverage includes
• Implementing TDD effectively: getting started, and maintaining your momentum
throughout the project
• Creating cleaner, more expressive, more sustainable code
• Using tests to stay relentlessly focused on sustaining quality
• Understanding how TDD, Mock Objects, and Object-Oriented Design come together
in the context of a real software development project
• Using Mock Objects to guide object-oriented designs
• Succeeding where TDD is difficult: managing complex test data, and testing persistence
About the Author
Steve Freeman is an independent consultant specializing in Agile software development. A founder member of the London Extreme Tuesday Club, he was chair of the first XPDay and is a frequent organizer and presenter at international conferences. Steve has worked in a variety of organizations, from writing shrink-wrap software for IBM, to prototyping for major research laboratories. Steve has a Ph.D. from Cambridge University, and degrees in statistics and music. Steve is based in London, UK.
Nat Pryce has worked as a programmer, architect, trainer, and consultant in a variety of industries, including sports reportage, marketing communications, retail, telecoms, and finance. With a Ph.D. from Imperial College London, he has also worked on research projects and does occasional university teaching. An early adopter of Extreme Programming, he has written or contributed to several open source libraries that support Test Driven Development. He was one of the founding organizers of the London XPDay and regularly presents at international conferences. Nat is based in London, UK.
Freeman and Pryce were joint winners of the 2006 Agile Alliance Gordon Pask award.
Inside This Book(Learn More)
What Other Items Do Customers Buy After Viewing This Item?
Top Customer Reviews
Given the authors' backgrounds, it's not surprising that this book has a lot to say about using mock object libraries. Mock objects are arguably the most misunderstood and misused concept in software development today, so this book should be a valuable resource for most software development teams. In the part dealing with mock objects you will find strategies for using them successfully for software design, guidelines what to mock and what not to mock and lots of examples how all that looks in code.
The book isn't written in the usual imperative way ("you should use this because of...") but reads much more as an experience report ("we use this because of"). This might be unusual at first but I really like it, as it puts the things into a much more different perspective. Many of the topics addressed by this book are quite controversial and the authors have wisely chosen the voice to avoid any notion of preaching.Read more ›
It's a good read and I found quite a few "aha" paragraphs (my copy's now punctuated with permanently folded corners/post it notes).
It's nicely written without sounding arrogant. I think it's quite a hard topic to cover without getting bogged down in the minutiae of whys and wherefores of decisions, which it covers at exactly the right level
My only criticism is that I found it wee bit annoying the way it referred to the latter worked example when introducing an aspect of TDD, forcing me to skip back and forth a bit - but I think that's just a personal book reading preference.
I'm not sure how much an experienced TDD practioner would gain from it (except to see some of your own thoughts mirrored in black and white), but would very much recommend it to those new or getting started with TDD, wishing to `do it right'
Although the code samples are in Java it is applicable to other languages, such as C#, as the concepts are language independent
I would recommend it to all programmers out there who can read Java.
(The one caveat is that the book is all in Java, and so if you find reading Java hard you won't get as much out of the book.)
Steve and Nat walk you though a non-trivial example over many chapters which allows you to see how they think and how they write code.
Of course they use evolutionary design. So if you haven't got much experience with evolutionary design this book will show you how it works in practice.
TDD has improved and evolved over the years, making many of the earlier books on TDD seem outdated.
This books is full of personality and show how Steve and Nat approach TDD today.
I liked the state transition diagrams they used to visualise the system, and show which bits have been tested, and which bit is currently being worked on.
This book doesn't read like a boring text book. Reading the book feels like going through Steve and Nat's secret notebook, containing their valuable experiences and lessons learnt.
Although the code examples in this book is Java, I find most concepts are very applicable to other languages if you do TDD. Beginners may find this book too high level, but I think it's a must read for TDD practitioners who want to further improve their art.
Most Recent Customer Reviews
Very well written, some very interesting concepts and examples, definitely worth a read! Only problem for me was that it was in Java and i m a C# guy but you cannot please... Read morePublished on 29 Jan. 2014 by dimos banis
This book clearly illustrates not only "What" TDD is all about but also "How" to go about doing it. This is done in the style of a tutorial type format where a fictitious Auction... Read morePublished on 2 Oct. 2013 by Martin Etherton
This book shows the difference between a good coder, and a great coder. And the difference is tests. Read morePublished on 1 Aug. 2013 by Kindle Customer
I've been a programmer for 18 years now, and there a few cornerstone books that changed my world view - this is one of them. Read morePublished on 27 July 2013 by Alex Reis
This was a present for a clever son! I've no idea what this is about but he was very pleased with it - so I'm happy!Published on 12 Jun. 2013 by V. E. Cairns
This is an excellent book, well written, and it gives a good insight into a method of doing TDD, and how to listen to and use tests to improve design. Read morePublished on 22 Sept. 2012 by G
This book fundamentally changed my understanding of TDD.
It is the first clear, detailed description I have seen of how test-driven development (TTD) not just improves... Read more
This is a very clear and well thought out book. The authors have a wealth of real programming experience behind them and present a series of techniques and ideas that should help... Read morePublished on 12 Jun. 2011 by Ian Miller
I'll cut straight to the chase: This is a great book! In fact I'd put it second, behind Test Driven Development by Kent Beck, on my must read list for developers. Read morePublished on 31 May 2011 by Mr. Paul J. Grenyer
Look for similar items by category
- Books > Computing & Internet > Digital Lifestyle > Online Shopping > Amazon
- Books > Computing & Internet > Programming > Languages & Tools
- Books > Computing & Internet > Programming > Software Design, Testing & Engineering > Design Patterns
- Books > Computing & Internet > Programming > Software Design, Testing & Engineering > Functional Programming
- Books > Computing & Internet > Programming > Software Design, Testing & Engineering > Software Architecture