## 01 专栏说明

注, 这个专栏是为一位小朋友开设

这位朋友一直在某商用项目的生产环境中进行运维工作, 熟悉该商用项目的业务, 并有意学习一些开发

该项目的业务部分有不少 golang 开发的应用, 因此, 开这个专栏, 来讲述一些 go 开发有关的小东西.

本专栏中, 可能涉及一些业务名词什么的, 就不一一展开说明了.

## 01 背景说明

商用项目的生产环境是 CentOS 7.x

所以, 我们大部分应用的编译环境也应该与运行环境相同, 为了方便, 我们采用 docker 来作为编译环境 docker + centOs 7.x image

而开发环境, 一般来说, win / mac / linux 都可以.

考虑到我自己用 mac , 后面所有讲述都是以 macOs 为开发环境.

最后, 除了操作系统外, 所有软件版本, 均采用 LTS 版本, 也就是最新稳定版. ( 后续内容如没有特别声明, 软件版本以 2019年1月前后的稳定版本为准)

## 02. 开发运行环境设置

我的开发电脑是 macOS, 下面以 mac 为开发环境来说明.

开发需要安装

  1. go 语言环境, 见官网 [golang.org](http://golang.org/dl/)
  2. goland , go语言的集成开发工具, 见官网 [jetbrains.com/go](https://www.jetbrains.com/go/)
  3. 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

看图

待续...