當今新興語言中最實用的當數 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" 中,每個文件對應一個配色方案。可以複製後修改一個自己喜歡的。我用的內容給大家介紹一下:
<?xml version="1.0" encoding="UTF-8"?>
<style-scheme version="1.0" name="Vim (dark)">
<!--
Based on the default vim theme for a dark background, Linux console colors.
-->
<style name="Text" foreground="#bbbbbb" background="#000000"/>
<style name="Extra" foreground="#5a5a5a" background="#000000"/>
<style name="Selection" background="#666666"/>
<style name="CurrentLine" background="#212121"/>
<style name="IndentLine" foreground="#000000"/>
<style name="VisualWhitespace" foreground="#c0c0c0"/>
<style name="Keyword" foreground="#CE9178"/>
<style name="DataType" foreground="#55ff55" />
<style name="Decimal" foreground="#800080"/>
<style name="BaseN" foreground="#ff55ff"/>
<style name="Float" foreground="#ff55ff"/>
<style name="Char" foreground="#ff0055"/>
<style name="String" foreground="#55ff55"/>
<style name="Comment" foreground="#729fcf"/>
<style name="Alert" foreground="#ff0000"/>
<style name="Error" foreground="#ff0000"/>
<style name="Function" foreground="#ffffcc"/>
<style name="RegionMarker" foreground="#bbbbbb"/>
<style name="Symbol" foreground="#bbbbbb"/>
<style name="BuiltinFunc" foreground="#CE9178"/>
<style name="Predeclared" foreground="#CE9178"/>
<style name="FuncDecl" foreground="#bbbbbb"/>
<style name="Placeholder" foreground="#55ff55"/>
<style name="ToDo" foreground="#5555ff" bold="true"/>
</style-scheme>
配置後的編輯器效果如圖:
還是很棒的,對不對。
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.com/derekparker/delve/cmd/dlv
如果出現 "undefined: ArchInst" 錯誤提示的話,那就是要安裝 64 位的 go 語言環境。這個問題在 32 位機器上就沒辦法了,我有一個 windows2003 的環境就裝不上。再有,這個命令是要通過網絡訪問 github 的,因為一些原因有時候 github 的東西不一定能下載下來,那就只好您去別的地方找這個軟體包手工安裝上去了。不過嚴格來說這個並不是 liteide 的問題,其他的工具也是要有這一步驟的。估計也是因為這一原因 liteide 默認用的是 gdb/gcc 的調試方式(所以很多時候我就乾脆用老土的 fmt.Println 直接輸出了事)。
好了,以上就是總結的讓 liteide 更好用的方法,希望大家喜歡。