phploc输出解释(phploc output explanation)

2019-08-04 07:09发布

如果我运行phploc对我的PHP项目(开源)之一,我看到这个输出。

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

有了这个静态分析如何判断是否该代码库是好还是坏? 或如何好或不好写?

  1. 是圈复杂度好,如果它太低或太高?
  2. 3.57%抽象类是好还是坏?
  3. 14.09%的静态方法。 它应该是对OOP代码库低?
  4. 有没有使用命名空间,是好还是坏?

最后一个问题你如何分析一个代码库与phploc的输出?

Answer 1:

低圈复杂度还是不错的,高是坏的; 静是很难进行单元测试 ,但(虽然有些人认为他们一样坏EVAL)他们做服务于一个目的; 从phploc等措施都受到解释。

但是,你真的应该使用phploc旁边像其他工具pdepend和phpmd 。 特别是pdepend网站解释了很多使用的分析,而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起来更紧密地统计了很多



文章来源: phploc output explanation