Richard Mitchell is a senior consultant with InferData Corporation, specializing in object-oriented analysis and design. Before joining InferData full-time in 1999, he was a Professor of Computing at the University of Brighton, UK, where he was involved in teaching and researching object technology.
Jim McKim is Clinical Professor and Chair of the Department of Engineering and Science at Rensselaer Polytechnic Institute in Hartford, Connecticut. He has been teaching and consulting in the area of object oriented software development for some 10 years. Over the same period he has authored or coauthored numerous articles on Design by Contract for such publications as the Journal of Object-Oriented Programming and IEEE Computer.
5つ星のうち4.0Good introduction for those learning to program with contracts
2010年1月31日にアメリカ合衆国でレビュー済み
Amazonで購入
I liked this book and I recommend it for anyone who wants to learn more about the principles and practices of programming with contracts. For those who are new to programming with contracts, I think the principles and guidelines offered are important ones, and worth your scarce training time. With the introduction of the Microsoft Code Contracts as a mainstream component of the.net 4.0 framework, I expect this book to help fill a strong appetite from experienced programmers who are new to the notion of programming with contracts. For those of you who are experienced users of design by contract, a study of this material may enrich your understanding of the practices you already know.
I like the fact that the book is well organized, and easily digestible (less than 250 pages). In contrast, the classic work on this topic,
Object-Oriented Software Construction (Book/CD-ROM) (2nd Edition)
, goes into much greater depth on a variety of programming topics. I love that book, but it is enormous and probably too intimidating for many beginners.
I use contracts on a regular basis in my commercial programming. I have started using the six principles and five guidelines explained in the book as a checklist to evaluate my current product code. In doing so, I am looking at my code through a fresh set of eyes, finding weaknesses, and improving the clarity and reliability of the code.
Response to some of the criticisms given in other reviews: "Not enough material, March 9, 2006" - While I sympathize with many of the complaints of this reviewer, I still believe this book is a great introductory text for people who are learning to program contracts. Perhaps it would have been helpful to have examples of code contracts in more diverse domains rather than yet another example of the stack and the queue. This sounds like an opportunity to either expand the book in a second edition. Or another author may take advantage of this opportunity.
"I think contracts are not very strong tool, May 23, 2005" As a commercial programmer who uses contracts and real product code, I can testify that the ideas in this book ARE practical in commercial applications. I have never found contracts to be too complex or hard to maintain. Admittedly there are problems in computer science with contracts do not solve. Contracts are not a magical silver bullet. Yet they remain very powerful and useful.