由于对Docker+kubernetes的使用及持续关注,要理解这个平台的原理,势必需要对golang有一定的理解,基于此开始利用业余时间学习go,基础语法看完之后,搭建开发环境肯定是第一步,虽然能g到一大把,go中文社区也有相关帖子很多,但这里还是记录一下方便查找,同时在搭建过程中也遇到两个g出来的帖子没提到的问题,一并记录。


 

Step1:准备各种安装包

1: Visual Studio Code

    目前最新版本1.7.2,下载地址:https://code.visualstudio.com/Download

2:Go API

    目前最新版本1.7.3,官方下载地址:https://golang.org/dl/ ,国内下载地址:http://www.golangtc.com/download

3:Git

    安装Git工具,目前最新版本2.10.2,下载地址:https://git-for-windows.github.io/ ,下载安装即可;

4:Go工具包,包含智能提示,索引,包等等(也可以在VS code中自动安装,但我只成功安装了5个,其它8个都失败)

    工具包包含数个开发工具,下载地址:https://github.com/golang/tools ,下载zip包即可

5:Go调试工具

    工具用于Go代码的Debug,下载地址:https://github.com/derekparker/delve ,同样下载zip包即可

6:Go命令行编辑器(可选,可不装)

    下载地址:https://github.com/peterh/liner ,下载zip包即可

7:Go测试工具(VS Code在Debug模式下会提醒安装该组件,如自动安装失败,可下载安装)

    下载地址:https://github.com/cweill/gotests ,下载zip包即可


 

 

Step2:开始安装IDE

1:安装Visual Studio Code

    没什么可说的,MS的工具安装几乎都是Next...Finish

2:安装Go API

    安装根目录需要注意,这里我的安装根目录是 D:\Go

    安装完毕后,创建工作目录,这里我的工作目录创建为:X:\GoPath

    这2个目录非常重要,牢记后配置环境变量:

    

    一共3个环境变量,分别为:GOBIN,GOPATH,GOROOT,如上图配置好

    PATH变量加入:GOBIN路径:D:\Go\bin

    新增的3个环境变量及PATH变量变更完毕后,可以在cmd中执行go env检查:

    

 

3:安装Git组件

    安装程序如下:

    

    安装完毕之后,需要更新环境变量PATH参数:

    

 

4:配置Visual Studio Code

    启动VSC,Ctrl+Shift+P打开命令行,执行ext install,然后查找Go,安装Go的开发插件

    

 

5:设置工作目录

    在VSC里打开设置的Go工作目录,默认如下图(test为自定义模块目录)

    


 

 Step3:安装各种工具包

  1:检查GoPath工作目录下的目录结构:

    

 

2:压缩包解压

    1)GO Tools工具包解压后放于/src/golang.org/x/tools下

    2)GO Tests工具包解压后也放于/src/golang.org/x/tools下

    3)GO delve调试工具解压后放于/src/golang.org/derekparker/delve下

    4)GO liner包解压后放于/src/golang.org/peterh/liner下

 

3:手动安装以上工具包

    在cmd中执行以下指令,安装各个工具包:


   

 Step4:建立测试程序

1:建立测试项目

    开启visual studio code,在src下建立一个新的模块(文件夹),这里以test为例,建立一个hello.go;

2:写一个测试程序

    编写过程中,正常情况下,代码的只能提示,F12(Ctrl+左键)转向代码定义等功能都能正常工作;

3:测试

    在VSC调试窗口,F5开始调试:

    

    可以看到调试功能已经可以实现,快捷键保持与VS一致;

 

这个步骤会遇到如下问题:

问题原因是调试配置文件launch.json文件中定义的调试目录默认是${workspaceRoot}/src/

因此无法定位需要编译的.go文件。这里将其编译目录定位到需要编译的模块目录即可:

保存退出,即可在调试界面正常调试: