开启Go语言命令行应用开发之旅
1. Go语言初体验与工具诞生
2012 年,我开启了探索新语言 Go 的实验之旅,当时它刚达到 1.0 里程碑。我喜欢通过实践来学习,于是想找个有意义的项目来深入学习 Go。那时,我对基于 WordPress 的静态博客不断增加的成本和复杂性感到沮丧,便决定开发一个静态网站生成器作为学习 Go 的项目,由此诞生了我的第一个 Go 项目 Hugo。
在开发 Hugo 的过程中,由于缺乏合适的库来支持 [application] [command] [flag] [argument] 设计模式,我便自己编写,同时还需要配置文件管理功能。最初这些只是 Hugo 的包,但我觉得其他人可能也会从中受益,就将它们提取出来成为独立的库,命名为 Cobra 和 Viper。
2. Go 语言适用于命令行工具的特性
通过构建 Hugo、Cobra 和 Viper 的经验,我发现 Go 语言非常适合开发命令行工具,它具有以下特性:
|特性|描述|
| ---- | ---- |
|静态编译|生成的可执行文件无需本地依赖,只需一个文件就能轻松安装|
|交叉编译|无需构建农场,可在不同平台编译|
|快速构建|构建速度极快,感觉像动态语言|
|原生并发|能充分利用多核机器的性能|
Go 语言在开发时具备动态语言的大部分优点,在执行时具备编译语言的所有优点,还有其他独特优势。
3. Go 语言在实际应用中的优势
当时我在 MongoDB 负责产品、客户端工程、客户工程和开发者关系等工作。我意识到,如
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



