Taylor Otwell:PHP 框架的代码复杂性对比
上周,当我针对 5.4 版本进行重构和清理 Laravel 时,Graham Campbell 向我展示了该框架的一些代码复杂性统计信息。 我决定将其与其他一些PHP框架进行比较,以了解Laravel如何堆叠。
我看了一些指标。 一种是平均方法复杂度,它是循环复杂度的度量。 查看此分数时,越简单越好。 虽然这不是衡量代码质量的绝对“最终指标”,但它确实为代码中的“热点”提供了不错的指示,可以使用重构。
我很高兴看到Laravel在所有衡量的框架中具有最低的平均方法复杂度。 另外,Laravel不包含任何超过13行代码的方法。 最大的方法复杂度低于50的仅有两个框架是Laravel(17)和Slim(13)。 除了Laravel之外,没有其他框架的平均方法复杂度低于2。
值得注意的是,Laravel 利用了 Symfony 的 HTTPFoundation 组件和 Console组件。 整个框架中没有大量 使用其他Symfony组件。 比较的主要目的是比较* I *个人编写代码的方式与其他项目编写代码的方式。 所有被测项目都具有足够大的纯第一方代码样本量,可以准确地进行测量。
我还比较了Laravel的 Eloquent ORM 和 Doctrine 的 ORM。 该比较的结果可以在结果列表的底部找到。
Laravel
- 代码行数: 54,398
- 最长方法: 13 行代码
- 平均方法复杂度: 1.62
- 最大方法复杂度: 17
- 非静态方法占比: 94.81%
Symfony (Only Components, No Twig, No Doctrine)
- 代码行数: 118,636
- 最长方法: 136 行代码
- 平均方法复杂度: 2.72
- 最大方法复杂度: 155
- 非静态方法占比: 97.09%
Zend (选择最小安装选项)
- 代码行数: 55,904
- 最长方法: 73 行代码
- 平均方法复杂度: 2.76
- 最大方法复杂度: 53
- 非静态方法占比: 93.55%
Cake
- 代码行数: 62,860
- 最长方法: 56
- 平均方法复杂度: 3.30
- 最大方法复杂度: 75
- 非静态方法占比: 89.87%
Slim
- 代码行数: 4,127
- 最长方法: 26
- 平均方法复杂度: 2.40
- 最大方法复杂度: 13
- 非静态方法占比: 96.58%
Eloquent (ORM)
- 代码行数: 6,026
- 最长方法: 13
- 平均方法复杂度: 1.76
- 最大方法复杂度: 17
- 非静态方法占比: 91.57%
Doctrine (ORM Only, No DBAL)
- 代码行数: 39,294
- 最长方法: 148
- 平均方法复杂度: 2.94
- 最大方法复杂度: 152
- 非静态方法占比: 92.50%
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: