创建Golang项目,如何规划项目的目录结构?
是以下这样的结构吗?:
root(即新项目的根目录)
-bin
-pkg
-src
--main.go
是否每次一个新项目都是这样的结构?如果是的话,是否每个项目依赖的包,其实不是share的,是独立存储于项目的?
以前我的做法是
root
-bin
-pkg
-src
--github.com
--golang.org
--新项目1
---main.go
--新项目2
---main.go
共用了github.com包与golang.org官方包。
应该以哪种方式创建目录好?
个人使用第二种,即你原来使用的方法。
因为:
同一个包只下载一次
项目引用包路径是固定的,即github.com/foo/bar
这种方式缺点是使用了哪些包,并不能直接使用git管理,然而也不应该用git管理依赖及依赖的版本,而是应该使用go自己的包管理工具来在项目被clone的时候重新下载此项目的依赖,目前我在使用godep。
而优点是,项目只关心项目的代码,而不必关心使用了哪些包,和包的版本变化。