C++编程规范之20:避免函数过长,避免嵌套过深

简介:

摘要:

    短胜于长,平胜于优,过长的函数和嵌套过深的代码块的出现,经常是因为没能赋予一个函数以一个紧凑的职责所致,这两种情况通常都能够通过更好的重构予以解决。

    每个函数都应该顾其名而能知其义,易于理解的工作单元。如果于此相反,函数试图将多个这样的小概念合并到一个长的函数体中,那么它最终将不堪重负。

    过长的函数和嵌套过深的代码块都是使函数更难于理解和维护的密不可分的两大元凶。

我们在编写代码的时候要注意限制函数的长度和嵌套深度,合理的建议如下:

1.      尽量紧凑。一个函数只赋予一个职责。

2.      不要自我重复。优先使用命名函数,而不要让相似的代码片段重复出现。

3.      优先使用&&。在可以使用&&条件判断的地方要避免使用连续嵌套的if。

4.      不要过分使用try。优先使用析构函数进行自动清除而避免使用try代码块。

5.      优先使用标准算法。算法比循环嵌套要少,通常也更好。

6.      不要根据类型标签进行分支。也就是尽量不要使用switch…..case语句,而要优先使用多态函数。

    当然,如果一个函数的功能无法合理地重构为多个独立的子任务,那么它的较长和嵌套较多就是合理的。但是如果有几个这样的函数都具有相似的参数,那么它们就有可能成为一个新类的成员。

相关文章
|
1天前
|
C++
C++语言如何利用函数来处理数组
C++语言如何利用函数来处理数组
|
4天前
|
C++ 容器
【C++】拷贝构造函数、拷贝赋值函数与析构函数
【C++】拷贝构造函数、拷贝赋值函数与析构函数
17 6
|
1天前
|
编译器 程序员 语音技术
C++的超20种函数类型分享
C++超20种函数类型:编程语言规定规则,编译器实现预定规则
|
1天前
|
C++
C++函数的返回数据写法的思路
C++函数使用尾置返回类型、decltype、类型别名返回一个数组引用
|
2天前
|
关系型数据库 MySQL 测试技术
技术分享:深入C++时间操作函数的应用与实践
技术分享:深入C++时间操作函数的应用与实践
8 1
|
5天前
|
安全 C++ 开发者
C++一分钟之-函数参数传递:值传递与引用传递
【6月更文挑战第19天】C++中函数参数传递涉及值传递和引用传递。值传递传递实参副本,安全但可能效率低,适合不变对象;引用传递传递实参引用,允许修改,用于高效修改或返回多值。值传递示例显示交换不生效,而引用传递示例实现交换。常量引用则防止意外修改。选择传递方式需考虑效率与安全性。
23 2
|
11天前
|
编译器 C++
c++primer plus 6 读书笔记 第八章 函数探幽0
c++primer plus 6 读书笔记 第八章 函数探幽0
|
11天前
|
编译器 vr&ar C++
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
|
11天前
|
编译器 C++ 存储
【C++语言】类和对象--默认成员函数 (中)
【C++语言】类和对象--默认成员函数 (中)
【C++语言】类和对象--默认成员函数 (中)
|
11天前
|
C++ 容器
【C++语言】String 类关键函数实现,手搓一个简单字符串类!
【C++语言】String 类关键函数实现,手搓一个简单字符串类!