为什么避免函数中嵌套块是一个好主意? (PHP)

前端之家收集整理的这篇文章主要介绍了为什么避免函数中嵌套块是一个好主意? (PHP)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我安装了一个Netbeans 7.4测试版,并有一个新的提示,说“在功能声明中太多的嵌套块 – 介绍新功能的好习惯…”.

我尝试避免函数内的嵌套块更好的可读性,但是有什么其他原因,这将是一个更好的“想法”,专门针对PHP,如果这很重要.

这个正式的名字是 Cyclomatic Complexity.

这是基于函数中“决策点”数量函数复杂程度的度量.数字越高,功能越复杂.

Complexity is determined by the number of decision points in a method plus one for the method entry. The decision points are ‘if’,‘while’,‘for’,and ‘case labels’. Generally,1-4 is low complexity,5-7 indicates moderate complexity,8-10 is high complexity,and 11+ is very high complexity.

(取自http://phpmd.org/rules/codesize.html)

认为您的复杂度值太高的原因是因为它使功能难以测试.

为了测试一个函数的全部潜力,您需要对每个可能的代码路径进行单独的测试.代码路径的数量随着每个新的决策点呈指数增长,这意味着当您在单个功能中获得了多少决策时,您需要进行数百次测试,以确保已覆盖它可能执行的全部功能.

单个功能的数百个测试显然太多了,所以更好的选择是通过将每个功能的决策点分成几个较小的函数,每个功能的决策少.

您还需要使函数离散,以使它们不依赖于彼此运行.这允许它们彼此隔离地进行测试. (否则您仍然有一个调用中的原因太多决定的问题)

然后,您可以仅使用最初要求的测试次数来测试每个功能.

测试功能彼此隔离的过程称为Unit Testing.这本身就是一个非常大的话题,但如果您想了解更多有关良好的软件开发实践的知识,那么值得研究.

由于您已经标记了这个问题PHP,所以我将指出一些可帮助您的工具:

> PHP Unit – 这是PHP的事实上的标准单元测试包.
> PHPMD – “PHP Mess Detector”;一个用于分析您的代码以查找过多复杂性的工具.
> pDepend – 另一个类似的工具.

有一些其他工具可用,但这可能足以开始;先了解那些.研究主题时,您会自然会遇到别人.

原文链接:https://www.f2er.com/php/140127.html

猜你在找的PHP相关文章