Improve readability and understandability of code using C++ best practices
Key Features:
- Enrich your coding skills using features from the modern C++ standard and industry approved libraries
- Implement refactoring techniques and SOLID principles in C++
- Apply automated tools to improve your code quality
- Purchase of the print or Kindle book includes a free PDF eBook
Book Description:
Despite the prevalence of higher-level languages, C++ is still running the world, from bare-metal embedded systems to distributed cloud-native systems. C++ is on the frontline whenever there is a need for a performance-sensitive tool supporting complex data structures. The language has been actively evolving for the last two decades.
This book is a comprehensive guide that shows you how to implement SOLID principles and refactor legacy code using the modern features and approaches of C++, the standard library, Boost library collection, and Guidelines Support Library by Microsoft. The book begins by describing the essential elements of writing clean code and discussing object-oriented programming in C++. You'll explore the design principles of software testing with examples of using popular unit testing frameworks such as Google Test. The book also guides you through applying automated tools for static and dynamic code analysis using Clang Tools.
By the end of this book, you'll be proficient in applying industry-approved coding practices to design clean, sustainable, and readable real-world C++ code.
What You Will Learn:
- Leverage the rich type system of C++ to write safe and elegant code
- Create advanced object-oriented designs using the unique features of C++
- Minimize code duplication by using metaprogramming
- Refactor code safely with the help of unit tests
- Ensure code conventions and format with clang-format
- Facilitate the usage of modern features automatically with clang-tidy
- Catch complex bugs such as memory leakage and data races with Clang AddressSanitizer and ThreadSanitizer
Who this book is for:
This book will benefit experienced C++ programmers the most, but is also suitable for technical leaders, software architects, and senior software engineers who want to save on costs and improve software development process efficiency by using modern C++ features and automated tools.
Table of Contents
- Coding Standards in C++
- Main Software Development Principles
- Causes of Bad Code
- Good Candidates for Rewriting - Patterns and Anti-Patterns
- The Significance of Naming
- Utilizing a Rich Static Type System in C++
- Classes, Objects, and OOP in C++
- Designing and Developing APIs in C++
- Code Formatting and Naming Conventions
- Introduction to Static Analysis in C++
- Dynamic Analysis
- Testing
- Modern Approach to Managing Third Parties
- Version Control
- Code Review