[套装书]Go语言项目开发上手指南+Go程序设计语言(2册)

作者
谢伟 艾伦A. A.多诺万 布莱恩W.柯尼汉
丛书名
出版社
机械工业出版社
ISBN
9782107261115
简要
简介
内容简介书籍计算机书籍 ---------------------------8082550 - Go语言项目开发上手指南--------------------------- 本书从实践出发讲解Go语言编程的基础和进阶知识。全书共分为14章,第1~4章讲述Go的基础知识,如基础语法、内置库的使用等,第5~14章介绍编写图表库、实现命令行工具、网络爬虫Web编程、GraphQL编程和面向接口编程等,将Go的核心知识和应用拆分到不同的应用场景中进行讲解。 本书适合对Go语言的应用已经有一定基础,并希望能够在Web开发方面、接口编程方面结合Go语言来实现进阶学习的技术人员学习和参考。 ---------------------------5576736 - Go程序设计语言--------------------------- 本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管Alan Donovan联袂撰写,是学习Go语言程序设计的权威指南。本书共13章,主要内容包括:Go的基础知识、基本结构、基本数据类型、复合数据类型、函数、方法、接口、goroutine、通道、共享变量的并发性、包、go工具、测试、反射等。 本书适合作为计算机相关专业的教材,也可供Go语言爱好者阅读。
目录
[套装书具体书目]
5576736 - Go程序设计语言 - 9787111558422 - 机械工业出版社 - 定价 79
8082550 - Go语言项目开发上手指南 - 9787111684565 - 机械工业出版社 - 定价 119



---------------------------8082550 - Go语言项目开发上手指南---------------------------


