golang學習資料

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。本部分資料來自於知乎:http://www.zhihu.com/question/23486344- 《Go編程基礎》 Unknwon/go-fundamental-programming · GitHub
- 《Go Web基礎》 Unknwon/go-web-foundation · GitHub
- 《Go名庫講解》 Unknwon/go-rock-libraries-showcases · GitHub

1 http://golang.org/doc/
主要看A Tour of Go ,How to write Go code , Effective Go
2 熟悉package, GoDoc
package : strconv, net/http, net/url, string, math, time
3 練習, project eular. 每學一門新語言的時候, 可以來做一遍.
About - Project Euler
4 語言特點:
select, channel, defer, goroutine, 靜態類型(int, int64, 類型轉換), 閉包, package的組織形式
5 reflect
http://blog.golang.org/laws-of-reflection
6 閱讀開源軟體的原始碼, nsq, martini等.
7 使用go去做一個項目.


作者:唐生
連結:http://www.zhihu.com/question/23486344/answer/24805683
來源:知乎
著作權歸作者所有,轉載請聯絡作者獲得授權。

入門看官網的tutorial不錯,整整74頁 http://tour.golang.org/#1
然後看這頁裡的各個連結,推薦順序:
http://golang.org/doc/code.html
http://golang.org/doc/effective_go.html
http://golang.org/doc/faq
http://golang.org/doc/cmd
http://blog.golang.org/gos-declaration-syntax
http://blog.golang.org/go-concurrency-patterns-timing-out-and
http://talks.golang.org/2012/concurrency.slide#1
http://talks.golang.org/2013/advconc.slide#1
http://blog.golang.org/error-handling-and-go
http://blog.golang.org/gobs-of-data
http://blog.golang.org/laws-of-reflection
http://blog.golang.org/profiling-go-programs
http://blog.golang.org/c-go-cgo
包文檔也要過一遍 http://golang.org/pkg/


建議你先看:http://go-tour-zh.appspot.com/#1
逐個例子的看,慢慢的改例子,然後運行;確保自己理解教程中給出的每一行代碼,以及解說文字。
然後再去看:Unknwon/the-way-to-go_ZH_CN · GitHub
然後,你就可以用go做實際項目咯~
作者:asta謝
連結:http://www.zhihu.com/question/23486344/answer/24770195
來源:知乎
著作權歸作者所有,轉載請聯絡作者獲得授權。

我覺得學習一門語言最重要的就是做到三點,第一看基礎知識,第二學習抄代碼,第三學習寫代碼

第一點,很多人都覺得上來就動手寫,但是你基礎的東西都沒掌握,怎麼寫呢?欲速則不達,所以基礎的東西還是必須要先掌握好.這裡推薦你幾個基礎的入門材料:
  • http://tour.golang.org/#1
  • 邢星翻譯的mikespook/Learning-Go-zh-cn · GitHub
  • Go by Example
我覺得你把這幾個基礎掌握之後就可以開始抄襲代碼了,如果你之前有PHP的開發經驗,那麼也許我寫的這本書對你瞭解golang有協助, https://github.com/astaxie/build-web-application-with-golang

第二點,我們很多時候開始寫代碼都是沒什麼思路,也無從下手,但是我們可以模仿別人寫代碼,上海俗話裡面常說"吃大戶,用大戶,消滅大戶",我們就是"看代碼,抄代碼,最後自己寫代碼".這裡給你幾個入門層級的代碼看看學習一下:
  • Web.go - Quickstart 很簡單,就是學習他的路由怎麼實現的,如何編寫自己的路由
  • icub3d/home 路 GitHub 這是一個Go+ AngularJS的實現,看看如何做API應用
最後我列一下你可以自己參考去實現的一些功能,我當初培訓我們戰虎班的同學就是用這些來一起學習的.
  • 日誌分析
  • IP庫分析
  • 管理後台查看分析日誌
