Write maintainable, extensible, and durable software with modern C++. This book is a must for every developer, software architect, or team leader who is interested in good C++ code, and thus also wants to save development costs. If you want to teach yourself about writing clean C++, Clean C++ is exactly what you need. It is written to help C++ developers of all skill levels and shows by example how to write understandable, flexible, maintainable, and efficient C++ code. Even if you are a seasoned C++ developer, there are nuggets and data points in this book that you will find useful in your work.
If you don't take care with your code, you can produce a large, messy, and unmaintainable beast in any programming language. However, C++ projects in particular are prone to be messy and tend to slip into bad habits. Lots of C++ code that is written today looks as if it was written in the 1980s.
It seems that C++ developers have been forg
otten by those who preach Software Craftsmanship and Clean Code principles. The Web is full of bad, but apparently very fast and highly optimized C++ code examples, with cruel syntax that completely ignores elementary principles of good design and well-written code. This book will explain how to avoid this scenario and how to get the most out of your C++ code. You'll find your coding becomes more efficient and, importantly, more fun.
What You'll Learn
Gain sound principles and rules for clean coding in C++ Carry out test driven development (TDD) Discover C++ design patterns and idioms Apply these design patterns
Well-organized and touches on every important topic. Unfortunately the author offers very little help when he discusses architecture challenges that make C++ code messy in the first place (cross-cutting concerns, cyclic dependencies, observers). Without sufficiently deep explorations, this book doesn't present much value for an advanced reader. Slightly less importantly, the author's aversion to exceptions and eager use of dynamic methods are a little out of place in current style.
A book that starts out with a chapter on 'software rot' followed by a chapter on testing that hits it out of the park, covering unit test frameworks, how not to test and having tests implemented early, rather than skipped over like many projects. A third chapter deals with design principles, its short and well written.
A good chunk in the middle covers upgrading older C++ code to the newer versions with explanations of why its required along with how the new versions work.
It wraps up with chapters on object orientation, functional programming, test driven development and design patterns and idioms.
This book is a useful work for teaching us old C++ types to work with the newer versions as well as covering more advanced topics for novices. I need to see if there's a newer version, I'm tempted to buy it.