go學習資料

2021-07-16 14:03:57 字數 2648 閱讀 5992

書籍是:老許的《go語言程式設計》、 老謝的《go web程式設計》、 雨痕的《go 語言學習筆記》、 golang.org上面的《effective go》、《the go programming language specification》、go標準庫和github上眾多開源庫

4.go 學習難點,將我在學習中遇到的難點,以及相關參考資料索引出來,這些知識點對新入門的學習者有點難,但是對於想全面掌握go技能的開發人員來說,我認為是非常有價值的,這些知識點都是個人一步步學習趟過坑之後去發掘的:

go data structures

使用defer的幾個場景

參見:老許《go語言程式設計》 第9章 9.5節 介面機理

參加:國外一位大佬寫的:how to use inte***ces in go

參見:inte***ces_and_types

參見:learning go - inte***ces & reflections

參見:the go programming language specification-type

參見:learning go - types

參見國外大牛:function types in go (golang)

go閉包:函式程式設計之閉包漫談(closure)

go語言(golang) - 閉包

go函式式程式設計:go函式式程式設計實踐

所謂引用是指使用的不是指標,但是卻有指標的效果,引用:a做為引數傳遞函式內部,函式內部修改a卻改變了外部a的值

指標:*a作為引數傳遞到函式內部,函式內部修改了*a的值,外部a指向的值也發生改變;

參見:go語言的傳參和傳引用  這篇文章分析的非常到位時難得好文章

go中error型別的nil值和nil

國外這兩篇文章寫得也比較好,教你如何自定義error以返回更具體的錯誤;

error handling in go, part i

error handling in go, part ii

這裡有陳一回的 inte***ce nil 的文章 golang: 詳解inte***ce和nil  陳兄關於go的幾篇文章都非常接地氣,建議都看了

參見:老許翻譯的那本《go語言程式設計》

參見:官方版 laws-of-reflection

翻譯版的:the-laws-of-reflection  我認為這是翻譯的最好的一篇文章,融入了作者的思考和感悟

還有我的簡寫版的,更多的是個api的指引:the laws of reflection

反射小試身手:參考這篇在 golang 中用名字呼叫函式  mikespook翻譯的其他文章也非常棒

martini 框架使用的經典di庫:inject  教科書辦實現注入

inject庫**非常晦澀,可以參考陳兄的這邊經典文章golang: martini之inject原始碼分析 這篇文章深入淺出,寫的非常好

反射與介面、go型別系統關係非常密切,refelct.typeof 返回的是介面的dynamic type  , func (v value) type() type返回value的type,   reflect.type表述的是underlying type

相關參考:

參見《go併發程式設計》(說實在的,這本書寫的沒有達到我期望的水準,寫的都是基礎,語言有點囉嗦,挖的夠深,但是拔的不高,所謂拔的不高就是沒有系統的介紹併發設計模式)

參見goroutine背後的系統知識

go 記憶體模型   英文版

go語言併發之美 這篇文章寫得非常好,對常用的併發模式寫的深入淺出,這點《go併發程式設計》一本很厚的書居然沒有這些內容,實在讓人失望,有點徒有虛名

google io大會上大牛的幾篇文章(有牆)

concurrency is not parallelism   這裡有篇翻譯的併發不是並行

go concurrency patterns

advanced go concurrency patterns

go concurrency patterns: pipelines and cancellation  這裡有篇翻譯:go併發模式:管道和顯式取消

參見雨痕學習筆記

the go scheduler  這裡有篇翻譯go排程器

阿里skoo的幾篇文章  對排程器過程寫的非常生動

《go併發程式設計》對go排程也做了論述

國外的這篇ppt寫的也不錯 ,還有一篇

github上有本電子書 寫的非常深入,對go的幾個關鍵點實現進行深入剖析,非常好的文章

5.框架學習:

martini 只是看了inject那部分,2023年希望有時間細看一下 martini 和 revel。

6.期待

期待有個牛人能出一本專門介紹 go 如何設計大系統的書,go語言設計模式和物件導向設計模式有很大差別;老許有一篇ppt裡面介紹go的面向連線和組合的語言,以七牛系統的規模,應該可以抽象出一套模式出來,有人做嗎?併發的相關設計模式,網上有多文章,但是還不是很系統;希望2015有人能站出來做這件事情,我們好站在巨人的肩膀上繼續前行。

其實不是為了學習而學習: 我很大一部分時間還是邊開發,邊了解標準庫,邊學習;遇到比較大的通用的模組到github上找有無已經實現的,如有借鑑過來吧,如果你認為自己改寫的比原作者好,可以pull request. 當然在開發中遇到自己知識的盲點,就需要有股專研的精神,把它搞明白,技術也就自然得到提高,個人薄見,謹慎參考。

Go 學習筆記 Go 語言資料型別

在 go 程式語言中,資料型別用於宣告函式和變數。資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。go 語言按類別有以下幾種資料型別 序號型別描述1 布林型布林型的值只可以是常量 true 或者 false。乙個簡單的...

Go語言學習資料大全

c 語言太原始了,c 太複雜了,go 語言是不二之選。有了 c c 的功底,學習 go 語言非常簡單。另外,go 語言官方的 effective go 是必讀的,這篇文章告訴你如何更好地使用 go 語言,以及 go 語言中的一些原理。go 語言最突出之處是併發程式設計,unix 老牌黑客羅勃 派克 ...

Go語言學習資料整理

整理網上找到的golang語言學習資料 基礎go 指南 a tour of go go語言聖經 中文版 effective go中文版 go入門指南 the way to go the way to go 中文譯本,中文正式名 go入門指南 golang學習室 go輕鬆學 techdoc go實戰開...