Go 项目结构层次

aceai · · 4385 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

今天测试了一下go 使用包名和目录结构来识别 工程结构和构建顺序, 发现很好用,可以免去C/C++ 中写Makefile的步骤。


1. 首先,加入现在我们在工程目录位于 /home/work/dev/etl/worker/test/go/projectCal 下面

    则最好是将GOPATH 包含此路径。

2. go的工程一般包含三个目录

     

---- bin   // 存放编译后可以执行的文件的目录
---- src   // 存放源文件的地方,里面可以再建子目录
---- pkg   // 存放编译后的包文件的,此目录可以不预先创建,使用go install 命令时自动会创建

如我的测试工程可能是这样的:

----bin
----src
     ---- config
           ----getconfig.go
           ----setconfig.go
     ---- server
           ----server.go  //假设其中包含main函数
----pkg


当你在bin 目录下执行go install config 时会在pkg 目录下自动生成$GOOS_$GOARCH/config.a 

当你在bin 目录下执行go build server 时会在bin 目录下 自动生成server 二进制文件


3. 单元测试, go 支持自动化单元测试,注意用于单元测试的代码和被测试的代码文件需要在同一个包,并且应该用xxx_test.go 命名,

如getconfig.go 的测试文件最好注册为test_getconfig.go文件



有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:aceai

查看原文:Go 项目结构层次

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4385 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传