golang开发目录结构

在实际的项目中发现你们的目录结构都比较凌乱,基本每一个人都有每一个人的风格,一个项目在不断地变大,一些新的文件或目录又不断地被添加进来,从这里面去找到本身须要的信息的成本愈来愈高,一个统一的通用的目录结构很是有必要。git

如下内容来自于github上的这个项目(https://github.com/golang-sta...github

/cmd

main函数文件(好比 /cmd/myapp.go)目录,这个目录下面,每一个文件在编译以后都会生成一个可执行的文件。golang

不要把不少的代码放到这个目录下面,这里面的代码尽量简单。web

/internal

应用程序的封装的代码,某个应用私有的代码放到 /internal/myapp/ 目录下,多个应用通用的公共的代码,放到 /internal/common 之类的目录。api

/pkg

一些通用的能够被其余项目所使用的代码,放到这个目录下面app

/vendor

项目依赖的其余第三方库,使用 glide 工具来管理依赖ide

/api

协议文件,Swagger/thrift/protobuf函数

/web

web服务所须要的静态文件工具

/configs

配置文件性能

/init

服务启停脚本

/scripts

其余一些脚本,编译、安装、测试、分析等等

/build

持续集成目录

云 (AMI), 容器 (Docker), 操做系统 (deb, rpm, pkg)等的包配置和脚本放到 /build/package/ 目录

/deployments

部署相关的配置文件和模板

/test

其余测试目录,功能测试,性能测试等

/docs

设计文档

/tools

经常使用的工具和脚本,能够引用 /internal 或者 /pkg 里面的库

/examples

应用程序或者公共库使用的一些例子

/assets

其余一些依赖的静态资源

转载请注明出处
本文连接: http://hatlonely.github.io/20...
相关文章
相关标签/搜索