Go資深工程師講解
-
Go資深工程師講解(慕課) 000_課程目錄索引
Google資深工程師深度講解Go語言 - 課程目錄索引 課程來源:慕課網(百度網盤備份)講師風格:從 Google 工程實踐出發,注重底層原理和工程規範 完整視頻章節與筆記對照表 章節 視頻文件 筆記位置 狀態 Ch1 課程介紹 1-1 課程導讀 — 跳過 1-2 安裝與環境 001.md > GOPATH、環境變量 已覆蓋 Ch2 基礎語法 2-1…
-
Go資深工程師講解(慕課) 001
概覽 下載開發: vi emacs idea eclipse vs sublimeIde: GoLand,liteIDE默認 gopath ~/go/src 基本語法 變量定義使用 var,函數外定義可以使用括號的方式 package main import "fmt" //函數外定義要使用var var aa=3 var ss=&quo…
-
Go資深工程師講解(慕課) 002
go(二) string 字符串 package main import ( "fmt" "unicode/utf8" ) func main() { s := "Yes我愛Go語言" fmt.Println(len(s)) for _, b := range []byte(s) { fmt.Pri…
-
Go資深工程師講解(慕課) 003
003 測試 吐槽別人家的,go語言採用表格驅動測試 測試數據和測試邏輯混在一些 出錯信息不明確 一旦一個數據出錯測試全部結束 表格驅動測試 test:=[]struct{ a,b,c int32 }{ {1,2,3}, {0,2,0}, {0,0,0}, {0,0,0}, {-1,1,0}, {math.MaxInt32,1,math.MinInt32},…
-
Go資深工程師講解(慕課) 004
004 goroutine package main import ( "fmt" "time" ) func main() { for i:=0;i<10;i++{ go func(i int) { fmt.Printf("Hello from goroutine %d \n",i) // …
-
Go資深工程師講解(慕課) 005
005 標準庫 http 使用 http 客戶端發送請求 使用 http.Client 控制請求頭 使用 httputil 簡化工作 package main import ( "fmt" "net/http" "net/http/httputil" ) func main() { resp, er…
-
Go資深工程師講解(慕課) 006_函數式編程
Go 函數式編程 對應視頻 Ch6(6-2 函數式編程例一),在 002.md 基礎上擴展更多函數式編程模式 1. 回顧:Go 中函數是一等公民 Go 不是純函數式語言,但函數可以作為:- 變量- 參數- 返回值- 存放在數據結構中 // 函數作為變量 var add = func(a, b int) int { return a + b } // 函數作為…
-
Go資深工程師講解(慕課) 007_godoc與代碼生成
Go 文檔生成與示例代碼 對應視頻 8-6 生成文檔和示例代碼 1. godoc 文檔生成 Go 的文檔直接從源碼注釋中提取,不需要特殊標記語法。 1.1 注釋規範 // Package queue 實現了一個簡單的 FIFO 隊列。 // // 該隊列基於切片實現,支持 Push、Pop 和 IsEmpty 操作。 package queue // Que…
-
Go資深工程師講解(慕課) 008_GMP調度器與Go設計哲學
Go GMP 調度器與設計哲學 對應視頻 9-2 go語言的調度器、18-1 體會Go語言的設計、18-2 課程總結 1. Go 調度器演進 1.0 時代:單線程調度器(Go 0.x) 只有一個線程運行 goroutine 所有 goroutine 排隊等待 無法利用多核 1.1 時代:多線程調度器(Go 1.0) 引入多線程 但全局鎖競爭嚴重,性能瓶頸 1…