前言
第1章 概述 1
1.1 Go语言的特性 1
1.2 开发环境的搭建 2
1.2.1 下载与目标操作系统匹配的安装包 2
1.2.2 设置环境变量 2
1.2.3 集成开发环境的选择 4
1.2.4 编写第一个Go程序 4
1.3 Go命令行和项目结构 5
1.3.1 需要GOPATH支持的方式 5
1.3.2 不需要GOPATH支持的方式 5
1.4 本章小结 5
第2章 基础知识 6
2.1 引子 6
2.2 了解Go语言的基本语法 7
2.2.1 变量 7
2.2.2 声明与赋值 7
2.2.3 多个变量的声明与赋值 8
2.2.4 变量的作用域 8
2.2.5 常量 9
2.2.6 基本数据类型 9
2.2.7 类型转换 12
2.2.8 自定义类型 12
2.2.9 函数 13
2.2.10 流程控制 15
2.2.11 结构体 19
2.2.12 接口 21
2.3 本章小结 22
第3章 数据操作 23
3.1 变量 23
3.1.1 显式声明与隐式声明 23
3.1.2 组织多个变量 24
3.1.3 变量的命名应遵循的原则 25
3.2 运算 26
3.2.1 算术运算 26
3.2.2 逻辑运算 27
3.3 数组和切片 28
3.4 字典 29
3.5 结构体 30
3.5.1 匿名字段 31
3.5.2 小结 32
3.6 接口 33
3.6.1 error 33
3.6.2 Marshaler 34
3.7 库(包)管理 36
3.7.1 库(包)的导入 36
3.7.2 下载库(包) 36
3.8 项目组织的结构 37
3.8.1 领域驱动的方式 37
3.8.2 业务驱动的方式 38
3.9 本章小结 38
第4章 内置库的常用操作 39
4.1 字符串 39
4.2 bytes 45
4.3 json 47
4.4 io/bufio 48
4.5 fmt 51
4.6 strconv 55
4.7 time 57
4.8 regexp 59
4.9 log 62
4.10 reflect/unsafe 65
4.11 os/path/filepath 69
4.12 unicode 78
4.13 flag 80
4.14 net/url 84
4.15 net/http 87
4.16 sort 94
4.17 error 97
4.18 本章小结 99
第5章 编写图表库 100
5.1 常见的开源图表库 100
5.1.1 ECharts 100
5.1.2 BizCharts 103
5.1.3 chart.js 105
5.1.4 HighCharts 106
5.1.5 小结 108
5.2 模板引擎的使用 108
5.3 使用模板引擎构建图表 111
5.4 基于chart.js构建图表库go-chart 121
5.4.1 项目组织结构 122
5.4.2 模板文件 123
5.4.3 基础数据 124
5.4.4 图表类型 128
5.5 本章小结 132
第6章 编写测试 133
6.1 单元测试 133
6.2 基本的使用 134
6.2.1 常见用法 134
6.2.2 样本测试 135
6.2.3 SetUp/TearDown 136
6.3 表格驱动法测试 136
6.4 第三方库goconvey 137
6.5 解决依赖性问题 140
6.5.1 函数依赖关系 140
6.5.2 数据库的依赖 143
6.6 性能测试 148
6.7 本章小结 150
第7章 网络爬虫 151
7.1 网络爬虫是什么 151
7.2 网页的基本组成 152
7.2.1 HTML 153
7.2.2 Chrome开发者工具的使用 155
7.2.3 小结 162
7.3 原生库解析HTML网页 163
7.4 正则表达式解析网页 165
7.5 网络爬虫的流程 167
7.6 网页源代码的获取 168
7.6.1 原生net/http库 168
7.6.2 Selenium浏览器自动化测试 169
7.6.3 Chromedp渲染 172
7.6.4 小结 174
7.7 CSS选择器解析网页 174
7.7.1 语法 174
7.7.2 下载安装 177
7.7.3 示例 177
7.7.4 小结 185
7.8 XPath路径表达式解析网页 185
7.8.1 语法 185
7.8.2 下载安装 187
7.8.3 示例 188
7.8.4 小结 192
7.9 JSON数据解析 192
7.9.1 JSON数据 192
7.9.2 下载安装 194
7.9.3 v2ex社区实例 195
7.9.4 猫眼票房实例 197
7.10 App端数据的获取 201
7.10.1 Charles的使用 201
7.10.2 Mitmproxy的使用 203
7.10.3 小结 205
7.11 数据存储 206
7.11.1 百度搜索指数实例 206
7.11.2 持久化存储 211
7.11.3 数据库的形式 214
7.12 本章小结 218
第8章 实现命令行工具 219
8.1 优秀的命令行工具的特点 219
8.1.1 Docker 219
8.1.2 Go 221
8.2 命令行工具需要处理的内容 223
8.3 Go实现命令行的几种方式 223
8.3.1 内置的os库 224
8.3.2 内置的flag库 226
8.3.3 使用第三方库cobra实现gitcli 233
8.4 本章小结 250
第9章 动手实现一个库 251
9.1 解决什么问题 251
9.2 解决方案 253
9.2.1 手动处理 253
9.2.2 参考别人的思路 254
9.2.3 自己的思路 258
9.2.4 持续集成 264
9.2.5 拓展 273
9.3 本章小结 273
第10章 Web服务 275
10.1 使用net/http构建简易的Web服务 275
10.1.1 启动Web服务 275
10.1.2 目标 281
10.1.3 模板的使用 281
10.1.4 内容开发 286
10.2 使用net/http构建爱鲜蜂Web服务 317
10.2.1 需求流程梳理 318
10.2.2 模型设计 319
10.2.3 代码开发 325
10.2.4 项目组织结构 339
10.3 本章小结 375
第11章 Web开发手册 376
11.1 再谈HTTP 376
11.2 设计RESTful API 377
11.2.1 资源的访问操作 378
11.2.2 路由的设计 379
11.2.3 参数 379
11.2.4 参数检验 382
11.2.5 响应信息 383
11.3 数据模型 385
11.3.1 GORM方案 387
11.3.2 XORM方案 387
11.3.3 小结 390
11.4 中间件 391
11.4.1 Gin中间件 394
11.4.2 Echo中间件 395
11.4.3 Iris中间件 396
11.4.4 小结 396
11.5 响应信息 396
11.5.1 正确时的响应信息 397
11.5.2 错误时的响应信息 399
11.5.3 小结 399
11.6 项目组织结构 400
11.7 代码管理和托管 402
11.8 Make构建工具 403
11.8.1 语法规范 403
11.8.2 Go项目的命令 405
11.9 容器化部署 406
11.9.1 Docker容器的使用 407
11.9.2 小结 408
11.10 自动CI/CD 408
11.11 本章小结 413
第12章 面向接口编程 414
12.1 开源 414
12.2 搜索引擎的基本使用 415
12.2.1 下载并安装 416
12.2.2 docker-compose配置文件 416
12.2.3 查看安装是否成功 417
12.3 客户端go-elasticsearch的使用 418
12.3.1 下载并安装 418
12.3.2 基本的使用 419
12.4 项目组织的形式 420
12.5 面向接口编程 421
12.6 自己实现,学为己用 432
12.7 本章小结 441
第13章 Go学习路径 442
13.1 内置库 442
13.1.1 访问官方文档 442
13.1.2 文档的组织 442
13.1.3 阅读内置库 444
13.2 版本管理 445
13.2.1 初始化 445
13.2.2 下载 446
13.2.3 移除不需要的模块 446
13.3 测试驱动开发 446
13.4 命令行 447
13.5 Web开发 447
13.6 SQL与ORM 448
13.7 系统工程 448
13.7.1 需求讨论 448
13.7.2 迭代开发/测试 448
13.7.3 代码版本管理 449
13.7.4 持续集成(CI) 449
13.7.5 持续部署(CD) 450
13.7.6 多组件部署 450
13.7.7 监控运维 450



---------------------------5576736 - Go程序设计语言---------------------------


