如果我对我的一个phploc项目(开放源码)运行,我会看到这个输出。
phploc 1.6.4 by Sebastian Bergmann.
Directories: 3
Files: 33
Lines of Code (LOC): 2358
Cyclomatic Complexity / Lines of Code: 0.08
Comment Lines of Code (CLOC): 903
Non-Comment Lines of Code (NCLOC): 1455
Namespaces: 0
Interfaces: 3
Classes: 28
Abstract: 1 (3.57%)
Concrete: 27 (96.43%)
Average Class Length (NCLOC): 49
Methods: 149
Scope:
Non-Static: 128 (85.91%)
Static: 21 (14.09%)
Visibility:
Public: 103 (69.13%)
Non-Public: 46 (30.87%)
Average Method Length (NCLOC): 9
Cyclomatic Complexity / Number of Methods: 1.69
Anonymous Functions: 0
Functions: 3
Constants: 9
Global constants: 0
Class constants: 9通过这种静态分析,如何判断这个代码库是好的还是坏的?或者写得好还是写得不好?
3.57%抽象类是好是坏?14.09%静态方法在OOP代码库中,应该更低一点吗?最后一个问题如何分析一个带有phploc输出的代码库?
发布于 2012-12-18 16:51:50
低圈复杂度是好的,高的是坏的;statics are hard to unit test,但是(虽然有些人认为它们和eval一样糟糕),它们确实起到了一定的作用;phploc的其他度量是可以解释的。
但是,您确实应该与pdepend和phpmd等其他工具一起使用phploc。and站点特别解释了所使用的许多分析方法,而phpmd输出是非常清楚的。
编辑
作为比较,我目前正在处理的代码(https://github.com/MarkBaker/PHPGeodetic):我对抽象/具体类的级别相当满意,尽管它可能会更高一些;我有一个具有较高圈复杂度的方法,它足以使这些数字倾斜一点,但它不容易被分解;还有一些较长的方法(但不足以触发phpmd警告)。
Lines of Code (LOC): 4003
Cyclomatic Complexity / Lines of Code: 0.07
Comment Lines of Code (CLOC): 1580
Non-Comment Lines of Code (NCLOC): 2423
Namespaces: 0
Interfaces: 1
Traits: 0
Classes: 25
Abstract: 4 (16.00%)
Concrete: 21 (84.00%)
Average Class Length (NCLOC): 103
Methods: 160
Scope:
Non-Static: 129 (80.62%)
Static: 31 (19.38%)
Visibility:
Public: 131 (81.88%)
Non-Public: 29 (18.12%)
Average Method Length (NCLOC): 16
Cyclomatic Complexity / Number of Methods: 2.12
Anonymous Functions: 2
Functions: 0
Constants: 66
Global constants: 0
Class constants: 66总的来说,我很想使用公共/私有、非静态/静态和具体/抽象的80:20规则;但这在很大程度上取决于您实际编码的内容。
也许更重要的是循环复杂度/方法的数量..。我不喜欢这个数字太高,但如果它超过2.5的平均值,我将仔细观察phpmd的统计数据。
https://stackoverflow.com/questions/13937676
复制相似问题