更适合工程实践的版本
项目文件结构组织的最佳实践
适合工程实践的 tiny 示例
在 上一个示例 中展示了从头开始创建基于 cmdr 的 CLI App 的方法。
为了向你阐释 cmdr 提供的编程接口的用法,所以这个例子中遵循逐步推进的原则依次列举了每一个步骤,包括建立 cmdr 的 cli.App
对象,向其添加子命令以及选项,最后运行这个 cli.App
对象。
但实际上还可以使用 Create()
将其进一步简化和正规化。
不仅如此,Create()
返回的 Buidler 支持这样的方式:你可以提供一组分立的子命令,然后通过 Builder 的 WithAdders(...)
接口将它们添加到 app.RootCommand
中。
这种方式的好处是有利于工程管理。
下面的示例所展示的代码组织方式是被推荐的。
在 cmd/
子包中,你可以分别为每一个命令进行定义。
这些命令被收集在 cmd/all.go
中,然后被 Create(...).WithAdders(cmd.Commands...)
所引用。
这样的好处是组织结构更合理。
但它并不会节省每一条命令的定义代码的用量。
管理配置,和加载外部配置源
接下来的两节将会予以介绍。
提前的介绍是,使用 loaders.Create
替代 cmdr.Create
就能获得集成的外部源加载能力。
How is this guide?
Edit on GitHub
Last updated on