Go的随笔录
拥抱Go
今天(6.4)是个好日子,风水也不错,所以从今天开始接触Go。到晚上为止已经把Go的基本语法看了一遍,并用开始尝试用Go刷完leetcode的几个题。结合本渣的水平来看,Go还是一个很好上手的语言的,只要会一些C的语法,半天之内就可以入门。然而Go最受欢迎的特性还是在他的原生高并发上,也就是go
和chan
这两个关键字。所以作为一个萌新Goer,这篇文章准备长期更新来记录一下我觉得不错的设计以及遇到的坑。
【6.6更新】配置全套Debugger环境
对于一个刚入门的萌新来说,最重要的是赶紧弄一套全功能的Debugger环境。官方目前支持GDB调试,非官方但是用的比较多的是delve,这二者都是命令行下调试工具。然而本人是十分抗拒这种效率比较低下的调试方式的,但是目前golang还没有一个比较官方的IDE,不过非官方的已经有jetbrains、liteIDE等等了。然而今天我要强行安利的是VScode + 一揽子插件(比如调试用的delve,查找调用guru,文档显示godoc等等)打造的GoIDE。
其实VScode这一套debugger方案已经能适用于大部分语言了,而且它是非常轻量级的。因此我已经很久没有打开Visual Studio写代码了,因为无论是C、C++、Python、Nodejs我都可以在VScode里进行断点调试、变量观察等等一系列的Debug操作。
最方便地是,配置过程大大简化了。只需要在安装golang官方的环境之后,在VScode里下载一个Go的插件即可,这个插件会自动帮你安装好一切需要用到的go包。工程配置也异常方便,在工程的.vscode目录下定义一个launch.json(事实上对于其他语言的debug插件,VScode也是这么做的),就可以直接在GUI界面下进行Debug了,我的配置如下所示,这样VScode就会在工程根目录下寻找名为771.go的文件,并用go和配套的插件将其编译、开始调试。
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "debug",
"remotePath": "",
"port": 2345,
"host": "127.0.0.1",
"program": "${fileDirname}/771.go",
"env": {},
"args": [],
"showLog": true
}
]
}
上一张Debug时的效果图,可以看到常见的自动变量查看、变量监视、调用堆栈、断点管理等等该有的功能一个不少。除了这些功能,VScode还自带很多小功能,例如内置的Git版本控制等等,目前我的大部分工作全都是在VScode上完成的(包括我的论文写作,我安装了latex插件可以提供实时预览和语法高亮)。是时候抛弃难用的命令行debug工具和笨重臃肿的IDE,不如试试好看好用而又轻量级的VScode。
标签: 无标签