点击上方蓝色“方志朋”,选择“设为星标”

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

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

昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看到。

关于算法刷题的困惑和疑问也经常听朋友们提及。这份笔记里面共包含作者刷LeetCode算法题后整理的数百道题,每道题均附有详细题解过程。很多人表示刷数据结构和算法题效率不高,甚是痛苦。有了这个笔记的总结,对校招和社招的算法刷题帮助之大不言而喻,果断收藏了。

需要刷题笔记PDF文档的小伙伴可以直接长按扫码关注下方二维码,回复 「刷题笔记」 四个字自取:

关注下方公众号

????????????

回复关键字「刷题笔记」,即可下载

笔记版权归原作者所有,转载请注明出处 https://books.halfrost.com/leetcode/

淘宝开源代码质量检测工具!相关推荐

  1. 【IDEA】代码质量检测工具 QAPLug

    [IDEA]代码质量检测工具 QAPLug 代码质量检测工具 情景: 写完代码一定要别人review才发现bug或不好的语法或多余的变量是一件多么尴尬的事情,如果想在写代码时或者写代码后自己能发现问题 ...

  2. python代码检测工具及区别_flake8-python代码质量检测工具

    flake8是python代码质量检测工具. 描述 flake8是一个命令行实用程序,用于在整个Python项目中加强样式的一致性. 默认情况下,它包括PyFlakes项目提供的lint检查,PyCo ...

  3. Docker搭建SonarQube代码质量检测工具

    SonarQube简介 SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量. 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/S ...

  4. 淘宝开源的代码质量检测工具,真强啊~

    来源:github.com/ice-lab/iceworks/tree/master/ 好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位.好的代码可以加快应用的开发迭代速度,不必花过多的时间来 ...

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

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源:github.com/ice-lab/icewor ...

  6. 淘宝开源代码检测工具!(附源码)

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]          正文   好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位.好的代码可以加快应用的开发迭代速度,不必花过多的时间 ...

  7. SonarQube-代码质量检测工具

    SonarQube是一款代码质量检测工具,用于检测代码BUG,漏洞之类的,当然这类工具是辅助工具,不一定是代码有问题,需要设置扫描规则 如果需要使用轻量级的,则可以直接安装sonarlint IDEA ...

  8. java检测工具_常用Java代码质量检测评估工具

    常用Java代码质量检测评估工具 1. PMD from http://pmd.sourceforge.net/ PMD能够扫描Java 源代码,查找类似以下的潜在问题: 可能的bug--try/ca ...

  9. 使用Jenkins+Sonarqueb进行自动化测试和代码质量检测

    摘要: Jenkins Jenkins是一款开源的持续集成工具,它的特点:易于安装.易于配置.可扩展(自己开发插件),并且它拥有数以百计的成熟插件,这种插件式的特点提供可做任何事情的可能. 简介 Je ...

最新文章

  1. 方法论 | 产品经理的原型工作流
  2. Leetcode 200. 岛屿数量 解题思路及C++实现
  3. 创业互联网公司如何搭建自己的技术架构
  4. Java 洛谷 P1028 数的计算
  5. elasticsearch 6.x (三) linux 集群多节点部署
  6. zabbix2.2入门教程之编译安装(一)
  7. mysql 查询大于某个时间_有关于mysql 时间作为条件查询,索引失效的问题。
  8. java如何测controller层_用MockMvc对Spring mvc中的controller层进行单元测试
  9. prototype.js之$A(iterable)
  10. 水滴互助 :网络互助「创新者窘境」如何打破?
  11. 一枚菜鸟前端工程师月度工作总结
  12. 如何用PHP判断一个网址是否被百度搜索引擎收录,判断的原理是什么?
  13. 3DS动物之森(animal acrossing)游戏记录
  14. (加快设计)推荐一个SketchUp的3D模型库
  15. 质量检验中那些不为人所知的事儿
  16. 定时任务与网页去重、代理的使用
  17. 【论文阅读】Underwater Image Enhancement: Using Wavelength Compensation and Image Dehazing(WCID)
  18. 地图叠加图切片:使用配准点使叠加图片精确匹配到地图
  19. 蓝汛ChinaCache打破传输瓶颈,提高宽带利用率
  20. 前端发送请求的方法总结

热门文章

  1. git之reset图解
  2. Python学习【第七篇】基本数据类型
  3. 10年工作经验老程序员推荐的7个开发类工具
  4. Java5中的线程池实例讲解
  5. C#操作excel(多种方法比较)
  6. Task01:青少年软件编程(Scratch)等级考试模拟卷(一级)
  7. 刻意练习:LeetCode实战 -- Task29. 加油站
  8. 前后端分离的探索(一)
  9. Strategy_Level2
  10. 灰度直方图均衡化实现