Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Refactoring with C++
  • Table Of Contents Toc
  • Feedback & Rating feedback
Refactoring with C++

Refactoring with C++

By : Dmitry Danilov
5 (2)
close
close
Refactoring with C++

Refactoring with C++

5 (2)
By: Dmitry Danilov

Overview of this book

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.
Table of Contents (18 chapters)
close
close
Free Chapter
2
Chapter 2: Main Software Development Principles
In Progress | 0 / 5 sections completed | 0%
4
Chapter 4: Identifying Ideal Candidates for Rewriting – Patterns and Anti-Patterns
In Progress | 0 / 6 sections completed | 0%
16
Index
In Progress | 0 / 2 sections completed | 0%

Checking source code name styling with Clang-Tidy

Now that we’ve successfully configured Clang-Tidy’s rules and integrated the tool into our CMake build system, it’s time for a real-world test. For this purpose, we’ll use a snippet of C++ code that deliberately violates the naming conventions we’ve established:

#include <string>
#include <vector>
namespace Filesystem { // CamelCase instead of lower_case
enum class Permissions : uint8_t { READ, WRITE, execute };
struct User {
    std::string name_; // redundant suffix _ for public member
    int Id = 0;        // CamelCase instead of lower_case
    Permissions permissions;
};
class file { // lower_case instead of CamelCase
public:
    file(int id, const std::string &file_name,
         const std::vector<User> access_list...

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech

Create a Note

Modal Close icon
You need to login to use this feature.
notes
bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY