C++ 最佳实践 | 4. 可维护性

简介: C++ 最佳实践 | 4. 可维护性

本系列是开源书C++ Best Practises的中文版,全书从工具、代码风格、安全性、可维护性、可移植性、多线程、性能、正确性等角度全面介绍了现代 C++项目的最佳实践。本文是该系列的第四篇。


C++最佳实践:

  1. 工具
  2. 代码风格
  3. 安全性
  4. 可维护性(本文)
  5. 可移植性及多线程
  6. 性能
  7. 正确性和脚本


可维护性


避免使用编译宏


宏在编译之前被预处理器所替换,从而使得调试非常困难,因为调试器无法知道源代码来自哪里。


// Bad Idea
#define PI 3.14159;
// Good Idea
namespace my_project {
  class Constants {
  public:
    // if the above macro would be expanded, then the following line would be:
    //   static const double 3.14159 = 3.14159;
    // which leads to a compile-time error. Sometimes such errors are hard to understand.
    static constexpr double PI = 3.14159;
  };
}


避免使用布尔值作为函数参数


在阅读代码时,布尔值无法提供任何额外含义。可以创建一个名称更有意义的独立函数,或者传递含义更明确的枚举值。


避免使用裸循环


了解和理解现有 C++标准算法,并付诸实践。


将对[]的调用看作是一种潜在的代码坏味道,表明没有在需要的地方使用合适的算法。


永远不要使用有副作用的assert


// Bad Idea
assert(set_value(something));
// Better Idea
[[maybe_unused]] const auto success = set_value(something);
assert(success);


在 release 版本中assert()将会被删除,从而造成set_value无法被调用。


虽然第二个版本更丑,但总比第一个错误版本好一点。


正确使用“override”和“final”


这些关键字使其他开发人员可以清楚知道虚函数可以被如何使用,如果虚函数的签名发生了变化,就可以捕获潜在错误,并有可能向编译器提示可以执行哪些优化


目录
相关文章
|
8月前
|
存储 安全 算法
【C++智能指针 相关应用】深入探索C++智能指针:跨进程、动态库与最佳实践
【C++智能指针 相关应用】深入探索C++智能指针:跨进程、动态库与最佳实践
126 5
|
8月前
|
C++
C++ 编程必备:对象生命周期管理的最佳实践
在C++中,对象的生命周期是指对象存在的时间段,从对象创建到对象销毁的整个过程。正确地管理对象的生命周期是编写高效、可靠C++代码的关键之一
135 1
|
8月前
|
消息中间件 负载均衡 监控
【ZMQ PUB模式指南】深入探究ZeroMQ的PUB-SUB模式:C++编程实践、底层原理与最佳实践
【ZMQ PUB模式指南】深入探究ZeroMQ的PUB-SUB模式:C++编程实践、底层原理与最佳实践
2163 1
|
8月前
|
C++
C++代码的可读性与可维护性:技术探讨与实践
C++代码的可读性与可维护性:技术探讨与实践
130 1
|
8月前
|
NoSQL API Redis
最佳实践|如何使用c++开发redis module
本文将试着总结Tair用c++开发redis module中遇到的一些问题并沉淀为最佳实践,希望对redis module的使用者和开发者带来一些帮助(部分最佳实践也适用于c和其他语言)。
76676 0
|
8月前
|
安全 vr&ar C++
C++:编程语言的演变、应用与最佳实践
C++:编程语言的演变、应用与最佳实践
|
8月前
|
安全 算法 编译器
【C++ 泛型编程 进阶篇】深入探索 C++ STL 容器的嵌套类型:识别、运用与最佳实践
【C++ 泛型编程 进阶篇】深入探索 C++ STL 容器的嵌套类型:识别、运用与最佳实践
188 7
|
8月前
|
设计模式 安全 C++
【C++ const 函数 的使用】C++ 中 const 成员函数与线程安全性:原理、案例与最佳实践
【C++ const 函数 的使用】C++ 中 const 成员函数与线程安全性:原理、案例与最佳实践
308 2
|
8月前
|
程序员 开发工具 git
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
194 1
|
8月前
|
安全 搜索推荐 Linux
Linux C++ 环境下数据高效备份策略:全面指南与最佳实践
Linux C++ 环境下数据高效备份策略:全面指南与最佳实践
94 1