注意:翻译需要符合中文语序、流程、通顺
swift-code-metrics
用于 Swift 项目代码度量的分析器。
介绍
该软件的目标是提供有关用 Swift
编写并包含多个模块的软件的架构状态的洞察。受 Robert C. Martin 的《清洁架构》一书启发,该软件将扫描项目以识别不同组件,以评估软件行业中的一些常见代码度量标准:
- 整体的具体类和接口总数
- 框架的 不稳定性 和 抽象性
- 离主序列的距离
- 代码行数 (LOC)
- 注释数 (NOC)
- 注释百分比 (POC)
- 方法数量 (NOM)
- 具体类数量 (包含类和结构体)
- 测试数量 (NOT)
- 引入数量 (NOI)
- 框架依赖图(内部和外部依赖关系的数量)
要求
这是一个依赖于 Python 3 脚本,需要安装 matplotlib、adjustText、pyfunctional 和 pygraphviz。
最后一个包依赖于 Graphviz 二进制文件,必须先安装。如果你使用 Mac 环境,可以直接用 brew install graphviz
安装。
用法
该包可以通过 pip
获取,命令为 pip3 install swift-code-metrics
。
语法如下:
swift-code-metrics --source <path-to-swift-project> --artifacts <output-directory> --exclude <excluded-folders> --tests-paths <test-paths> --generate-graphs
--source
是包含主要 Xcode 项目或工作空间的文件夹路径--artifacts
是将包含生成的output.json
报告的文件夹路径--exclude
(可选) 是以空格分隔的路径子字符串列表,用于排除分析 (例如Tests
将忽略所有包含Tests
的文件/文件夹)--tests-paths
(默认:Test Tests
) 是以空格分隔的匹配测试类路径的子字符串列表--generate-graphs
(可选) 如果传递这个选项,将生成与分析相关的图表并将它们保存到 artifacts 文件夹中
开发
请运行 ./install.sh
和 ./build_and_test.sh
安装依赖并运行测试。
该仓库预定义了用于 VS Code 的调试和运行测试的设置。
文档
请按照 指南 并通过一个实用的示例开始。
当前限制
-
该工具针对由不同框架组成的中/大型代码库设计。 脚本将扫描目录,按“根”文件夹的名称识别框架, 因此这严格依赖于文件结构(除非指定了项目路径覆盖文件)
-
不支持使用
spm
构建的库。 -
框架名称是根据目录结构推断的。如果文件在根目录中,将使用
default_framework_name
。不会检查 xcodeproj。 -
目前不支持方法列表中的计算变量
-
目前不支持代码中的内联注释(例如
struct Data: {} //dummy data
) -
目前仅支持
XCTest
测试框架
待办事项
- 代码改进
- 其他(欢迎建议)