Go 每日一库之 viper】的更多相关文章

简介 上一篇文章介绍 cobra 的时候提到了 viper,今天我们就来介绍一下这个库. viper 是一个配置解决方案,拥有丰富的特性: 支持 JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件: 可以设置监听配置文件的修改,修改时自动加载新的配置: 从环境变量.命令行选项和io.Reader中读取配置: 从远程配置系统中读取和监听修改,如 etcd/Consul: 代码逻辑中显示设置键值. 快速使用 安装: $ go get githu…
简介 上一篇文章Go 每日一库之 viper中,我们介绍了 viper 可以监听文件修改进而自动重新加载. 其内部使用的就是fsnotify这个库,它是跨平台的.今天我们就来介绍一下它. 快速使用 先安装: $ go get github.com/fsnotify/fsnotify 后使用: package main import ( "log" "github.com/fsnotify/fsnotify" ) func main() { watcher, err…
缘起 我一直在想,有什么方式可以让人比较轻易地保持每日学习,持续输出的状态.写博客是一种方式,但不是每天都有想写的,值得写的东西. 有时候一个技术比较复杂,写博客的时候经常会写着写着发现自己的理解有偏差,或者细节还没有完全掌握,要去查资料,了解了之后又继续写,如此反复. 这样会导致一篇博客的耗时过长. 我在每天浏览思否.掘金和Github的过程中,发现一些比较好的想法,有JS 每日一题,NodeJS 每日一库,每天一道面试题等等等等. https://github.com/parro-it/aw…
简介 cobra是一个命令行程序库,可以用来编写命令行程序.同时,它也提供了一个脚手架, 用于生成基于 cobra 的应用程序框架.非常多知名的开源项目使用了 cobra 库构建命令行,如Kubernetes.Hugo.etcd等等等等. 本文介绍 cobra 库的基本使用和一些有趣的特性. 关于作者spf13,这里多说两句.spf13 开源不少项目,而且他的开源项目质量都比较高. 相信使用过 vim 的都知道spf13-vim,号称 vim 终极配置. 可以一键配置,对于我这样的懒人来说绝对是…
简介 在上一篇文章中,我们介绍了flag库.flag库是用于解析命令行选项的.但是flag有几个缺点: 不显示支持短选项.当然上一篇文章中也提到过可以通过将两个选项共享同一个变量迂回实现,但写起来比较繁琐: 选项变量的定义比较繁琐,每个选项都需要根据类型调用对应的Type或TypeVar函数: 默认只支持有限的数据类型,当前只有基本类型bool/int/uint/string和time.Duration: 为了解决这些问题,出现了不少第三方解析命令行选项的库,今天的主角go-flags就是其中一…
简介 今天我们来看一个很小,很实用的库go-homedir.顾名思义,go-homedir用来获取用户的主目录. 实际上,使用标准库os/user我们也可以得到这个信息: package main import ( "fmt" "log" "os/user" ) func main() { u, err := user.Current() if err != nil { log.Fatal(err) } fmt.Println("Hom…
简介 ini 是 Windows 上常用的配置文件格式.MySQL 的 Windows 版就是使用 ini 格式存储配置的. go-ini是 Go 语言中用于操作 ini 文件的第三方库. 本文介绍go-ini库的使用. 快速使用 go-ini 是第三方库,使用前需要安装: $ go get gopkg.in/ini.v1 也可以使用 GitHub 上的仓库: $ go get github.com/go-ini/ini 首先,创建一个my.ini配置文件: app_name = awesome…
关于我 我的博客|文章首发 顾名思义,go-homedir用来获取用户的主目录.实际上,通过使用标准库os/user我们也可以得到内容,使用以下方式 标准库使用 package main import ( "fmt" "log" "os/user" ) func main() { u, err := user.Current() if err != nil { log.Fatal(err) } fmt.Println("Home dir…
High performance logging profiler 官方文档:http://docs.python.org/2/library/hotshot.html#module-hotshot 在 2.x 中,hotshot 用来做性能统计,开销比 profile/cProfile 更小.但 3.x 开始, hotshot 就不大行了.   只需要启动 hotshot.Profile(),并执行要统计的代码段. 代码段: 1. test.py # test.py import hotsho…
go 语言中文网(每日资讯)_2020-02-27 一.Go 语言中文网 如何正确看待 Google 宣布 Fuchsia 操作系统没有选 Go 作为终端开发语言 Actor 还是 CSP?Go 中的并发模式还能讲这么细致 [每日一库]让你的 json 可以 grep:gron 介绍一款 Go 项目热编译工具-gowatch 从零开始入门 K8s | 有状态应用编排 - StatefulSet 二.Go 夜读 第 76 期 Kubernetes Scheduler 设计与实现[点开即可观看] 三…