摘要:
短胜于长,平胜于优,过长的函数和嵌套过深的代码块的出现,经常是因为没能赋予一个函数以一个紧凑的职责所致,这两种情况通常都能够通过更好的重构予以解决。
每个函数都应该顾其名而能知其义,易于理解的工作单元。如果于此相反,函数试图将多个这样的小概念合并到一个长的函数体中,那么它最终将不堪重负。
过长的函数和嵌套过深的代码块都是使函数更难于理解和维护的密不可分的两大元凶。
我们在编写代码的时候要注意限制函数的长度和嵌套深度,合理的建议如下:
1. 尽量紧凑。一个函数只赋予一个职责。
2. 不要自我重复。优先使用命名函数,而不要让相似的代码片段重复出现。
3. 优先使用&&。在可以使用&&条件判断的地方要避免使用连续嵌套的if。
4. 不要过分使用try。优先使用析构函数进行自动清除而避免使用try代码块。
5. 优先使用标准算法。算法比循环嵌套要少,通常也更好。
6. 不要根据类型标签进行分支。也就是尽量不要使用switch…..case语句,而要优先使用多态函数。
当然,如果一个函数的功能无法合理地重构为多个独立的子任务,那么它的较长和嵌套较多就是合理的。但是如果有几个这样的函数都具有相似的参数,那么它们就有可能成为一个新类的成员。