Growing Object-Oriented Software, Guided by Tests

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

Growing Object-Oriented Software, Guided by Tests
List Price: $49.99
Our Price: $31.76
You Save: $18.23 (36%)
Availability: Usually ships in 1-2 business days
Category: Book
See more book details and other editions


or

Book Summary Information

Author: Nat Pryce, Steve Freeman
Edition: Paperback
Audio: English (Unknown); English (Original Language); English (Published)
Published: 2009-10-22
ISBN: 0321503627
Number of pages: 384
Publisher: Addison-Wesley Professional

Book Reviews of Growing Object-Oriented Software, Guided by Tests

Book Review: Excellent, Though Short of Its Potential
Summary: 4 Stars

On the whole, this is an exciting book, one that shows that the book industry is not dead yet (although screening developers for an open position would make you think it were), but it's not what it thinks it is. It's almost comical, in a way, to see this book's conception of itself unfold. In the beginning of the book, it seems the authors believe they can show us ways to make TDD better. By the end, the Little Corporal is crowning himself emperor. The TDD/BDD historicity (and its nationalistic twinge) are ludicrous and add nothing to the book. Example of the Trump school of PR: DIY. On the substantive level, this book is confused about what it is because it takes its example (one of the best things about the book) as a representative of the world, which it most certainly is not.

The example, which is detailed, thoroughgoing, and significant, is an auction application, and the focus in 'building' it is restricted completely to laying down the various protocols that dictate how parties interact through bidding, winning, losing, etc. This is not only not a serious picture of a project (as in one), it's laughable to be considered even complete for what it was. I am so bloody sick of examples that are of the form 'let's look at writing the 10 thousandth version of ______.' I am in software development (and love it) because it is invention. There is zero invention here. [Somebody, please address the part of the programming audience who are not ankle-chained to a rock pile, just once!]

But there are other reasons why this 'work' is not representative. It's focused solely on the protocols in the program. If there were any honest, self-reflexive rhetoric in this book, the authors would have at least nodded toward the other things one would have to do to make an auction work. Their total absence beckons simultaneously to wizardry (Oz/Maxwell's Demon) and infantilism. What is JMock going to do to make it easier to build interfaces? to test the obvious role of things like little languages (DSLs)? If your favored way of situating yourself in reality is statistics, what percentage of the overall effort does this protocol layer represent? Even of an auction app that has no invention, a small fraction. I could bring up a ton of examples off the top of my mind that would have almost no protocol work to them.

Does this mean JMock or mocking in general are useless? No. I am offering a counter argument to the preposterous one in the book that makes it seem like JMock was the keystone to the last decade.

The best things about this book are: 1. even though it's a narrow one, a book like this is much better using real examples, real code. 2. the concept of the walking skeleton (this is one of the areas of seriously underdelivery) and 3. some of the tips about using static builders, creating test data, acknowledging the limits of mocks, etc.

The boldest thing in this book is the concept of the walking skeleton. If I could have coaxed the authors in process, I would have not only told them to make this the centerpiece of the book, but to address the difficulties in being able to really accomplish this in practice. Frankly, if these guys helped us conquer something in the last decade, they ought send out a memo to the Java world, which is more fragmented than ever, and I think everyone would agree, has no grip on the technological underpinnings such a strategy implies (falls down on the first requirement: the ability to perform end-to-end tests). Ironically, one of the reasons this IDEA was so compelling to me is precisely the opposite implication herein: because we have NOT been able to practice this though many of us have wanted it FOREVER!! Did you ever use Cactus? I did. In the bloody beginning. But this is compelling to me now because I have been doing Objective-C/Cocoa programming, and though they don't have this right now, they showed it at WWDC in the form of unit tests for the components and fully functional integration tests in the coming version of Instruments. In summary: the book is attempting to milk an empty utter here, and it doesn't tug very hard or for very long.

Do I think this book is worth reading? Yes, absolutely. I look forward to the book that's going to deliver the real promise of the check this one writes itself and then cashes, in any language, on any platform. Hopefully soon..

Summary of Growing Object-Oriented Software, Guided by Tests

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

    and concurrency

 

Languages & Tools Books