出版者的话
译者序
前言
第1章 入门 1
1.1 hello,world 1
1.2 命令行参数 3
1.3 找出重复行 6
1.4 GIF动画 10
1.5 获取一个URL 12
1.6 并发获取多个URL 13
1.7 一个Web服务器 14
1.8 其他内容 17
第2章 程序结构 20
2.1 名称 20
2.2 声明 21
2.3 变量 22
2.3.1 短变量声明 22
2.3.2 指针 23
2.3.3 new函数 25
2.3.4 变量的生命周期 26
2.4 赋值 27
2.4.1 多重赋值 27
2.4.2 可赋值性 28
2.5 类型声明 29
2.6 包和文件 30
2.6.1 导入 31
2.6.2 包初始化 33
2.7 作用域 34
第3章 基本数据 38
3.1 整数 38
3.2 浮点数 42
3.3 复数 45
3.4 布尔值 47
3.5 字符串 47
3.5.1 字符串字面量 49
3.5.2 Unicode 49
3.5.3 UTF-8 50
3.5.4 字符串和字节slice 53
3.5.5 字符串和数字的相互转换 56
3.6 常量 56
3.6.1 常量生成器iota 57
3.6.2 无类型常量 59
第4章 复合数据类型 61
4.1 数组 61
4.2 slice 63
4.2.1 append函数 66
4.2.2 slice就地修改 69
4.3 map 71
4.4 结构体 76
4.4.1 结构体字面量 78
4.4.2 结构体比较 80
4.4.3 结构体嵌套和匿名成员 80
4.5 JSON 82
4.6 文本和HTML模板 87
第5章 函数 92
5.1 函数声明 92
5.2 递归 93
5.3 多返回值 96
5.4 错误 98
5.4.1 错误处理策略 99
5.4.2 文件结束标识 101
5.5 函数变量 102
5.6 匿名函数 104
5.7 变长函数 110
5.8 延迟函数调用 111
5.9 宕机 115
5.10 恢复 118
第6章 方法 120
6.1 方法声明 120
6.2 指针接收者的方法 122
6.3 通过结构体内嵌组成类型 124
6.4 方法变量与表达式 127
6.5 示例:位向量 128
6.6 封装 130
第7章 接口 133
7.1 接口即约定 133
7.2 接口类型 135
7.3 实现接口 136
7.4 使用flag.Value来解析参数 139
7.5 接口值 141
7.6 使用sort.Interface来排序 144
7.7 http.Handler接口 148
7.8 error接口 152
7.9 示例:表达式求值器 154
7.10 类型断言 160
7.11 使用类型断言来识别错误 161
7.12 通过接口类型断言来查询特性 162
7.13 类型分支 164
7.14 示例:基于标记的XML解析 166
7.15 一些建议 168
第8章 goroutine和通道 170
8.1 goroutine 170
8.2 示例:并发时钟服务器 171
8.3 示例:并发回声服务器 174
8.4 通道 176
8.4.1 无缓冲通道 177
8.4.2 管道 178
8.4.3 单向通道类型 180
8.4.4 缓冲通道 181
8.5 并行循环 183
8.6 示例:并发的Web爬虫 187
8.7 使用select多路复用 190
8.8 示例:并发遍历 192
8.9 取消 195
8.10 示例:聊天服务器 198
第9章 使用共享变量实现并发 201
9.1 竞态 201
9.2 互斥锁:sync.Mutex 205
9.3 读写互斥锁:sync.RWMutex 208
9.4 内存同步 208
9.5 延迟初始化:sync.Once 210
9.6 竞态检测器 212
9.7 示例:并发非阻塞缓存 212
9.8 goroutine与线程 218
9.8.1 可增长的栈 219
9.8.2 goroutine调度 219
9.8.3 GOMAXPROCS 219
9.8.4 goroutine没有标识 220
第10章 包和go工具 221
10.1 引言 221
10.2 导入路径 221
10.3 包的声明 222
10.4 导入声明 223
10.5 空导入 223
10.6 包及其命名 225
10.7 go工具 226
10.7.1 工作空间的组织 227
10.7.2 包的下载 228
10.7.3 包的构建 229
10.7.4 包的文档化 231
10.7.5 内部包 232
10.7.6 包的查询 233
第11章 测试 235
11.1 go test工具 235
11.2 Test函数 236
11.2.1 随机测试 239
11.2.2 测试命令 240
11.2.3 白盒测试 242
11.2.4 外部测试包 245
11.2.5 编写有效测试 246
11.2.6 避免脆弱的测试 247
11.3 覆盖率 248
11.4 Benchmark函数 250
11.5 性能剖析 252
11.6 Example函数 254
第12章 反射 256
12.1 为什么使用反射 256
12.2 reflect.Type和reflect.Value 257
12.3 Display:一个递归的值显示器 259
12.4 示例:编码S表达式 263
12.5 使用reflect.Value来设置值 266
12.6 示例:解码S表达式 268
12.7 访问结构体字段标签 271
12.8 显示类型的方法 273
12.9 注意事项 274
第13章 低级编程 276
13.1 unsafe.Sizeof、Alignof 和Offsetof 276
13.2 unsafe.Pointer 278
13.3 示例:深度相等 280
13.4 使用cgo调用C代码 282
13.5 关于安全的注意事项 286

推荐

车牌查询
桂ICP备20004708号-3