大家好,
在这篇文章中,我想介绍我开发的CLI工具,用于分析和控制GO项目中的直接和间接软件包依赖关系,并可视化这些依赖项。
我构建了什么
https://github.com/junyaU/mimi
随意恒星ð
顺便说一句,“ mimi”的名字取自我的宠物狗的名字ð¶。
您可以指定GO项目中的路径,并为可以直接和间接取决于它的软件包数量设置阈值。如果有超过依赖关系阈值的软件包,则该工具将输出软件包名称和超过阈值的依赖项数量。
您还可以以表格格式输出结果,或列出所有结果。
为什么我做到了
Go在开发项目时的性能和安全性都受到许多开发人员的喜爱。但是,随着项目越来越大(这不仅限于去),依赖关系往往变得更加复杂。
依赖项的增加可以降低代码的可读性和可维护性,并且在新开发人员加入项目时也可以成为障碍。为了避免这些问题,有必要在这些问题出现之前定期检查和管理项目中的依赖关系。但是,这可能是一项繁琐而复杂的任务。
因此,我决定创建mimi至:
- 控制依赖的复杂性(我想在CI/CD中包括复杂性检查)
- 清楚地显示直接和间接依赖之间的关系,以使管理更容易
特征
该工具的主要目标是协助管理GO项目中的依赖关系。具体来说,它量化了GO包的直接和间接依赖关系,并提供了列出它们的函数。
当前,可用以下命令:
- 检查:检查给定软件包的直接和间接依赖性是否超过指定的阈值
- 表:以表格格式显示给定GO包的直接和间接依赖关系
- 列表:列表给定GO软件包的所有依赖项
- 运行:读取yaml文件并执行其定义的命令
通过使用这些命令,您可以一目了然地掌握项目的依赖关系,并确定依赖关系变得复杂的领域。另外,通过为依赖项设置阈值,在依赖项超过阈值时会显示警告。
如何使用它
这是如何使用它的快速概述。有关更详细的说明,请查看README。
首先,安装它:
$ go get -u github.com/junyaU/mimi
$ go install github.com/junyaU/mimi
这是命令的一些示例用途:
查看
检查指定的GO软件包的直接和间接依赖性是否超过了设置阈值。
$ mimi check <package_path> --direct=<direct_threshold> --indirect=<indirect_threshold> --depth=<depth_threshold>
桌子
以表格格式显示指定GO软件包的直接和间接依赖关系。超过阈值的软件包以红色显示。
$ mimi table <package_path> --direct=<direct_threshold> --indirect=<indirect_threshold> --depth=<depth_threshold>
列表
列出了指定的GO软件包的所有依赖项。
$ mimi list <package_path>
跑步
读取配置yaml文件并执行其定义的命令。
$ mimi run <config_file_path>
yaml
version: 1.0
commands:
- name: check
parameters:
path: ./testdata/layer/domain/model
directThreshold: 2
indirectThreshold: 3
depthThreshold: 3
- name: check
parameters:
path: ./testdata/layer/domain/model/flow
directThreshold: 5
indirectThreshold: 2
- name: table
parameters:
path: ./testdata/layer/domain/model
directThreshold: 3
indirectThreshold: 5
- name: list
parameters:
path: ./testdata/layer/domain/model/flow
概括
我介绍了CLI工具“ Mimi”,该工具测量和管理GO套件依赖性。该工具仍处于开发的早期阶段,我还计划了更多功能。通过将MIMI集成到您的CI/CD流程中,您可以轻松地管理GO项目的复杂性并保持高质量的可管理代码。欢迎您的反馈和对项目的贡献,因为它们将有助于改善工具并使其对所有人更有用。
请访问该项目的GitHub存储库,如果发现有趣的话,请给它一个明星,并考虑贡献。我期待看到该项目如何通过您的支持和反馈演变。
感谢您抽出宝贵的时间了解咪咪,希望您发现它在Go Projects中有用!