构建可复用的模块(包)

77 阅读1分钟

package规范

  1. 基本复用模块单元:以首字母大写来表明可被包外代码访问
  2. 代码的package可以和所在的目录不一致
  3. 同一目录里的Go代码的package要保持一致

package安装

  1. 通过go get 来获取远程依赖

    • go get -u 强制从网络更新远程依赖
  2. 注意diamante在github上的组织形式,已适应go get

    • 直接以代码路径开始,不要有src

init方法

  • 在main函数被执行前,所有依赖的package的inti方法都会被执行
  • 不同包的init函数按照包导入的依赖关系决定执行顺序
  • 每个包可以有多个init函数
  • 包的源文件也可以有多个init函数,这点比较特殊

Go未解决的依赖问题

  1. 同一环境下,不同项目使用同一包的不同版本
  2. 无法管理对包的特定版本的依赖

常用的依赖管理工具

  1. godep
  2. glide
  3. dep