Reviews From Our Customers
Common sense
This book contains a lot of advice which I'd file under 'common sense' (varying from limiting the number of nested loops to using good variable names and from not copy-pasting to writing proper comments), but given the fact that I work with code which makes just about every mistake listed in the book, perhaps this classification is a bit hasty. This type of information is nothing you couldn't get out of discussions with other programmers, websites, etc., but having it centralized in a book is useful.
I like the use of 'hard data', concrete numbers from scientific research, used to turn qualitative speculation into an informed opinion. E.g. where different defect reduction/prevention strategies are discussed, data is presented which makes it clear what you can expect from say unit testing compared to code reviews.
The examples used are mainly C++, Java and VB (with occasional side-steps in other languages), but they're easy to follow even if you're not familiar with the language in question.
The book itself is also of high quality, with a good structure, key points, useful references, etc.
One of its minor points is that at times it gives you some interesting info and then leaves you hanging (e.g. the discussion of formal code reviews is quite short), while other, simpler concepts, are driven home over several pages (e.g. good variable names).
Another thing I didn't appreciate is the use of a few American comparisons and references. I presume the book is written for an international audience, in which case such culture-specific idioms should be avoided. The Pontiac Aztek is featured quite prominently (never having seen one, nor being aware of its reputation, I have no idea whether the choice for that particular car has any meaning, be it positive or negative). I also remember at least one reference to some sports terminology which is obsure to most non-Americans, probably baseball-related.
My last gripe is that while the book uses a light tone and is at times entertaining, at other times the humor is not particularly funny and is stretched out a bit too long (e.g. a fictitious discussing between archetypical types of programmers).
All in all I find the book a useful, well-written en well researched resource. Only four stars due to the superficial discussion of some interesting topics and the Pontiac Aztek references.
Reduce Code Complexity
After read it from begining to end, I think that CC2 has suficient new information to invest in. Why? because like many programmers, sometimes unexperinced sometimes with too much experience, I saw how some errors come again and agin. Posibly CC2 is too closely related to a Style Guide of programming, however I've seen suficiently too much "artist" and "lone rider" in this area.
This a First to read book after knowing some language. If you want to arrive somewhere we need a little methodology (I'm sorry but we need it). Like CC2 i feel that a good aproach to project success is controling complexity. Don't miss to transform and simplify your design (not your code!!) to help to understand programmers and future designers.
After it don't forget basic Patterns, and try to forget some miraculous solutions.
Quite simply the best book on software development
I bought the first edition in 1995 and read it cover to cover at least 3 times. The 2nd Edition is even better. EVERY software developer should read this book. I have over 20 years experience as a developer and this book contains many gems.
If you write software of any sort for a living, buy this book.