GoWeb编程
楔子
第一部分 Go与Web应用
第1章 Go与Web应用
1.1 使用Go语言构建Web应用
1.1.1 Go与可扩展Web应用
1.1.2 Go与模块化Web应用
1.1.3 Go与可维护的Web应用
1.1.4 Go与高性能Web应用
1.2 Web应用的工作原理
1.3 HTTP简介
1.4 Web应用的诞生
1.5 HTTP请求
1.5.1 请求方法
1.5.2 安全的请求方法
1.5.3 幂等的请求方法
1.5.4 浏览器对请求方法的支持
1.5.5 请求首部
1.6 HTTP响应
1.6.1 响应状态码
1.6.2 响应首部
1.7 URI
1.8 HTTP/2简介
1.9 Web应用的各个组成部分
1.9.1 处理器
1.9.2 模板引擎
1.10 Hello Go
1.11 小结
第2章 ChitChat论坛
2.1 ChitChat简介
2.2 应用设计
2.3 数据模型
2.4 请求的接收与处理
2.4.1 多路复用器
2.4.2 服务静态文件
2.4.3 创建处理器函数
2.4.4 使用cookie进行访问控制
2.5 使用模板生成HTML响应
2.6 安装PostgreSQL
2.6.1 在Linux或FreeBSD系统上安装
2.6.2 在Mac OS X系统上安装
2.6.3 在Windows系统上安装
2.7 连接数据库
2.8 启动服务器
2.9 Web应用运作流程回顾
2.10 小结
第二部分 Web应用的基本组成部分
第3章 接收请求
3.1 Go的net/http标准库
3.2 使用Go构建服务器
3.2.1 Go Web服务器
3.2.2 通过HTTPS提供服务
3.3 处理器和处理器函数
3.3.1 处理请求
3.3.2 使用多个处理器
3.3.3 处理器函数
3.3.4 串联多个处理器和处理器函数
3.3.5 ServeMux和DefaultServeMux
3.3.6 使用其他多路复用器
3.4 使用HTTP/2
3.5 小结
第4章 处理请求
4.1 请求和响应
4.1.1 Request结构
4.1.2 请求URL
4.1.3 请求首部
4.1.4 请求主体
4.2 Go与HTML表单
4.2.1 Form字段
4.2.2 PostForm字段
4.2.3 MultipartForm字段
4.2.4 文件
4.2.5 处理带有JSON主体的POST请求
4.3 ResponseWriter
4.4 cookie
4.4.1 Go与cookie
4.4.2 将cookie发送至浏览器
4.4.3 从浏览器获取cookie
4.4.4 使用cookie实现闪现消息
4.5 小结
第5章 内容展示
5.1 模板引擎
5.2 Go的模板引擎
5.2.1 对模板进行语法分析
5.2.2 执行模板
5.3 动作
5.3.1 条件动作
5.3.2 迭代动作
5.3.3 设置动作
5.3.4 包含动作
5.4 参数、变量和管道
5.5 函数
5.6 上下文感知
5.6.1 防御XSS攻击
5.6.2 不对HTML进行转义
5.7 嵌套模板
5.8 通过块动作定义默认模板
5.9 小结
第6章 存储数据
6.1 内存存储
6.2 文件存储
6.2.1 读取和写入CSV文件
6.2.2 gob包
6.3 Go与SQL
6.3.1 设置数据库
6.3.2 连接数据库
6.3.3 创建帖子
6.3.4 获取帖子
6.3.5 更新帖子
6.3.6 删除帖子
6.3.7 一次获取多篇帖子
6.4 Go与SQL的关系
6.4.1 设置数据库
6.4.2 一对多关系
6.5 Go与关系映射器
6.5.1 Sqlx
6.5.2 Gorm
6.6 小结
第三部分 实战演练
第7章 Go Web服务
7.1 Web服务简介
7.2 基于SOAP的Web服务简介
7.3 基于REST的Web服务简介
7.3.1 将动作转换为资源
7.3.2 将动作转换为资源的属性
7.4 通过Go分析和创建XML
7.4.1 分析XML
7.4.2 创建XML
7.5 通过Go分析和创建JSON
7.5.1 分析JSON
7.5.2 创建JSON
7.6 创建Go Web服务
7.7 小结
第8章 应用测试
8.1 Go与测试
8.2 使用Go进行单元测试
8.2.1 跳过测试用例
8.2.2 以并行方式运行测试
8.2.3 基准测试
8.3 使用Go进行HTTP测试
8.4 测试替身以及依赖注入
8.5 第三方Go测试库
8.6 小结
第9章 发挥Go的并发优势
9.1 并发与并行的区别
9.2 goroutine
9.2.1 使用goroutine
9.2.2 goroutine与性能
9.2.3 等待goroutine
9.3 通道
9.3.1 通过通道实现同步
9.3.2 通过通道实现消息传递
9.3.3 有缓冲通道
9.3.4 从多个通道中选择
9.4 在Web应用中使用并发
9.4.1 创建马赛克图片
9.4.2 马赛克图片Web应用
9.4.3 并发版马赛克图片生成Web应用
9.5 小结
第10章 Go的部署
10.1 将应用部署到独立的服务器
10.2 Heroku
10.3 将应用部署到Google App Engine
10.4 将应用部署到Docker
10.4.1 什么是Docker
10.4.2 安装Docker
10.4.3 Docker的概念与组件
10.4.4 Docker化一个Go Web应用
10.4.5 将Docker容器推送至互联网
10.5 部署方法之间的对比
10.6 小结
Powered by
GitBook
8.6 小结
Go通过
go test
命令为用户提供了内置的测试工具,并提供了
testing
包以便实现单元测试。
testing
包提供了基本的功能测试以及基准测试能力。
对于Go语言来说,Web应用的单元测试可以通过
testing/httptest
包来完成。
使用测试替身可以让测试用例变得更加独立。
实现测试替身的一种方法是使用依赖注入设计模式。
Go语言拥有许多第三方测试库,其中包括对Go的测试功能进行扩展的
Gocheck
包,以及实现了行为驱动测试的
Ginkgo
包。
results matching "
"
No results matching "
"