Solid Code
With insights direct from Microsoft s own development teams and across the software-development life cycle learn best practices for writing solid, well-formed, efficient code. Ideal for new to intermediate level developers, but with fresh insights for more experienced programmers, SOLID CODE will help improve your coding techniques at each phase of product development: design, prototyping, implementation, debugging, and testing. This book shares practical, experience-based advice from veteran engineers and developers that you can apply to your own work now, whether using agile or waterfall methods.

Review By: Garry Archer
08/28/2009I made great use of this book's information and was able to download and try the tools suggested in it. Since then, I've already incorporated some of them in my toolkit and will be using them on a regular basis.
The examples and feature articles are presented in such a way that everyone from the layman to the expert/professional will easily understand them. Both Donis and John were clear in their descriptions of processes and examples throughout the book. As they say, the proof is in the pudding. I tested some of their claims and verified them. Aside from that, they provide references and URLs for the reader to follow up on for more information. I appreciate the chapter endings in which the authors listed key points and a summary paragraph. I consider this is one of the highlights of the book.
I would recommend the book to both the novice/beginner and the expert. While it may serve well as a refresher for the expert, it may also make them aware of bad habits they have acquired over the years. It will put the novice on the right track from the onset. So in summation, I can't think of a reason not to add the book to your library, if for no other reason than the tool references it supplies. I have already slated the book for reading by two of my coworkers.
The most interesting fact from the book came from the chapter on defensive programming. With all the security flaws and hackers out there these days, we need to buckle down and develop software the right way. This chapter teaches us how to be proactive, NOT reactive. How soon we forget that which we wrote yesterday, so don't expect others to pick up where you left off even if you cannot get a grasp on your past code.