Go 语言高级编程 (it-ebooks) (Z-Library)
Author: it-ebooks
商业
No Description
📄 File Format:
PDF
💾 File Size:
21.1 MB
32
Views
0
Downloads
0.00
Total Donations
📄 Text Preview (First 20 pages)
ℹ️
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
📄 Page
1
(This page has no text content)
📄 Page
2
1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 ⽬录 Introduction 1 语 基础 1.1 Go语 创 纪 1.2 Hello, World 的⾰ 1.3 组、 符串和 ⽚ 1.4 、 和 ⼝ 1.5 ⾯向 发的内 模型 1.6 常⻅的 发模式 1.7 错误和 常 1.8 补 说明 2 CGO编程 2.1 快 ⻔ 2.2 CGO基础 2.3 型转换 2.4 调⽤ 2.5 内 机制 2.6 实战: 封 qsort 2.7 CGO内 模型
📄 Page
3
1.3.8 1.3.9 1.3.10 1.3.11 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.4.10 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.8 C++ 2.9 静态库和动态库 2.10 编译和链 2.11 补 说明 3 汇编语 3.1 快 ⻔ 3.2 计算机结 3.3 常量和 局变量 3.4 3.5 制 3.6 再论 3.7 汇编语 的 ⼒ 3.8 Goroutine ID 3.9 Delve调试器 3.10 补 说明 4 RPC和Protobuf 4.1 RPC ⻔ 4.2 Protobuf 4.3 玩转RPC 4.4 gRPC ⻔ 4.5 gRPC进阶
📄 Page
4
1.5.6 1.5.7 1.5.8 1.5.9 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.6.10 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 4.6 gRPC和Protobuf扩 4.7 pbgo: 基于Protobuf的 架 4.8 grpcurl⼯ 4.9 补 说明 5 Go和Web 5.1 Web开发简 5.2 请 路由 5.3 中间件 5.4 请 验 5.5 和 据库打 5.6 服务 量 制 5.7 ⼤型Web项⽬ 层 5.8 ⼝和 驱动开发 5.9 发布和A/B测试 5.10 补 说明 6 布式 统 6.1 布式 id ⽣成器 6.2 布式锁 6.3 时任务 统 6.4 布式 擎 6.5 负载
📄 Page
5
1.7.6 1.7.7 1.7.8 1.8 1.8.1 1.8.2 1.8.3 6.6 布式配 理 6.7 布式 6.8 补 说明 附录 附录A: Go语 常⻅ 附录B: 有 的代码⽚ 附录C: 作者简
📄 Page
6
Go语 级编程(Advanced Go Programming) 书 盖CGO、Go汇编语 、RPC实现、Web 架实现、 布 式 统等 阶主题,针对Go语 有⼀ 经验想 Go语 各种 级⽤ 的开发 员。对于刚 习Go语 的读者, 议先 《Go语 经》开 统 习Go语 的基础知识。 果希 Go2的 动向,可 《Go2编程指南》。
📄 Page
7
作者 柴树杉,Github @chai2010,Twitter @chaishushan 作者 曹 晖,Github @cch123 址 https://github.com/chai2010/advanced-go- programming-book 购买链 东 https://item.m.jd.com/product/12647494.html https://www.epubit.com/book/detail/40090 果你喜欢 书,欢 评论 https://book.douban.com/subject/34442131/
📄 Page
8
在线阅读 https://chai2010.cn/advanced-go-programming-book/ https://www.gitbook.com/book/chai2010/advanced-go- programming-book/
📄 Page
9
(guanggu-coder)
📄 Page
10
易 课堂·光 码农课堂 https://study.163.com/provider/480000001914454/index.htm
📄 Page
11
声明 Go语 级编程 由 柴树杉,曹 晖 采⽤ 知识共 署 - 业性使⽤-禁⽌ 绎 4.0 国际 许可协议进⾏许可。 严禁任何 业⾏为使⽤或 ⽤该 档的 或 内 欢 ⼤ 提供 议
📄 Page
12
2009年11⽉,Google发布 Go语 ,在 界范围内 发 轰 动。2015年和2016年中国 的Go语 ⼤ 别在上 和北 召开,来⾃Go语 团队的开发 员 作 相 的报告。纵观 这⼏年来的发 趋势,Go语 已经成为 计算、 储时代 重 的基础编程语 。 中国的Go语 是 ⼤的Go语 ,我们不仅仅 ⼀开 终紧 Go语 的发 ,同时也为Go语 的 发 作 ⾃⼰的 ⼤贡 。来⾃中国 圳的⻙光 (vcc.163@gmail.com)在2010年前 , 于MinGW的⼯作 Go语 对Windows平 的 持,同时也 CGO对 Windows平 的 持。同样来⾃中国的Minux (minux.ma@gmail.com)则作为Go语 团队的成员,他 ⼤量的Go语 设计和开发评审⼯作。同时还有⼤ 量的国内Go语 爱 者积 BUG的汇报和 等⼯作 (作者也是其中 ⼀)。 2018年,中国 的Go语 相 程有 15 ,内 主 盖Go语 基础编程、Web编程、 发编程和内 码 等诸 领域。但作为Go语 的资 ⽤户,作者 的Go 语 话题远远不⽌这些内 。其中CGO 性实现 Go语 对C
📄 Page
13
语 和C++语 的 持,使得Go语 可 缝继 C/C++ 界 ⼗年来积 的 ⼤软件资产。Go汇编语 更是提供 访问 层机器指 的 ,让我们可 压 程 中热点代 码的性 。⽬前国内 联 司的 兴项⽬已经在 渐向Go 语 ⽣态转 ,⼤型 布式 统的开发实战经验也是⼤ 的。这些 阶或前 性都是作者和 书 的话题。 书针对有⼀ Go语 经验,想 Go语 各种 级⽤ 的开发 员。对于Go语 ⼿,在阅读 书前 议先 读 D&K的《The Go Programming Language》。 ,希 这 书 帮助⼤ 更 地 Go语 。 chai2010 - 2018年 8 ⽉ 于 武汉
📄 Page
14
谢 ⾸先 谢Go语 和 ⼀ 为Go语 提 过补丁的朋友。 谢fango的 ⼀ Go语 为主题的 络⼩说《胡 Go.ogle》和 ⼀ 中 Go语 图书《Go语 · 动⼒》,是你 的 让带起 ⼤ 习Go语 的热情。 谢⻙光 对 Windows平 CGO的开创性⼯作,不 书可 不 有专⻔的 CGO 节。 谢为 书提 过issue或PR的朋友( 别是 fuwensun、lewgun等),你们的 和 持是作者 作的 ⼤ 动⼒。 谢谢⼤
📄 Page
15
1 语 基础 我不知 ,你过 10年为什 不快乐。但相 我,抛掉过 的 沉重,使⽤Go语 ,体 的快乐 ——469856321 砖 ⼯也 成⾃⼰的罗⻢ 国。——⼩张 ⾸先简 绍Go语 的发 历史, 较详细地 “Hello World”程 在各 先语 中 过程。 ,对 组、 符串和 ⽚为代 的基础结 ,对 、 和 ⼝ 体现的⾯向过程和鸭 对 的编程, Go语 有的 发编程模型和错误处理 做 简单 绍。 ,针对 macOS、Windows、Linux⼏ 主 的开发平 , ⼏ 较 友 的Go语 编辑器和 成开发环 , 为 的⼯ 可 ⼤地提 我们的 。
📄 Page
16
1.1 Go语 创 纪 Go语 由Google 司的Robert Griesemer、Ken Thompson 和Rob Pike三 ⼤⽜于2007年开 设计发明,设计 语 的 的洪 ⼒来⾃于对超级 杂的C++11 性的 报告的 视, 终的⽬标是设计 络和 时代的C语 。 2008年中 期,语 的⼤ 性设计已经 成, 开 ⼿实现编译器 和 ⾏时,⼤约在这⼀年Russ Cox作为主⼒开发者加 。 2009年,Go语 已经 趋于稳 。同年9⽉,Go语 正式发 布 开 代码。 Go语 时 描 为“ C语 ”,或者是“21 纪的C语 ”。 各种⻆ 看,Go语 实是 C语 继 相 的 式语 、 制 结 、基础 据 型、调⽤ 传值、指针 等诸 编程思想,还有彻 继 和发扬 C语 简单 的暴 ⼒编程 等。图1-1是《Go语 经》中给 的Go语 的基 图谱,我们可 中看 有 些编程语 对Go语 产⽣ 响。
📄 Page
17
图 1-1 Go语 基 谱 ⾸先看基 图谱的左边⼀ 。可 明 看 Go语 的 发 性是由⻉尔实验 的Hoare于1978年发布的CSP理论 ⽽ 来。其 ,CSP 发模型在Squeak/NewSqueak和Alef等编程语
📄 Page
18
中 ⾛向实际应⽤, 终这些设计经验 消 Go语 中。业界 较 悉的Erlang编程语 的 发编程 模型也是CSP理论的另⼀种实现。 再看基 图谱的中间⼀ 。中间⼀ 主 Go语 中⾯ 向对 和 性的 历程。Go语 中 和 ⼝ ⾯向对 等 性则继 ⾃Niklaus Wirth 设计的Pascal语 其 衍⽣的相 编程语 。其中 的 、 的导 和声明等语 主 来⾃于Modula-2编程语 ,⾯向对 性 提供的 的声明语 等则来⾃于Oberon编程语 。 终Go语 ⾃⼰ 有的 持鸭 ⾯向对 模型的隐式 ⼝等诸 性。 是基 图谱的右边⼀ ,这是对C语 的 敬。Go语 是 对C语 彻 的⼀ 扬 ,不仅仅是语 和C语 有 , 重 的是 C语 中 活但是危险的指针 算。 ⽽且,Go语 还重 设计 C语 中 不 理 算符的优 先级, 在 细 的地 都做 必 的打 和 变。当 , C语 中 是 、简单 的暴⼒编程 则 Go语 更彻 地发扬光⼤ (Go语 有25 键 ,sepc语 规范 还不 50⻚))。 Go语 其 的⼀些 性 散地来⾃于其他⼀些编程语 ; iota语 是 APL语 借鉴,词 作⽤域 等 性 来⾃于Scheme语 (和其他 编程语 )。Go语 中也有 ⾃⼰发明创 的设计。 Go语 的 ⽚为轻量级动态
📄 Page
19
组提供 有 的 机 的性 ,这可 让 联想 链 的 层的共 机制。还有Go语 发明的defer语句(Ken发 明)也是 来 笔。
📄 Page
20
1.1.1 来⾃⻉尔实验 有基 作为Go语 标 性的 发编程 性则来⾃于⻉尔实验 的 Tony Hoare于1978年发 的鲜为 界 知的 于 发研 的基 础 顺 进程(communicating sequential processes , 缩 为CSP)。在 的CSP论 中,程 是⼀组 有中间 共 状态的平⾏ ⾏的处理过程, 们 间使⽤ 进⾏ 和 制同 。Tony Hoare的CSP 发模型 是⼀ ⽤于描 发性基 的描 语 , 不是⼀ 可 编 可执⾏程 的 ⽤编程语 。 CSP 发模型 经典的实际应⽤是来⾃爱 发明的Erlang编 程语 。不过在Erlang CSP理论作为 发编程模型的同时, 同样来⾃⻉尔实验 的Rob Pike 其同事也在不 尝试 CSP 发模型 当时的 发明的编程语 中。他们 ⼀ 尝 试 CSP 发 性的编程语 Squeak(⽼ 的 声),是 ⼀ ⽤于提供 标和键盘事件处理的编程语 ,在这 语 中 是静态创 的。 是 进 的Newsqueak语 ( ⽼ 的 声), 提供 C语 语句和 式的语 ,还有 Pascal语 的 导语 。Newsqueak是⼀ 带 回 的 纯 式语 , 再 针对键盘、 标和 ⼝事件 理。但是 在Newsqueak语 中 已经是动态创 的, 属于 ⼀ 值、可 保 变量中。 是Alef编程语 (Alef也是C语
The above is a preview of the first 20 pages. Register to read the complete e-book.