关于java:淘宝开源的代码质量检测工具太强大了

3次阅读

共计 1663 个字符,预计需要花费 5 分钟才能阅读完成。

好的代码肯定是整洁的,并且可能帮忙浏览的人疾速了解和定位。好的代码能够放慢利用的开发迭代速度,不用花过多的工夫来修复 bug 和欠缺代码。

好的代码岂但可能使得新的我的项目成员更容易退出我的项目,同时不便我的项目组成员疾速做好 Back up。好的代码便于促成团队间交换单干晋升开发效率。

代码品质评估规范

有编码教训的人对代码都有肯定的“鉴赏力”,可能凭感觉给出代码好坏的主观评估。然而这种凭感觉的形式太过共性随便,所谓仁者见仁智者见智,很难达成共识,那有没有一种公认的规范来鉴定代码品质呢?

答案是有的。这里简略分享当下较罕用的评估规范,其中包含:编码标准、可读性、可维护性、反复度及可测试性。

编码标准
次要蕴含是否恪守了最佳实际和团队编码标准,是否蕴含可能出问题的代码,以及可能存在平安的破绽。编码标准有助于进步团队内帮助的效率以及代码的可维护性。

可读性
Code Review 是一个很好的测验代码可读性的伎俩。如果你的共事能够轻松地读懂你写的代码,那阐明你的代码可读性很好;反之则阐明你的代码可读性有待进步了。恪守编码标准也能让咱们写出可读性更好的代码。

可维护性
代码的可维护性是由很多因素协同作用的后果。代码的可读性好、简洁、可扩展性好,就会使得代码易保护;更细化地讲,如果代码分层清晰、模块化好、高内聚低耦合、听从基于接口而非实现编程的设计准则等等,那就可能意味着代码易保护。除此之外,代码的易维护性还跟我的项目代码量的多少、业务的复杂程度、利用到的技术的复杂程度、文档是否全面等诸多因素无关。

反复度
恪守 Don’t Repeat Yourself 准则,尽量减少反复代码的编写,复用已有的代码。对我的项目定期进行代码反复度检测是一个很有意义的事,能够帮忙开发人员发现冗余代码,进行代码形象和重构。反复的代码一旦出错,意味着加倍的工作量和继续的不可控。如果代码中有大量的反复代码,就要思考将反复的代码提取进去,封装成公共的办法或者组件。

可测试性
代码可测试性的好坏,同样能够反馈代码品质的好坏。代码的可测试性差,比拟难写单元测试,那基本上就能阐明代码设计得有问题。

除此之外还有很多代码品质评估规范。咱们须要一些取舍,选取局部大家有共识的规定定义团队好的代码规范。

代码品质维度

以后版本通过 @iceworks/doctor 从 5 个维度对代码进行评分:

1. 最佳实际:
通过 @iceworks/eslint-plugin-best-practices 剖析我的项目,提出合乎以后工程特色(对 ice 和 Rax 我的项目敌对)的最佳实际及阻塞问题公布卡口,帮忙开发者优化我的项目性能,防止潜在 bug。

2. 平安实际:
通过 @iceworks/eslint-plugin-security-practices 扫码代码检测工程中可能存在的平安危险,蕴含 url、敏感成词、明文账密信息及 npm 包证书检测,升高我的项目平安危险,守卫我的项目平安。

3. 阿里代码标准:
这一维度次要反馈开发人员对于 eslint-config-ali 阿里开发规约的恪守水平。

4. 可保护度:
通过 typhonjs-escomplex 对文件进行扫码,得出每个文件的可保护度,可读性及复杂度评分。针对得分较差的文件能够进行深度剖析帮忙开发者更好的重构简单代码。

5. 反复度:
通过 jscpd 计算反复呈现的代码区块占比,计算出 clone 分数。并逐个列举反复的代码,不便开发者疾速定位反复代码,将其封装成公共的办法或者组件。

根据上述 5 个维度通过加权均匀的形式计算我的项目品质分,并依据木桶效应,在计算得分的过程中加大了最低分的权重,得出最终我的项目品质评分。

我的项目地址
github 地址:https://github.com/ice-lab/ic…

起源:github.com/ice-lab/iceworks/tree/master/

欢送关注我的微信公众号「码农解围」,分享 Python、Java、大数据、机器学习、人工智能等技术,关注码农技术晋升•职场解围•思维跃迁,20 万 + 码农成长充电第一站,陪有幻想的你一起成长

正文完
 0