After more than ten years, object technology pioneer Rebecca Wirfs-Brock teams with expert Alan McKean to present a thoroughly updated, modern, and proven method for the design of software. The book is packed with practical design techniques that enable the practitioner to get the job done. Like many human endeavors, design is part art, part engineering, part guesswork, and part experimentation. Discipline, hard work, inspiration, and sound technique all play their part as well. For any given problem, there are many reasonable, but only a few very good solutions. The authors' goal is to help readers learn to make those very good design decisions on their own. The book explores challenges that software developers will face as they build their design, and shows how design patterns can be used to solve design problems. Long awaited and eagerly anticipated, this book represents the first great software design book of the century. A FUTURE CLASSIC!
A classic. Less interesting today than it would have been back when it was released. Nevertheless interesting in parts. As an insight into working methodology of an "OG OO developer" it's worth the tedious bits about UML and CRC cards. Feels like a book which will pay dividends unexpectedly in the future when considering a new problem.
Given this book is by a smalltalker, was disappointed that it was so "class"-oriented. I had hoped for more of a message-centric design focus.
Rebecca teaches here her method to design object-oriented systems. She focuses on roles, responsibilities and collaborations. We first identify candidates objects, possible roles, and likely responsibilities. Then, we assign these responsibilities to our objects or roles and we refine how these objects collaborate and how they control each other. While I completely agree with the importance of roles and responsibilities, I do not see how the method fits more modern agile practices such as test-driven development, where the design emerged from repeated refactoring of the code base.
Jeremy Miller introduced me to this amazingly perceptive take on software design. This is the place to learn about teh CRC card(Candidates, Responsibilities, Collaborators) which, however old-fashioned, remains a potent analytic tool. Not the easiest read but well worth wading through.
I bought this book at the Software Development Best Practices East Conference in Sept. 2007, after attending several of Rebecca Wirfs-Brock's excellent presentations. She is my new hero!