质量评分
当前版本通过 @iceworks/doctor 从 5 个维度对代码进行评分:
最佳实践: 通过 @iceworks/eslint-plugin-best-practices 分析项目,提出符合当前工程特征(对 ice 和 Rax 项目友好)的最佳实践及阻塞问题发布卡口,帮助开发者优化项目性能,避免潜在 bug 。
安全实践: 通过 @iceworks/eslint-plugin-security-practices 扫码代码检测工程中可能存在的安全风险,包含 url 、敏感成词、明文账密信息及 npm 包证书检测,降低项目安全风险,守卫项目安全。
阿里代码规范: 这一维度主要反馈开发人员对于 eslint-config-ali 阿里开发规约的遵守程度。
可维护度: 通过 typhonjs-escomplex 对文件进行扫码,得出每个文件的可维护度,可读性及复杂度评分。针对得分较差的文件可以进行深度分析帮助开发者更好的重构复杂代码。
重复度: 通过 jscpd 计算重复出现的代码区块占比,计算出 clone 分数。并逐一列举重复的代码,方便开发者快速定位重复代码,将其封装成公共的方法或者组件。
根据上述 5 个维度通过加权平均的方式计算项目质量分,并根据木桶效应,在计算得分的过程中加大了最低分的权重,得出最终项目质量评分。
快来使用 Iceworks Doctor 测测自己项目的得分,比比谁的分数高吧~
问题修复
利用 VS Code 代码提示能力,我们在源码中标记出了问题代码,辅助开发者快速定位及修复代码。有问题的代码会在代码及文件名上有红色 / 黄色波浪线标示,鼠标 hover 时可预览问题详情窗口,也可通过 VS Code Problems 栏查看 Errors 列表。方便开发者在更前置的开发过程中发现和修复问题。
点击 “一键修复” 按钮可快速修正问题代码。同时在保存代码时,实时检测是否存在有安全风险的代码。
您的数据是私有的: Iceworks Doctor 是开源的,你可以很容易地看到我们收集了什么数据。我们永远不会与任何人共享您的个人数据。
前进方向思考
愿景: 让团队没有不及格(低于60分)的代码。
整体方案的设计如下图所示:
在后续的版本迭代中,Iceworks Doctor 将构建一个完整的系统性方案。仅需安装一个 VS Code 插件,便可拥有从配置开发环境,辅助开发、诊断和修复质量问题到 PR 发布一整套更加便捷智能的工作流程。通过极低的成本便可维护团队代码质量,开发环境、质量、安全问题及团队协作问题均可在 VS Code 中解决,并在关键的流程节点来把控代码的质量,深度和 DEF 团队合作形成闭环。
同时我们正在筹划淘系前端最佳实践的 ESLint 规范,结合 eslint-config-ali 及和各个团队的质量接口人共同制定出更适合淘系前端团队的 ESLint 规范。(欢迎私信我 进行共建哦~)