Book Subjects
Most talked about in Languages & Tools Books
Eclipse Plug-ins (3rd Edition) ImageEclipse Plug-ins (3rd Edition)
by Eric Clayberg, Dan Rubel
Addison-Wesley Professional; Published: 2008-12-21; Paperback; Book
Best price: $38.33
Price in other shops: $59.99
Java Software Solutions: Foundations of Program Design (6th Edition) ImageJava Software Solutions: Foundations of Program Design (6th Edition)
by John Lewis, William Loftus
Addison Wesley; Published: 2008-03-07; Paperback; Book
Best price: $74.40
Price in other shops: $128.00
C++ Primer (3rd Edition) ImageC++ Primer (3rd Edition)
by Stanley B. Lippman, Josée Lajoie
Addison-Wesley Professional; Published: 1998-04-02; Paperback; Book
Best price: $14.47
Price in other shops: $49.99
Accelerated C++: Practical Programming by Example ImageAccelerated C++: Practical Programming by Example
by Andrew Koenig, Barbara E. Moo
Addison-Wesley Professional; Published: 2000-08-24; Paperback; Book
Best price: $26.99
Price in other shops: $49.99
Patterns of Software: Tales from the Software Community ImagePatterns of Software: Tales from the Software Community
by Richard P. Gabriel
Oxford University Press, USA; Published: 1998-05-28; Paperback; Book
Best price: $64.55
Just Java? 2 (6th Edition) ImageJust Java? 2 (6th Edition)
by Peter van der Linden
Prentice Hall; Published: 2004-07-01; Paperback; Book
Best price: $35.00
Price in other shops: $64.99
UML for Java? Programmers ImageUML for Java? Programmers
by Robert C. Martin
Prentice Hall; Published: 2003-06-06; Paperback; Book
Best price: $22.99
Price in other shops: $44.99
Thinking in Java (3rd Edition) (One-Off) ImageThinking in Java (3rd Edition) (One-Off)
by Bruce Eckel
Prentice Hall PTR; Published: 2002-12-06; Paperback; Book
Best price: $13.80
Price in other shops: $54.99
SQL Fundamentals with CDROM ImageSQL Fundamentals with CDROM
by John J. Patrick
Prentice Hall; Published: 1999-05-11; Paperback; Book
Best price: $12.00
Price in other shops: $44.99
C How to Program, 2nd Edition ImageC How to Program, 2nd Edition
by Paul J. Deitel
Prentice Hall; Published: 1994-01-13; Textbook Binding; Book
Best price: $29.86
Price in other shops: $70.00
Similar Books and other products
Agile Software Development, Principles, Patterns, and Practices ImageAgile Software Development, Principles, Patterns, and Practices
by Robert C. Martin
Prentice Hall; Published: 2002-10-25; Hardcover; Book
Best price: $55.73
Price in other shops: $80.00
Continuous Integration: Improving Software Quality and Reducing Risk ImageContinuous Integration: Improving Software Quality and Reducing Risk
by Paul M. Duvall, Steve Matyas, Andrew Glover
Addison-Wesley Professional; Published: 2007-07-09; Paperback; Book
Best price: $37.01
Price in other shops: $49.99
The Pragmatic Programmer: From Journeyman to Master ImageThe Pragmatic Programmer: From Journeyman to Master
by Andrew Hunt, David Thomas
Addison-Wesley Professional; Published: 1999-10-30; Paperback; Book
Best price: $34.95
Price in other shops: $49.99
xUnit Test Patterns: Refactoring Test Code ImagexUnit Test Patterns: Refactoring Test Code
by Gerard Meszaros
Addison-Wesley; Published: 2007-05-31; Hardcover; Book
Best price: $41.86
Price in other shops: $64.99
Succeeding with Agile: Software Development Using Scrum ImageSucceeding with Agile: Software Development Using Scrum
by Mike Cohn
Addison-Wesley Professional; Published: 2009-11-05; Paperback; Book
Best price: $33.57
Price in other shops: $49.99
Working Effectively with Legacy Code ImageWorking Effectively with Legacy Code
by Michael Feathers
Prentice Hall; Published: 2004-10-02; Paperback; Book
Best price: $38.33
Price in other shops: $59.99
Test Driven Development: By Example ImageTest Driven Development: By Example
by Kent Beck
Addison-Wesley Professional; Published: 2002-11-18; Paperback; Book
Best price: $28.04
Price in other shops: $49.99
Refactoring: Improving the Design of Existing Code ImageRefactoring: Improving the Design of Existing Code
by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
Addison-Wesley Professional; Published: 1999-07-08; Hardcover; Book
Best price: $25.00
Price in other shops: $64.99
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) ImageContinuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))
by Jez Humble, David Farley
Addison-Wesley Professional; Published: 2010-08-06; Hardcover; Book
Best price: $31.27
Price in other shops: $49.99
Clean Code: A Handbook of Agile Software Craftsmanship ImageClean Code: A Handbook of Agile Software Craftsmanship
by Robert C. Martin
Prentice Hall; Published: 2008-08-11; Paperback; Book
Best price: $32.89
Price in other shops: $49.99