前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >淘宝开源的代码质量检测工具!

淘宝开源的代码质量检测工具!

作者头像
程序猿DD
发布于 2023-04-04 07:46:15
发布于 2023-04-04 07:46:15
5010
举报
文章被收录于专栏:程序猿DD程序猿DD

点击上方蓝色“程序猿DD”,选择“设为星标”

回复“资源”获取独家整理的学习资料!

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

好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 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/iceworks/tree/master/

往期推荐

程序员编码时都戴耳机?到底在听什么?

Spring Data 发布更改版本管理方案之后的第一个版本:2020.0.0

终于还是对“带薪拉SHI”出手了...

Spring 5.3 正式GA,维护至2024年,4.3版本年末结束维护

聊聊订单系统的设计?

扫一扫,关注我

一起学习,一起进步

每周赠书,福利不断

深度内容

推荐加入

最近热门分享话题: #沪牌代拍的技术、策略与设计

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020/11/02 08:31:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿DD 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
日拱一卒 | 设计模式之美 | 01 导学
要写出高质量代码,需要掌握一些更加细化、更加能落地的编程方法论,这就包含面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等等。
被水淹没
2023/02/25
2890
日拱一卒 | 设计模式之美 | 01 导学
推荐几款代码检查工具,淘宝开源代码质量检测工具
好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,同时方便项目组成员快速做好 Back up。好的代码便于促进团队间交流合作提升开发效率。
肉眼品世界
2020/11/11
2.3K0
推荐几款代码检查工具,淘宝开源代码质量检测工具
提升执行效率的同时保障代码规范的统一标准
最佳实践: 通过 @iceworks/eslint-plugin-best-practices 分析项目,提出符合当前工程特征(对 ice 和 Rax 项目友好)的最佳实践及阻塞问题发布卡口,帮助开发者优化项目性能,避免潜在 bug 。
用户8983410
2021/09/26
4090
代码质量与技术债
我们可以通过各种类型的检测手段来给出其质量高低的度量。但是,如果直接拿出一段源代码放在我们面前,问这段代码的质量好坏时,我们又该如何作答呢?
腾讯移动品质中心TMQ
2018/06/22
3.1K3
如何写出高质量代码:特征、编程实践技巧和软件工程方法论
在当今的软件开发行业中,写出高质量代码是每个开发者都应该追求的目标。高质量代码不仅能提升我们自身的编程水平和工作效率,还能减少代码维护和管理的难度,为项目的长期发展奠定坚实的基础。然而,要写出高质量代码并不是一件容易的事情,需要我们在多方面下功夫,才能达到预期的效果。
德宏大魔王
2023/08/08
3690
如何写出高质量代码:特征、编程实践技巧和软件工程方法论
DevOps之静态代码扫描
《Sonar code quality testing essential》一书中从七个维度定义了代码的这种内在质量,Sonar开发团队上纲上线的戏称为开发人员七宗罪:
用户7533190
2020/07/06
1.9K0
Golang深入浅出之-Go语言代码质量与规范:遵循Gofmt与Linting
在Go语言的世界里,代码的整洁度和规范性不仅是个人编码习惯的体现,更是团队协作效率和代码可维护性的关键。本文将深入探讨如何利用gofmt和Lint工具来提升Go代码的质量,避免常见错误,并通过实例代码加深理解。
Jimaks
2024/05/01
2220
常见的开源项目的代码质量检测与代码评审工具
记得我当时学Java的时候,总是喜欢按照《阿里巴巴Java开发手册》来约束自己的编码风格,包括后来在IDE中安装各种代码规范检查插件。
叫我阿柒啊
2025/01/10
3800
常见的开源项目的代码质量检测与代码评审工具
提高golang代码质量
1. 遵循Go语言规范:确保你的代码遵循Go的官方编码规范。可以使用工具如`gofmt`和`goimports`来自动格式化代码和管理导入。
运维开发王义杰
2023/08/16
2510
提高golang代码质量
关于烂代码的那些事 – 评价代码优劣的方法
秦迪,微博研发中心技术专家,2013 年加入微博,负责微博平台通讯系统的设计和研发、微博平台基础工具的开发和维护,并负责微博平台的架构改进工作,在工作中擅长排查复杂系统的各类疑难杂症。爱折腾,喜欢研究从内核到前端的所有方向,近几年重点关注大规模系统的架构设计和性能优化,重度代码洁癖:以 code review 为己任,重度工具控:有现成工具的问题就用工具解决,没有工具能解决的问题就写个工具解决。业余时间喜欢偶尔换个语言写代码放松一下。
AWeiLoveAndroid
2018/09/03
8210
关于烂代码的那些事
这是烂代码系列的第二篇,在文章中我会跟大家讨论一下如何尽可能高效和客观的评价代码的优劣。 在发布了关于烂代码的那些事(上)之后,发现这篇文章竟然意外的很受欢迎,很多人也描(tu)述(cao)了各自代码中这样或者那样的问题。 最近部门在组织bootcamp,正好我负责培训代码质量部分,在培训课程中让大家花了不少时间去讨论、改进、完善自己的代码。虽然刚毕业的同学对于代码质量都很用心,但最终呈现出来的质量仍然没能达到“十分优秀”的程度。 究其原因,主要是不了解好的代码“应该”是什么样的。
lyb-geek
2022/03/10
3000
关于烂代码的那些事
【软件工程】代码质量综合指南:最佳实践和工具
当您的软件团队快速增长时,确保代码质量是一个巨大的挑战。但是,即使有固定数量的软件开发人员,维护代码质量也会引起麻烦。
架构师研究会
2020/03/20
1.2K0
如何提高代码质量
说起代码质量,脑子里会冒出很多词,命名规范、格式规范、日志规范、单元测试覆盖率...
用户1516716
2020/09/14
5710
编写清晰易读代码的艺术-编码规范与最佳实践
在软件开发中,代码的可读性直接影响到其可维护性和团队协作的效率。良好的编码规范不仅帮助开发者自己理解代码,还能让团队中的其他成员快速上手项目。然而,许多开发者在编码时往往忽视了这一点。本文将探讨如何编写清晰易读的代码,包括编码规范与最佳实践,并通过代码示例来说明如何实现这些规范。
一键难忘
2024/09/01
8470
【译】做好这几件事,代码质量可以提升一个档次
这篇文章又是关于代码质量的,有些同学可能觉得我比较啰嗦。不过我就是想用这种方式让大家重视起来。其实说来说去就那么几种方法,但是实际执行起来真是难于登天。
Jackeyzhe
2020/03/11
6350
【译】做好这几件事,代码质量可以提升一个档次
记在github中开发项目的正确姿势
前几天随便写了一个hexo小插件,这几天刚好考完期末考试,趁着实习前没啥事,于是又拿来看看,想想有什么可以改进改进的。为了发散思路,我就把hexo.io的插件列表里的插件基本上从头到尾看了一遍。这个不看不知道,看完之后我发现其实里面的内容质量也是参差不齐的,好一点的呢,开发、测试、集成、样例、徽章都十分齐备,文档简明扼要,一看就是专业玩家;差一点的呢,基本都没有集成,没有测试,没有徽章,文档简陋或者啰嗦,有的issue满天也没人处理,有的build failure也不解决,更有的连repository都404了。。。看上去hexo的社区似乎在走下坡路了,毕竟博客这种东西,本来能坚持下来的人就不多,用户流失日益严重,而且hexo本身学习门槛也比较高,况且像这种项目还没有金主爸爸养,坚持维护也挺不容易的。 额。。。先不议论别人,还是先想办法提高提高自己项目的逼格吧。。。
mythsman
2022/11/14
4110
记在github中开发项目的正确姿势
2024年春招小红书前端实习面试题分享
回答方向可以有:优化工作:我负责了前端性能的优化工作。通过对页面加载速度、资源消耗和代码效率的分析,我采用了代码拆分、懒加载、缓存优化等技术手段,提高了网站的性能和响应速度。
肥晨
2024/03/06
5241
2024年春招小红书前端实习面试题分享
软件工程之编码(1)
在软件开发领域,编码是一门艺术,也是软件工程中最为基础和关键的环节之一。优秀的编码实践能够提高代码的可维护性、可读性,降低bug的产生概率,加速团队协作进程。在本文中,我们将深入探讨软件工程中编码的各个方面,分享一些提高编码质量和效率的技巧和方法。
人不走空
2024/02/21
3090
如何使用Java进行代码质量评估和重构?
要使用Java进行代码质量评估和重构,需要采取一系列的步骤和工具来分析代码,并根据分析结果进行必要的修改和改进。下面将介绍如何使用Java进行代码质量评估和重构,包括代码静态分析工具、代码规范检查、重构技术等。
用户1289394
2024/05/17
3410
如何使用Java进行代码质量评估和重构?
【深入浅出C#】章节10: 最佳实践和性能优化:编码规范和代码风格
编码规范和代码风格之所以重要,是因为它们直接影响到软件开发的质量、可维护性、可读性和协作效率。编码规范和代码风格是编程中的关键要素,它们有助于编写高质量、可维护和易读的代码,提高团队协作效率,减少错误,降低维护成本,从而推动软件开发的成功和可持续性。
喵叔
2023/09/04
9520
推荐阅读
相关推荐
日拱一卒 | 设计模式之美 | 01 导学
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档