Go的随笔录

拥抱Go

  今天(6.4)是个好日子,风水也不错,所以从今天开始接触Go。到晚上为止已经把Go的基本语法看了一遍,并用开始尝试用Go刷完leetcode的几个题。结合本渣的水平来看,Go还是一个很好上手的语言的,只要会一些C的语法,半天之内就可以入门。然而Go最受欢迎的特性还是在他的原生高并发上,也就是gochan这两个关键字。所以作为一个萌新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。

20180606105255.png

评论卡