小巧的小快乐#4:Rad-以数字衡量的代码质量

工程师非常喜欢测量和数量。 因此,毫不奇怪,他们试图以数字形式来度量诸如代码质量之类的非平凡事物。



评估程序文本的度量标准已经发明了很多-从项目中平庸的代码行数到不太明显的“可维护性指数”。 可以在本文中找到有关使用各种指标覆盖代码的所有现有方法的详细信息。


当然,Python世界在评估代码质量方面有其独特之处。 它被称为ra 。 它是用相同的Python编写的,并且仅与小文件一起使用。


我们把它自己


pip install radon 

我们转到包含您的代码的文件夹,然后开始进行测量。


原始统计


源中行数的常规计数。 以及直接包含代码的行数和注释行数。 度量标准不是非常有用,但是需要进行进一步的计算。


 radon raw ./ 

作为响应,项目中的文件列表和每个文件的统计信息将失效。


圈复杂度


代码中的过渡(if-else),循环,生成器,异常处理程序和逻辑运算符越多,程序具有的选择就越多,并且牢记各种系统状态也就越困难。 根据这些操作的数量来测量代码复杂度的度量称为程序的循环复杂度


它被认为是一个团队。


 radon cc ./ 

作为响应,您将收到项目中文件,类,方法和函数的列表以及它们的复杂性索引,从非常简单到非常复杂。 索引将指示逻辑重载的位置,这些位置可以分解成较小的部分,简化或重写(如果可能,该算法本身可能非常复杂,并且尝试将其分解成碎片只会使代码的可读性变差)。


Halstead指标


在这里,我们考虑代码中唯一运算符和操作数的数量及其总数。 将获得的值代入公式,并获得一组数字,这些数字描述了程序的复杂性以及假定用于编写和理解代码的工作量。


 radon hal ./ 

代码支持指数


该索引告诉我们维护或编辑程序的一部分会有多困难。 该参数是根据从上面计算的指标获得的数字计算得出的。


 radon mi ./ 

作为响应,我们获得了项目中文件的列表及其支持索引,从轻到重。


可在此处找到用于计算度量标准和文档的详细算法。


这是哪里啊


当然,仅依靠数字量度就不可能得出有关代码质量的任何结论。 但是在某些情况下,用ra进行快速评估可能会有所帮助。


  • 您必须查看大量代码,没有时间将大量精力单独放在每个文件上。 运行测试将使您看到初中新人冲刷40个嵌套条件的功能。
  • 您必须引导开发成小项目的大量微服务。 快速评估(甚至可能在自动模式下)将使您找到可能有问题的地方并手动进行检查。
  • 当然,可以在开源库上运行测试(尤其是一些社区不那么受欢迎的解决方案)。

认知上? 是的 有用和必要? 也许有时,在某些情况下。


要放置,播放,按指标运行几个项目,编写一个小脚本并将其挂在提交上? 也许是一个晚上的好项目。

Source: https://habr.com/ru/post/zh-CN456150/


All Articles