第三點,自己寫代碼,這個時候就是已經對golang有了一定的瞭解了,那麼我們就可以開始做自己的項目了,做項目最想就是快速開發,那麼我就推薦你
  • https://github.com/astaxie/beego 使用beego架構可以很快速的開發你的Web或者API應用
  • Homepage - Docker: the Linux container engine 使用docker來做虛擬化
  • skynetservices/skynet · GitHub 學習分布式
  • coreos/etcd · GitHub 分布式應用

這個階段就是找各種東西用golang來寫,多寫就會理解越來越深入.



cs.cmu.edu/~dga/15-440/S14/index.html
這是CMU分布式系統課程,對應有四個課程項目,全部要求用go實現.項目都有完整的說明和單元測試程式.題主可以做一做


Python轉到Go的,學了大概2個月, 期間寫了大概2500行遊戲伺服器架構(Skycrab/cham · GitHub ),不包含測試代碼,不包含商務邏輯代碼。主要是學習https://github.com/cloudwu/skynet
寫的,主要就是實現golang的actor模型,服務之間的訊息發送,訊息處理,定時器實現,廣播實現,log模組,websocket實現,gate模組,debug service實現,還有一些基礎庫,如lru演算法,300行簡單的orm(curd),敏感詞過濾,還有一個從@xjdrew的https://github.com/xjdrew/lua-zset 移植的go版本sorted set實現。所以我覺得你缺的是一個開始,開始寫代碼,研究代碼,閱讀代碼,重構,反覆。
你是搞php的,建議從web開始,從 @asta謝的astaxie/beego · GitHub 開始搞起,用beego做個小應用,先不要想如何牛逼,如何優美,先以功能實現為主。從操就業,這時一股熟悉的感覺瀰漫心頭,自信悄然而來,嘎嘎golang小kiss而已。注意,自信很重要,自信很重要,真的很重要,重要的話要說3遍。
自信來了,代碼也寫了,期間欠的債也該還了。啥,欠誰債了,你別嚇我,我沒錢。哈哈,當然是欠golang的債了,前期你玩了人家,很爽自信也來了,人家當然要賴著你了,yes,就是到了深入交流的時候了。這個時候你需要認真看項目中用到的標準庫實現原理,架構實現原理,學習代碼方式,golang的原理,可以讀讀Skycrab/go-internals · GitHub 。這和談戀愛一樣,深入交流你才知道,她還會這個,還能這樣,哈哈,get新技能。當然這個階段是痛苦的,切記不要一股腦一直研究,不然會把你帶入深淵拔不出來。這和談戀愛一樣,你天天糾結人家七大姑八大姨的,前男友,前女友的,人家能給你好臉色才怪。


新手遇到的了50個go語言的坑:50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs ,裡面很多的坑,我也在學的過程中遇到過,避免這50個坑,可以節省編譯期間的大部分時間,不說了,填坑去了首先如果有C的基礎,推薦《Go by Example 》,通篇基於代碼講解,通俗易懂,沒廢話。花上一個周末的時間,很快就能自己動手開始寫Go代碼。

之後可以看看相關創始人的部落格,比如《research!rsc: Go Data Structures: Interfaces 》,加深對Go語言內部機制的理解。最好還能補一下並發的相關知識(比如自旋鎖、互斥鎖等等的概念),雖然不一定用得上,但知道的話日後調試代碼能省不少時間。

有空的話還可以讀讀The Go Programming Language Specification ,我覺得這可以算是最易懂的幾份Language Specification。


yinwang.org/blog-cn/2014/04/18/golang/

你需要看這個《對 Go 語言的綜合評價》——王垠


Go語言極速入門手冊.go


學習資料推薦:
qyuhen/book · GitHub
雨痕的書寫的很好。
你可以從它的第一版開始看,它包括語言基礎、標準庫解釋。
第四版的沒有基本庫解釋。我想他的計劃是:
第五版
上冊:語言基礎
中冊:標準庫
下冊:源碼分析


Go Programming Blueprints - 如果你不知道拿Go來做什麼

The Go Programming Language - 語言基礎

Go語言編程的基礎,我推薦一個:Go語言第一課

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.