這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
假如你對golang感興趣, 卻尚未開始入門, 這篇文章就是為你準備的.
為什麼要學習golang?
遊說開發人員嘗試golang的文章很多. 比如golang主要設計者的演講, 某個德國人的吐槽, 國內golang佈道者所著書籍的前言. 我不想重複一遍大牛們的觀點, 只想說一說自己樸素的感受.
在學習golang之前, 我是java的愛好者, 猶如iteye的大多數使用者一樣. 是的, 我喜歡java, 開源, 跨平台, 強大的IDE支援, 最重要的是--工作機會很多.
但是同時我也討厭java. 臃腫又不可或缺的IDE, 總是讓我生起逃離的衝動. 語言缺乏表達力讓我覺得自己是一個囉嗦的大嬸. 繁瑣的配置讓我看到xml檔案就想吐.
後來接觸到golang, 才發現我對程式設計語言的大多數暢想都在golang身上實現了:
1. 不需要IDE支援, 只需要簡單的步驟就可以配置出完美的編輯環境.
2. 兼具動態語言的開發效率和靜態語言的運行效率. 有人說golang是c和python的合體, 這是非常貼切的形容.
3. 遠離xml.
4. 和*nix系統天然的親和力.
5. 享受與語言一同成長, 進步, 成熟的樂趣.
現在我白天在公司編寫java代碼, 而業餘學習時間則全部給了golang.
安裝與環境配置
點擊下載golang安裝包, 如果連結無法訪問(好奇葩的牆), 請嘗試將:
173.194.71.141 golang.org
加入hosts檔案.
需要配置的環境變數有(以linux為例):
Sh代碼
- export GOROOT=$HOME/go # go安裝目錄
- export PATH=$PATH:$GOROOT/bin # 將安裝目錄的bin檔案夾加入PATH變數
- export GOPATH=~/Dropbox/source/go # GOPATH下存放個人源碼
在命令列下輸入go version驗證是否一切順利.
編輯器
強烈建議使用Sublime Text 2 + GoSublime + gocode + Margo構建golang編輯環境.
其中GoSublime是Sublime Text 2的一款外掛程式, 而gocode和MarGo則為GoSublime提供代碼自動補全等功能.
關於Sublime Text 2的介紹請參考這裡.
推薦理由:
支援所有平台.
Sublime Text 2介面清爽, 反應極快, 用起來非常舒心. 完全不會給人如IDE般臃腫的感覺.
安裝步驟:
1. 下載安裝Sublime Text 2.
2. 安裝package control, 用來管理ST2的外掛程式. 開啟Sublime Text 2, 按下ctrl+~, 將以下命令輸入到控制台中:
Python代碼
- import urllib2,os;
- pf='Package Control.sublime-package';
- ipp=sublime.installed_packages_path();
- os.makedirs(ipp) if not os.path.exists(ipp) else None;
- open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
3. 重啟ST2, 如果在Preferece-Package Settings中看到Package Control說明安裝成功.
4. 通過Package Control安裝GoSublime外掛程式. 按下ctrl+shift+p, 輸入install後斷行符號. 等待響應後輸入gosublime, 選擇進行安裝.
5. 在bash/dos命令列中輸入:
go get -u github.com/nsf/gocode
go get -u github.com/DisposaBoy/MarGo
go install github.com/nsf/gocode
go install github.com/DisposaBoy/MarGo
安裝完gocode和MarGo後, 切換到$GOPATH/bin目錄, 運行./MarGo.
至此, 編輯環境配置完成, 點擊查看最後的介面.
文檔
既可以直接存取golang.org/doc, 也可以在命令列中輸入:
godoc -http=:8080
後訪問本地鏡像:
localhost:8080
入門書籍
最開始時, 建議學習官方網站上的a-tour-of-golang.
接下來, learning-go是一本不錯的開源書籍, 其中文版由xingxing翻譯和維護, 翻譯品質非常不錯.
也可以考慮最近出版的<<go語言編程>>, 該書作者是國內使用golang編寫大型程式的先驅.
對web感興趣的同學可以關注network program with go, Go Web 編程等.
社區
建議加入golang-china郵件清單, 這個社區非常活躍, 每天的討論郵件基本上都在50封以上. 當然英文好的同學可以選擇golang-nuts.