2023-01-18-【工程化】代码统计
1. 快速工具:使用 cloc (Count Lines of Code)
cloc 是业界公认的标准统计工具,它能够自动忽略 node_modules、.git 以及不相关的配置文件,准确识别各种编程语言。
安装:
1 | |
统计整个 Monorepo:
在根目录下运行:
1 | |
针对子应用进行分类统计:
如果你想看各个子应用的代码量对比,可以利用 lerna 的目录结构:
1 | |
2. VS Code 插件:CodeCounter
如果你希望在 IDE 中实时查看,CodeCounter 插件非常方便。
- 功能:右键点击文件夹即可统计。
- 优势:可视化效果好,可以直接看到每个子应用文件夹的占比百分比。
3. Git 指令统计(统计贡献度)
如果你想知道某个时间段内(如本月)代码的增长量,或者按作者统计,可以使用 Git:
按作者统计行数:
1 | |
统计各子应用(目录)的提交情况:
1 | |
4. 工程化建议
单纯的行数统计可能存在“虚高”(例如重复的 UI 组件库代码)。建议采用以下架构师视角的统计方法:
A. 区分核心业务逻辑与 UI 代码
通过 cloc 的自定义规则,排除掉样式文件(.less, .scss, .css)和测试文件(.spec.js),只统计 .ts, .vue, .js。这样能更准确地衡量业务复杂度。
B. 监控重复率 (Code Duplication)
对于多个应用的微前端项目,行数多可能意味着重复造轮子。建议配合 jscpd 检查代码重复率:
1 | |
- 目标:如果总行数很大但重复率超过 20%,说明需要抽象更多的公共组件或 Hooks 到 Lerna 的
common包中。
5. 总结:各方案对比
| 场景 | 推荐工具 | 特点 |
|---|---|---|
| 快速总览 | cloc |
准确、过滤功能强、速度快。 |
| 开发日报/周报 | Git 指令 |
追踪变更,体现工作量。 |
| 架构治理 | jscpd |
发现冗余,驱动代码重构。 |
| 可视化呈现 | VS Code Plugin |
直观,适合日常开发。 |
2023-01-18-【工程化】代码统计
https://zhangyingxuan.github.io/2023-01-18-【工程化】代码统计/