命令行管理工具 Cobra
我们在前面已经学习了 flag/pflag/viper 命令行、配置文件管理的使用,接下来就到了我们今天的主角 cobra 了:
- cobra 与 viper 没有直接关系,viper 提供的是一个收纳配置参数的容器,cobra 可以用 viper 来管理配置但不是必须。
- cobra 是 flag/pflag 的扩展,在它们的基础上 cobra 添加了子命令、参数检查等功能,并完全兼容 POSIX(可移植操作系统接口)
1. cobra 代码结构

我们在前面已经学习了 flag/pflag/viper 命令行、配置文件管理的使用,接下来就到了我们今天的主角 cobra 了:

Cobra 是 Go 语言里面命令行参数的事实标准,基本上很多项目都在使用。Cobra 把命令行参数的实现分成了三个独立的 package:
学习 Cobra 之前我们先来看看 flag/pflag
Viper 是适用于Go应用程序的完整配置解决方案。可以处理所有类型的配置需求和格式。作为配置管理器,Viper 按照如下的从高到低的优先级加载配置:
xordataexchange/crypt 提供了从 K/V 存储中读取配置的方法。
在 go 网络库 net/http 的请求处理过程 中我们解析了 net/http 的请求处理流程。并说到所有基于 net/http 的 web 框架定制的其实就是 Server 中的下面几个部分:
我们就以 Gin 为示例,看看如何实现一个简单的 Web 框架。