Go Web编程.[新加坡]郑兆雄(带详细书签) PDF 下载
《Go Web 编程》原名《Go Web Programming》,原书由新加坡开发者郑兆雄(Sau Sheong Chang)创作、 Manning 出版社出版,人名邮电出版社引进了该书的中文版权,并将其交由黄健宏进行翻译。 《Go Web 编程》一书围绕一个网络论坛 作为例子,教授读者如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件去构建一个 Go Web 应用,然后在该应用的基础上,构建出相应的 Web 服务。 值得一提的是,本书在教授 Go Web 开发方法时,基本上只会用到 Go 语言自带的标准库,而不会用到任何特定的 Web 框架:这使得读者学习到的知识不会受到特定的框架所限制,即使将来有需要用到现成的框架又或者自行构建框架,读者仍然会从本书介绍的知识中获益。 除了教授具体的 Web 开发方法之外,本书还会教授读者如何对 Go Web 应用进行测试,如何使用 Go 的并发特性去提高 Web 应用的性能,以及如何在 Heroku 、 Google App Engine 、 Digital Ocean 等云端平台上部署 Go Web 应用,并在有需要的时候,向读者传授一些 Go Web 开发方面的经验和提示。这些重要的实践知识将帮助 读者登堂入室,一步到位成为真正具有生产力的 Go Web 开发人员。 第一部分 Go与Web应用 1 第1章 Go与Web应用 2 1.1 使用Go语言构建Web应用 2 1.1.1 Go与可扩展Web应用 3 1.1.2 Go与模块化Web应用 3 1.1.3 Go与可维护的Web应用 4 1.1.4 Go与高性能Web应用 4 1.2 Web应用的工作原理 5 1.3 HTTP简介 6 1.4 Web应用的诞生 7 1.5 HTTP请求 8 1.5.1 请求方法 9 1.5.2 安全的请求方法 10 1.5.3 幂等的请求方法 10 1.5.4 浏览器对请求方法的支持 10 1.5.5 请求首部 11 1.6 HTTP响应 12 1.6.1 响应状态码 12 1.6.2 响应首部 13 1.7 URI 14 1.8 HTTP/2简介 15 1.9 Web应用的各个组成部分 15 1.9.1 处理器 16 1.9.2 模板引擎 17 1.10 Hello Go 17 1.11 小结 20 第2章 ChitChat论坛 22 2.1 ChitChat简介 22 2.2 应用设计 23 2.3 数据模型 25 2.4 请求的接收与处理 26 2.4.1 多路复用器 26 2.4.2 服务静态文件 28 2.4.3 创建处理器函数 28 2.4.4 使用cookie进行访问控制 29 2.5 使用模板生成HTML响应 32 2.6 安装PostgreSQL 37 2.6.1 在Linux或FreeBSD系统上安装 37 2.6.2 在Mac OS X系统上安装 38 2.6.3 在Windows系统上安装 38 2.7 连接数据库 38 2.8 启动服务器 43 2.9 Web应用运作流程回顾 44 2.10 小结 45 第二部分 Web应用的基本组成部分 47 第3章 接收请求 48 3.1 Go的net/http标准库 48 3.2 使用Go构建服务器 50 3.2.1 Go Web服务器 50 3.2.2 通过HTTPS提供服务 52 3.3 处理器和处理器函数 55 3.3.1 处理请求 55 3.3.2 使用多个处理器 57 3.3.3 处理器函数 58 3.3.4 串联多个处理器和处理器函数 60 3.3.5 ServeMux和DefaultServeMux 64 3.3.6 使用其他多路复用器 65 3.4 使用HTTP/2 67 3.5 小结 69 第4章 处理请求 71 4.1 请求和响应 71 4.1.1 Request结构 72 4.1.2 请求URL 72 4.1.3 请求首部 73 4.1.4 请求主体 75 4.2 Go与HTML表单 76 4.2.1 Form字段 78 4.2.2 PostForm字段 79 4.2.3 MultipartForm字段 80 4.2.4 文件 82 4.2.5 处理带有JSON主体的POST请求 84 4.3 ResponseWriter 85 4.4 cookie 90 4.4.1 Go与cookie 90 4.4.2 将cookie发送至浏览器 91 4.4.3 从浏览器里面获取cookie 93 4.4.4 使用cookie实现闪现消息 95 4.5 小结 98 第5章 内容展示 99 5.1 模板引擎 99 5.2 Go的模板引擎 101 5.2.1 对模板进行语法分析 103 5.2.2 执行模板 104 5.3 动作 105 5.3.1 条件动作 105 5.3.2 迭代动作 107 5.3.3 设置动作 108 5.3.4 包含动作 110 5.4 参数、变量和管道 112 5.5 函数 113 5.6 上下文感知 115 5.6.1 防御XSS攻击 118 5.6.2 不对HTML进行转义 120 5.7 嵌套模板 121 5.8 通过块动作定义默认模板 125 5.9 小结 126 第6章 存储数据 127 6.1 内存存储 127 6.2 文件存储 130 6.2.1 读取和写入CSV文件 132 6.2.2 gob包 134 6.3 Go与SQL 136 6.3.1 设置数据库 137 6.3.2 连接数据库 139 6.3.3 创建帖子 141 6.3.4 获取帖子 143 6.3.5 更新帖子 144 6.3.6 删除帖子 144 6.3.7 一次获取多篇帖子 145 6.4 Go与SQL的关系 146 6.4.1 设置数据库 146 6.4.2 一对多关系 149 6.5 Go与关系映射器 151 6.5.1 Sqlx 151 6.5.2 Gorm 153 6.6 小结 156 第三部分 实战演练 159 第7章 Go Web服务 160 7.1 Web服务简介 160 7.2 基于SOAP的Web服务简介 162 7.3 基于REST的Web服务简介 165 7.3.1 将动作转换为资源 167 7.3.2 将动作转换为资源的属性 168 7.4 通过Go分析和创建XML 168 7.4.1 分析XML 168 7.4.2 创建XML 176 7.5 通过Go分析和创建JSON 179 7.5.1 分析JSON 180 7.5.2 创建JSON 183 7.6 创建Go Web服务 186 7.7 小结 193 第8章 应用测试 195 8.1 Go与测试 195 8.2 使用Go进行单元测试 196 8.2.1 跳过测试用例 200 8.2.2 以并行方式运行测试 201 8.2.3 基准测试 202 8.3 使用Go进行HTTP测试 205 8.4 测试替身以及依赖注入 209 8.5 第三方Go测试库 216 8.5.1 Gocheck测试包简介 216 8.5.2 Ginkgo测试框架简介 222 8.6 小结 227 第9章 发挥Go的并发优势 229 9.1 并发与并行的区别 229 9.2 goroutine 231 9.2.1 使用goroutine 231 9.2.2 goroutine与性能 234 9.2.3 等待goroutine 237 9.3 通道 238 9.3.1 通过通道实现同步 239 9.3.2 通过通道实现消息传递 241 9.3.3 有缓冲通道 242 9.3.4 从多个通道中选择 243 9.4 在Web应用中使用并发 246 9.4.1 创建马赛克图片 247 9.4.2 马赛克图片Web应用 250 9.4.3 并发版马赛克图片生成Web应用 253 9.5 小结 261 第10章 Go的部署 262 10.1 将应用部署到独立的 服务器 263 10.2 将应用部署到 Heroku 269 10.3 将应用部署到Google App Engine 272 10.4 将应用部署到 Docker 277 10.4.1 什么是Docker 277 10.4.2 安装Docker 278 10.4.3 Docker的理念与 组件 279 10.4.4 Docker化一个Go Web 应用 280 10.4.5 将Docker容器推送至 互联网 282 10.5 部署方法之间的 对比 285 10.6 小结 286 附录 安装和设置Go 287
《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一起,帮读者成功地构建跨平台的应用程序,节省Go语言开发Web的宝贵时间。有了这些针对真实问题的解决方案放在手边,大多数编程难题都会迎刃而解。, 在《Go Web编程》中,读者可以更加方便地找到各种编程问题的解决方案,内容涵盖文本处理、表单处理、Session管理、数据库交互、加/解密、国际化和标准化,以及程序的部署维护等运维方面的知识,最后还介绍了一个快速开发的框架帮助您迅速进入Go语言的Web开发。 读者登堂入室,一步到位成为真正具有生产力的 Go Web 开发人员。 第一部分 Go与Web应用 1 第1章 Go与Web应用 2 1.1 使用Go语言构建Web应用 2 1.1.1 Go与可扩展Web应用 3 1.1.2 Go与模块化Web应用 3 1.1.3 Go与可维护的Web应用 4 1.1.4 Go与高性能Web应用 4 1.2 Web应用的工作原理 5 1.3 HTTP简介 6 1.4 Web应用的诞生 7 1.5 HTTP请求 8 1.5.1 请求方法 9 1.5.2 安全的请求方法 10 1.5.3 幂等的请求方法 10 1.5.4 浏览器对请求方法的支持 10 1.5.5 请求首部 11 1.6 HTTP响应 12 1.6.1 响应状态码 12 1.6.2 响应首部 13 1.7 URI 14 1.8 HTTP/2简介 15 1.9 Web应用的各个组成部分 15 1.9.1 处理器 16 1.9.2 模板引擎 17 1.10 Hello Go 17 1.11 小结 20 第2章 ChitChat论坛 22 2.1 ChitChat简介 22 2.2 应用设计 23 2.3 数据模型 25 2.4 请求的接收与处理 26 2.4.1 多路复用器 26 2.4.2 服务静态文件 28 2.4.3 创建处理器函数 28 2.4.4 使用cookie进行访问控制 29 2.5 使用模板生成HTML响应 32 2.6 安装PostgreSQL 37 2.6.1 在Linux或FreeBSD系统上安装 37 2.6.2 在Mac OS X系统上安装 38 2.6.3 在Windows系统上安装 38 2.7 连接数据库 38 2.8 启动服务器 43 2.9 Web应用运作流程回顾 44 2.10 小结 45 第二部分 Web应用的基本组成部分 47 第3章 接收请求 48 3.1 Go的net/http标准库 48 3.2 使用Go构建服务器 50 3.2.1 Go Web服务器 50 3.2.2 通过HTTPS提供服务 52 3.3 处理器和处理器函数 55 3.3.1 处理请求 55 3.3.2 使用多个处理器 57 3.3.3 处理器函数 58 3.3.4 串联多个处理器和处理器函数 60 3.3.5 ServeMux和DefaultServeMux 64 3.3.6 使用其他多路复用器 65 3.4 使用HTTP/2 67 3.5 小结 69 第4章 处理请求 71 4.1 请求和响应 71 4.1.1 Request结构 72 4.1.2 请求URL 72 4.1.3 请求首部 73 4.1.4 请求主体 75 4.2 Go与HTML表单 76 4.2.1 Form字段 78 4.2.2 PostForm字段 79 4.2.3 MultipartForm字段 80 4.2.4 文件 82 4.2.5 处理带有JSON主体的POST请求 84 4.3 ResponseWriter 85 4.4 cookie 90 4.4.1 Go与cookie 90 4.4.2 将cookie发送至浏览器 91 4.4.3 从浏览器里面获取cookie 93 4.4.4 使用cookie实现闪现消息 95 4.5 小结 98 第5章 内容展示 99 5.1 模板引擎 99 5.2 Go的模板引擎 101 5.2.1 对模板进行语法分析 103 5.2.2 执行模板 104 5.3 动作 105 5.3.1 条件动作 105 5.3.2 迭代动作 107 5.3.3 设置动作 108 5.3.4 包含动作 110 5.4 参数、变量和管道 112 5.5 函数 113 5.6 上下文感知 115 5.6.1 防御XSS攻击 118 5.6.2 不对HTML进行转义 120 5.7 嵌套模板 121 5.8 通过块动作定义默认模板 125 5.9 小结 126 第6章 存储数据 127 6.1 内存存储 127 6.2 文件存储 130 6.2.1 读取和写入CSV文件 132 6.2.2 gob包 134 6.3 Go与SQL 136 6.3.1 设置数据库 137 6.3.2 连接数据库 139 6.3.3 创建帖子 141 6.3.4 获取帖子 143 6.3.5 更新帖子 144 6.3.6 删除帖子 144 6.3.7 一次获取多篇帖子 145 6.4 Go与SQL的关系 146 6.4.1 设置数据库 146 6.4.2 一对多关系 149 6.5 Go与关系映射器 151 6.5.1 Sqlx 151 6.5.2 Gorm 153 6.6 小结 156 第三部分 实战演练 159 第7章 Go Web服务 160 7.1 Web服务简介 160 7.2 基于SOAP的Web服务简介 162 7.3 基于REST的Web服务简介 165 7.3.1 将动作转换为资源 167 7.3.2 将动作转换为资源的属性 168 7.4 通过Go分析和创建XML 168 7.4.1 分析XML 168 7.4.2 创建XML 176 7.5 通过Go分析和创建JSON 179 7.5.1 分析JSON 180 7.5.2 创建JSON 183 7.6 创建Go Web服务 186 7.7 小结 193 第8章 应用测试 195 8.1 Go与测试 195 8.2 使用Go进行单元测试 196 8.2.1 跳过测试用例 200 8.2.2 以并行方式运行测试 201 8.2.3 基准测试 202 8.3 使用Go进行HTTP测试 205 8.4 测试替身以及依赖注入 209 8.5 第三方Go测试库 216 8.5.1 Gocheck测试包简介 216 8.5.2 Ginkgo测试框架简介 222 8.6 小结 227 第9章 发挥Go的并发优势 229 9.1 并发与并行的区别 229 9.2 goroutine 231 9.2.1 使用goroutine 231 9.2.2 goroutine与性能 234 9.2.3 等待goroutine 237 9.3 通道 238 9.3.1 通过通道实现同步 239 9.3.2 通过通道实现消息传递 241 9.3.3 有缓冲通道 242 9.3.4 从多个通道中选择 243 9.4 在Web应用中使用并发 246 9.4.1 创建马赛克图片 247 9.4.2 马赛克图片Web应用 250 9.4.3 并发版马赛克图片生成Web应用 253 9.5 小结 261 第10章 Go的部署 262 10.1 将应用部署到独立的 服务器 263 10.2 将应用部署到 Heroku 269 10.3 将应用部署到Google App Engine 272 10.4 将应用部署到 Docker 277 10.4.1 什么是Docker 277 10.4.2 安装Docker 278 10.4.3 Docker的理念与 组件 279 10.4.4 Docker化一个Go Web 应用 280 10.4.5 将Docker容器推送至 互联网 282 10.5 部署方法之间的 对比 285 10.6 小结 286 附录 安装和设置Go 287
《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一起,帮读者成功地构建跨平台的应用程序,节省Go语言开发Web的宝贵时间。有了这些针对真实问题的解决方案放在手边,大多数编程难题都会迎刃而解。, 在《Go Web编程》中,读者可以更加方便地找到各种编程问题的解决方案,内容涵盖文本处理、表单处理、Session管理、数据库交互、加/解密、国际化和标准化,以及程序的部署维护等运维方面的知识,最后还介绍了一个快速开发的框架帮助您迅速进入Go语言的Web开发。
用户评论
资源不错,谢谢分享,赞一个
完成的PDF, 非常赞,有书签!
中文版带书签,完整可看
还没下载完,不知道啥情况。
是新加坡版的,可以看,内容很全,有目录,值了
是实体书扫描版,更真实,只是里面的文字无法编辑了。不过只是参照,主要看英文的。
感觉还好,等我看段时间再说