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…