当今新兴语言中最实用的当数 lua 和 go 语言。lua 在游戏界可 谓是大红大紫,而 golang 在服务器也是隐隐有了霸主地位。我曾经在一个 golang 群中听说他们组(游戏行业)年终奖上千万 ... 在游戏业这样变化异常多端的行业里,用传统 c++ 来开发后台确实是跟不上时代的脚步了。用 golang 和 erlang 开发游戏后端几乎是当今的必然选择。这和游戏前端用 lua 和 c# 如此流行的原因基本上是一样的 -- 那就是开发效率。
当然了开发语言之争永远没有结果,也不是我们今天要讨论的。我们今天要说的是 go 语言的开发工具 liteide。golang 的开发工具还是比较多的,不过比较下来我个人推荐微软的 vscode 和这款开源的 liteide 。要说功能 vscode 强一些,特别是调试。但 vscode 的配置是比较繁琐的,前段公司有紧急任务时,我直接下载了 liteide 一小时内完成了任务,这用 vscode 是不可想象的。至于很多人觉得 liteide 是玩具级别的,我个人不敢苟同。当然早期的时间里我确实也是这样想的。不过在几个新环境接了好几个比较紧的任务后,我不得不从 vscode 转向 liteide,坦率地说,默认安装后的 liteide 确实不太好用,下面我简单介绍一下我顺手的 liteide 的打造方法。
去掉自动代码格式化
golang 和 python 一样有个让很多人特别是老手们很不爽的特点:那就是对代码的格式要求非常严格。我个人虽然很喜欢 go 语言,不过也不得不承认确实略有变态 ... 因为对于我们这些自以为是的老手来说,折行都要规定实在太过份了,有时候折行也是我们表达编程思想的一部分好不好 ... 但不管怎样代码的格式化就是 golang 的思想的一部分,这种思想也很无奈的体现到它的开发工具中,象 vscode 和 liteide 默认情况下都会自动修改你的代码的格式,即使你的代码已经正确地编译无误了。这种情况真的很让人无奈。所以我安装上 golang 工具后的第一件事就是要禁掉代码自动格式化,而 liteide 的这个选项还不太好找:在菜单查看->选项 中弹出设置窗口后,再选择 golangfmt,取消提 文件保存时... 那个选项就可以了,如图:
取消代码自动格式化估计你会问,为啥不取个清楚点的中文选项,叫golangfmt谁知道是什么意思啊 ... 这是因为golangfmt这个东西是一个插件,不好翻译为中文名称。幸好其他的 golang ide 也基本上是用的这个插件,所以记住它的英文名也有好处:那就是以后用其他 ide 了也方便找到这个功能。
2.换上 vscode 一样的编辑器配色
要说默认的 liteide 象玩具,它的编辑器配色得负上大部分的责任:配色真的太老土了,就象那个不入流的 dev c++ 风格。好吧,其实它可以配置得象摩登的 vscode 一样,不过给它的编辑器配色是真辛苦,原因是它不能在 gui 在修改,要打开配置的 xml 文件,改一个看一个效果,然后再改下一个 ... 这个文件还不好早,这里我选择大家,在它的安装目录 liteide\share\liteide\liteeditor\color 中,每个文件对应一个配色方案。可以复制后修改一个自己喜欢的。我用的内容给大家介绍一下:
配置后的编辑器效果如图:
类似vscode的编辑器配色还是很棒的,对不对。
3.调试技巧
liteide 的调试功能确实和 vscode 没法比,不过也还是可以改进得比默认配置好的。首先要安装一个高版本的 dev c++ ,原因是 liteide 需要使用 gcc 要将 go 编译成 c 语言后才能再进行调试。不过我用的不是标准版本 dev c++ 而是 wxdev-c++ 版本是 7.4.2.569 ,版本应该还是比较重要的,我这个版本可以完美跨平台编译出 linux 的二进制文件 (centos6/7)。不过这样配置后仍然有一个严重的 bug ,在单步调试时很容易崩溃。尝试了很久以后,我发现了一下让 liteide 调试稳定的方法,那就是切换调试方式为 delve 模式。切换的方法很简单:在菜单 调试->debuger/delve 中勾选上就可以了,如图:
切换调试的方法
这种方式下调试非常的稳定,不过也有一个缺点:就是调试时自动显示变量值的功能会失效 ... 不过幸好可以输入变量名后查看。另外很多时候,您的 go 语言环境下要手工安装一下 delve,方法是使用标准的go get命令在windows上构建和安装delve:
go get github/derekparker/delve/cmd/dlv
如果出现 undefined: archinst 错误提示的话,那就是要安装 64 位的 go 语言环境。这个问题在 32 位机器上就没办法了,我有一个 windows2003 的环境就装不上。再有,这个命令是要通过网络访问 github 的,因为一些原因有时候 github 的东西不一定能下载下来,那就只好您去别的地方找这个软件包手工安装上去了。不过严格来说这个并不是 liteide 的问题,其他的工具也是要有这一步骤的。估计也是因为这一原因 liteide 默认用的是 gdb/gcc 的调试方式(所以很多时候我就干脆用老土的 fmt.println 直接输出了事)。
好了,以上就是总结的让 liteide 更好用的方法,希望大家喜欢。