内容简介
本书介绍了Go语言的实践应用技术,主要以实际应用为目的,使读者在掌握基本的Go语言知识的基础上进行更多的实践训练。本书涵盖了Go语言基本概念、Go应用程序的管理机制、创建用户界面、云基础设施、微服务器及服务到服务的通信模式等内容,并按照问题、解决方案和讨论的顺序结合具体的程序示例对70种Go语言的技术逐步进行了介绍。本书可以作为程序员解决实际问题的参考。也可以作为Go语言爱好者学习和应用的参考书。还可以作为非专业学生Go语言学习的入门参考书,也可以作为专业学生的实践参考书。
目录
译者序
序
鸣谢
前言
关于本书
关于作者
关于封面插图
第1部分1
1 走进GO语言1
1.1 何谓GO语言2
1.2 GO语言的特点4
1.2.1 多个返回值4
1.2.2 现代化的标准库6
1.2.3 goroutine 与通道的并发性(Go语言规程及通道并发性)9
1.2.4 Go工具链—不仅仅是一种语言14
1.3 众多编程语言背景下的GO语言20
1.3.1 C语言与Go语言20
1.3.2 Java 与 Go21
1.3.3 Python、PHP与Go23
1.3.4 Javascript、Node.js与 Go25
1.4启动、运行GO语言26
1.4.1安装Go语言26
1.4.2Go语言与Git,Mercurial协同运行和版本控制27
1.4.3探索工作区27
1.4.4环境变量的使用28
1.5 GO,你好29
1.6小结31
2坚实的基础32
2.1 GO语言使用CLI应用程序的方法33
2.1.1 命令行标记33
2.1.2 命令行框架结构40
2.2 配置问题处理47
2.3使用实际的WEB服务器54
2.3.1 启动和关闭服务器55
2.3.2 路由web 请求60
2.4小结71
3 GO语言的并发性72
3.1理解GO语言的并发模型72
3.2 使用GOROUNTINE73
3.3 通道的应用88
3.4 小结101
第2部分103
4 ERROR错误与PANIC异常的处理103
4.1 ERROR错误处理104
4.2 PANIC异常系统114
4.2.1 error错误与panic异常的区分114
4.2.2 panic异常处理116
4.2.3 从panic异常中恢复过来118
4.2.4panic异常和goroutine函数125
4.3 小结134
5 调试和测试135
5.1定位BUGS135
5.1.1等等,我的调试器(debugger)在哪里?136
5.2 日志记录136
5.2.1使用Go语言的记录器137
5.2.2使用系统记录器148
5.3访问堆栈跟踪152
5.4 测试155
5.4.1 单元测试155
5.4.2生成测试162
5.5使用性能测试和基准165
5.6小结172
第3部分应用程序的接口174
6 HTML和电子邮件的模板样式174
6.1 HTML模板的使用175
6.1.1标准库HTML包概述175
6.1.2 在模板中添加函数177
6.1.3 模板解析限制180
6.1.4 模板执行中断182
6.1.5 混合模板183
6.2 在EMAIL中使用模板195
6.3 小结197
7 静态资源(ASSET)和表单的获取和接收198
7.1 获取静态内容199
7.2 表单POST的处理213
7.2.1 表单请求简介213
7.2.2 使用文件和分段提交216
7.2.3 使用原始的多个数据223
7.3 小结228
8 使用WEB服务229
8.1 使用RESET API229
8.1.1 使用HTTP客户端230
8.1.2 发生故障时232
8.2 通过HTTP传递和处理错误236
8.2.1 生成自定义错误237
8.2.2 读取和使用自定义错误238
8.3 传递和映射JSON241
8.4版本控制REST API246
8.5小结251
第四部分 将应用程序发布到云252
9 使用云252
9.1什么是云计算?253
9.1.1 云计算的类型253
9.1.2 容器和云本地应用程序255
9.2管理云服务257
9.2.1避免云提供商锁定257
9.2.2处理不一致的错误261
9.3在云服务器上运行263
9.3.1执行运行时检测263
9.3.2构建云266
9.3.3执行运行时监视269
9.4 小结271
10 云服务之间的通信272
10.1微服务和高可用性272
10.2服务之间的通信274
10.2.1 使REST更快274
10.2.2超越REST281
10.3 小结290
11反射和代码生成291
11.1反射的三个特征291
11.2 结构体,标签和注解304
11.2.1 注释结构304
11.2.2 使用标签注解305
11.3使用GO代码生成GO代码312
11.4小结319