GO语言系列(五)

翻译了golang语言的代码组织架构官方文档,供大家参考。

概述

Go开发人员需要确保所有的Go代码在同一个workspace下面

一个workspace包括许多版本控制仓库(例如通过Git管理)

每一个仓库包括一个或多个包

每一个包由单一目录下的一个或者多个Go源文件组成

包的目录路径决定了import的路径。

Workspaces

Workspace是一个目录层级,根节点包括三个文件夹:

Src:包括Go的源文件

Pkg:包括包对象

Bin:包括可执行命令

Src子文件夹一般由多个版本控制仓库组成(例如Git或Mercurial),用于跟踪一个或者多个源包的开发。我们来看一个示例,了解workspace如何工作的:

bin/

hello # command executable

outyet # command executable

pkg/

linux_amd64/

github.com/golang/example/

stringutil.a # package object

src/

github.com/golang/example/

.git/ # Git repository metadata

hello/

hello.go # command source

outyet/

main.go # command source

main_test.go # test source

stringutil/

reverse.go # package source

reverse_test.go # test source

golang.org/x/image/

.git/ # Git repository metadata

bmp/

reader.go # package source

writer.go # package source

... (many more repositories and packages omitted) ...

以上的树形结构显示了包含两个仓库(分别是example和image)的workspace。Example仓库包括两个命名(hello和outyet),一个库(stringutil)。Image仓库包含bmp包。

GOPATH环境变量

GOPATH环境变量指定workspace的位置。默认是home目录下的go文件夹。你可以通过运行set GOPATH命令修改默认设置。

增加workspace的bin子文件夹到PATH:

$ export PATH=$PATH:$(go env GOPATH)/bin

$ export GOPATH=$(go env GOPATH)

发个小广告!!!走过路过,不要错过!新书来啦!!!

注:本公众号与当当店铺并无从属关系,仅为大家提供一个便捷购物地址。若有所冲突,纯属巧合,立删。

麦克叔叔每晚十点说

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180426B1UGWH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券