稀疏文件 Sparse File
稀疏文件介绍
稀疏文件,这是UNIX类和NTFS等文件系统的一个特性
例如:/var/lib/docker 目录,实际占用非常小,但是在系统里面看到的占用是 11G 的文件目录
go vendor 机制讲解
vendor 机制
vendor 是 go 1.5 以后支持的,1.6 默认开启,可以关闭则直接 在GOPATH下面查找依赖包
vendor 编译原则
vendor 原则:
- 当前包下有vendor目录,则从其下查找第三方的包,如果没有找到,则继续执行下一步操作
- 当前包目录下没有vendor目录,则沿当前包目录向上逐级目录查找vendor目录, ,直到找到 $GOPATH/src下的vendor目录
- go 1.12 以后,也默认开启 go mod, 那么如果 vendor目录没找到是不会去 GOPATH 寻找,则尝试 go get 如果失败则编译失败
- go 1.12 以前,在GOPATH下面查找依赖包
- 在GOROOT目录下面查找依赖包
故兼容的情况下,请使用 GOPATH 保证不出错,兼容 GOPATH 和 go mod 请设置环境变量 GO111MODULE=“on”
go mod 使用及技巧
首先
本文是建立在 go 1.12 及以上, 在 go 1.16版本成为默认构建模式,替代了原先的 GOPATH 构建模式 官方文档 https://blog.golang.org/using-go-modules
常用go mod命令
golang 编程规范 编程风格 整理
介绍
本文更多的介绍代码管理和检查工具而不是大篇幅风格文档,毕竟文档只能那里看,不如工具有时效性和可行性,毕竟说到不如做到
- 官方代码编程风格文档 https://golang.org/doc/effective_go.html
- uber golang 代码规范 https://github.com/uber-go/guide
- uber golang 代码规范中文 https://github.com/xxjwxc/uber_go_guide_cn
代码目录规范
目录结构 推荐目录结构 https://github.com/golang-standards/project-layout
GOPATH 设置规范
建议保留 GOPATH 规则,便于维护代码
- 建议只使用一个 GOPATH
- 不建议使用多个 GOPATH,如果使用多个GOPATH,编译生效的 bin 目录是在第一个 GOPATH 下
golang 在 1.11 以后,弱化了 GOPATH 规则,已有代码(很多库肯定是在1.11之前建立的)肯定符合这个规则
Rakefile 使用教程
什么是 Rakefile
- Rakefile就是使用Ruby语法的 Makefile, 对应make的工具就是 rake,对应仓库在 https://github.com/ruby/rake
- Rakefile 在 ruby 构建时充当 task 制定,依赖,执行的媒介
- 很多框架,比如 Ruby on Rails 数据库的初始化, 内容初始化, 删除构建 ,测试业务 等等都是 Rakefile 在操作