Go Web编程
出版信息
谢孟军 / 电子工业出版社 / 2013-6-1 / 65.00元
内容简介
《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一起,帮读者成功地构建跨平台的应用程序,节省Go语言开发Web的宝贵时间。有了这些针对真实问题的解决方案放在手边,大多数编程难题都会迎刃而解。
在《Go Web编程》中,读者可以更加方便地找到各种编程问题的解决方案,内容涵盖文本处理、表单处理、Session管理、数据库交互、加/解密、国际化和标准化,以及程序的部署维护等运维方面的知识,最后还介绍了一个快速开发的框架帮助您迅速进入Go语言的Web开发。
作者简介
谢孟军,网名ASTA谢,现就职于盛大云,高级研究员,技术经理,主要从事盛大云分发的系统研发工作,努力为盛大游戏、盛大文学、酷六等提供更好的CDN服务。热爱技术,尤其关注实现服务器端高性能、高可用等相关技术。开发了beego、beedb等各类基于Go语言的开源框架和库,致力于Go语言的推广和研究。
目录
第1章 GO语言环境配置
1.1 Go语言安装
Go语言的三种安装方式
Go语言源码安装
Go语言标准包安装
第三方工具安装
1.2 GOPATH与工作空间
GOPATH设置
应用目录结构
编译应用
获取远程包
程序的整体结构
1.3 Go语言命令
Go语言命令
go build
go clean
go fmt
go get
go install
go test
go doc
其他命令
1.4 Go语言开发工具
LiteIDE
Sublime Text
Vim
Emacs
Eclipse
IntelliJ IDEA
1.5 总结
第2章 Go语言基础
2.1 你好,Go
程序
详解
小结
2.2 Go语言基础
定义变量
常量
内置基础类型
一些技巧
array、slice、map
2.3 流程和函数
流程控制
函数
2.4 struct类型
struct
2.5 面向对象
method
2.6 interface
interface
2.7 并发
goroutine
channels
Buffered Channels
Range和Close
Select
超时
runtime goroutine
2.8 总结
第3章 Web基础
3.1 Web工作方式
URL和DNS解析
HTTP协议详解
请求实例
3.2 GO语言搭建一个Web服务器
http包建立Web服务器
3.3 Go语言如何使Web工作
Web工作方式的几个概念
分析http包运行机制
3.4 Go语言的http包详解
Conn的goroutine
ServeMux的自定义
Go语言代码的执行流程
3.5 总结
第4章 表单
4.1 处理表单的输入
4.2 验证表单的输入
必填字段
数字
中文
英文
电子邮件地址
手机号码
下拉菜单
单选按钮
复选框
日期和时间
身份证号码
4.3 预防跨站脚本
4.4 防止多次递交表单
4.5 处理文件上传
客户端上传文件
4.6 总结
第5章 访问数据库
5.1 database/sql接口
sql.Register
driver.Driver
driver.Conn
driver.Stmt
driver.Tx
driver.Execer
driver.Result
driver.Rows
driver.RowsAffected
driver.Value
driver.ValueConverter
driver.Valuer
database/sql
5.2 使用MySQL数据库
MySQL驱动
示例代码
5.3 使用SQLite数据库
驱动
实例代码
5.4 使用PostgreSQL数据库
驱动
实例代码
5.5 使用beedb库进行ORM开发
安装
如何初始化
插入数据
更新数据
查询数据
删除数据
关联查询
Group By和Having
进一步的发展
5.6 NOSQL数据库操作
redis
MongoDB
5.7 总结
第6章 Session和数据存储
6.1 Session和Cookie
Cookie
Session
小结
6.2 Go语言如何使用Session
Session创建过程
Go语言实现Session管理
6.3 Session存储
6.4 预防Session劫持
Session劫持过程
Session劫持防范
6.5 总结
第7章 文本处理
7.1 XML处理
解析XML
输出XML
7.2 JSON处理
解析JSON
生成JSON
7.3 正则处理
通过正则判断是否匹配
通过正则获取内容
7.4 模板处理
什么是模板
Go语言模板使用
模板中如何插入数据
Must操作
嵌套模板
小结
7.5 文件操作
目录操作
文件操作
7.6 字符串处理
字符串操作
字符串转换
7.7 总结
第8章 Web服务
8.1 Socket编程
什么是Socket
Socket如何通信
Socket基础知识
TCP Socket
UDP Socket
小结
8.2 WebSocket
WebSocket原理
Go语言实现WebSocket
8.3 REST
什么是REST
RESTful的实现
小结
8.4 RPC
RPC工作原理
Go RPC
小结
8.5 总结
第9章 安全与加密
9.1 预防CSRF攻击
什么是CSRF
CSRF的原理
如何预防CSRF
总结
9.2 确保输入过滤
识别数据
过滤数据
区分过滤数据
小结
9.3 避免XSS攻击
什么是XSS
XSS的原理
如何预防XSS
小结
9.4 避免SQL注入
什么是SQL注入
SQL注入实例
如何预防SQL注入
小结
9.5 存储密码
普通方案
进阶方案
专家方案
总结
9.6 加密和解密数据
base64加解密
高级加解密
小结
9.7 总结
第10章 国际化和本地化
10.1 设置默认地区
什么是Locale
设置Locale
小结
10.2 本地化资源
本地化文本信息
本地化日期和时间
本地化货币值
本地化视图和资源
小结
10.3 国际化站点
管理多个本地包
自动加载本地包
template mapfunc
小结
10.4 总结
第11章 错误处理,调试和测试
11.1 错误处理
Error类型
自定义error
错误处理
小结
11.2 使用GDB调试
GDB调试简介
常用命令
调试过程
小结
11.3 Go语言怎么写测试用例
如何编写测试用例
如何编写压力测试
小结
11.4 总结
第12章 部署与维护
12.1 应用日志
seelog介绍
基于seelog的自定义日志处理
发生错误发送邮件
使用应用日志
小结
12.2 网站错误处理
错误处理的目标
如何处理错误
如何处理异常
小结
12.3 应用部署
daemon
Supervisord
小结
12.4 备份和恢复
应用备份
MySQL备份
MySQL恢复
redis备份
redis恢复
小结
12.5 总结
第13章 如何设计一个Web框架
13.1 项目规划
gopath以及项目设置
应用程序流程图
目录结构
框架设计
总结
13.2 自定义路由器设计
HTTP路由
默认的路由实现
beego框架路由实现
13.4 日志和配置设计
日志和配置的重要性
beego的日志设计
beego的配置设计
应用指南
13.5 实现博客的增删改
博客目录
博客路由
数据库结构
控制器
model层
view层
13.6 总结
第14章 扩展Web框架
14.1 静态文件支持
beego静态文件实现和设置
Bootstrap集成
14.2 Session支持
Session集成
Session使用
14.3 表单及验证支持
表单和验证
表单类型
表单验证
14.4 用户认证
HTTP Basic和HTTP Digest认证
oauth和oauth2的认证
自定义认证
14.5 多语言支持
i18n集成
多语言开发使用
14.6 pprof支持
beego支持pprof 使用入门
14.7 小结
附录A 参考资料