## 01 专栏说明
注, 这个专栏是为一位小朋友开设
这位朋友一直在某商用项目的生产环境中进行运维工作, 熟悉该商用项目的业务, 并有意学习一些开发
该项目的业务部分有不少 golang 开发的应用, 因此, 开这个专栏, 来讲述一些 go 开发有关的小东西.
本专栏中, 可能涉及一些业务名词什么的, 就不一一展开说明了.
## 01 背景说明
商用项目的生产环境是 CentOS 7.x
所以, 我们大部分应用的编译环境也应该与运行环境相同, 为了方便, 我们采用 docker 来作为编译环境 docker + centOs 7.x image
而开发环境, 一般来说, win / mac / linux 都可以.
考虑到我自己用 mac , 后面所有讲述都是以 macOs 为开发环境.
最后, 除了操作系统外, 所有软件版本, 均采用 LTS 版本, 也就是最新稳定版. ( 后续内容如没有特别声明, 软件版本以 2019年1月前后的稳定版本为准)
## 02. 开发运行环境设置
我的开发电脑是 macOS, 下面以 mac 为开发环境来说明.
开发需要安装
- go 语言环境, 见官网 [golang.org](http://golang.org/dl/)
- goland , go语言的集成开发工具, 见官网 [jetbrains.com/go](https://www.jetbrains.com/go/)
- docker 社区版, 就是 docker for windows / docker for mac , 当一虚拟机用, 用过实现编译与开发环境中配置其他软件, 比如 postgres
当然, 还有 secureCRT 与 secureFX 这样的工具与生产环境互联, 略过
### 02.01 安装 go 开发编译环境
这个网上很多, 就不说了.
### 02.02 安装 go 开发集成工具
golang 开发, 源代码编辑, 用什么样的文本编辑工具都可以.
我们已经购买了 jetbrains 的 goland , 就用这个吧.
### 02.03 配置 go 语言代理
docker 安装成功后, 后台运行
在 macOS 或 windows 的 terminal 命令行终端, 运行下面指令来创建本地的 goproxy 代理
```
export ATHENS_STORAGE=~/athens-storage
mkdir -p $ATHENS_STORAGE
docker run -d -v $ATHENS_STORAGE:/var/lib/athens
-e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens
-e ATHENS_STORAGE_TYPE=disk
--name athens-proxy
--restart always
-p 3000:3000
gomods/athens:latest
```
修改 ~/.bash_profile 或配置类似的环境变量, 如下
```
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/root/.local/bin:/home/bin:/home/go/bin:/usr/local/go/bin
export PATH
# yum -y install gcc gcc-c++ kernel-devedd
export GOROOT=/usr/local/go
export GOPATH=/home/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin
export GO111MODULE=on
export CGO_ENABLED=1
# export GOPROXY=https://athens.azurefd.net
export GOPROXY=http://127.0.0.1:3000
export PS1='$PWD $ '
alias b='go install -ldflags "-s -w" '
```
上面的脚本中,
```
export GOPATH=/home/go
```
用于标示 go 语言源码放在哪个目录下
```
# export GOPROXY=https://athens.azurefd.net
export GOPROXY=http://127.0.0.1:3000
```
用于标示 go语言 1.11 版本支持的 module 语义化模块的代理. 如果 安装了 docker 并运行了 gomods/athens 包, 那就用
```
export GOPROXY=http://127.0.0.1:3000
```
否则用
```
export GOPROXY=https://athens.azurefd.net
```
### 02.04 配置 goland
看图
待续...