因为自己对Web开发比较感兴趣,所以最近抽空在写一本开源的书籍《Go Web编程》《Build Web Application with Golang》。写这本书不表示我能力很强,而是我愿意分享,和大家一起分享Go写Web应用的一些东西。
对于从PHP/Python/Ruby转过来的同学了解Go怎么写Web应用开发的对于从C/C++转过来的同学了解Web到底是怎么运行起来的 我一直认为知识是用来分享的,让更多的人分享自己拥有的一切知识这个才是人生最大的快乐。
这本书目前我放在Github上,我现在基本每天晚上抽空会写一些,时间有限、能力有限,所以希望更多的朋友参与到这个开源项目中来。
撰写方法
文件命名
每个章节建立一个md文件,如第11章的第3节,则建立11.3.md 11.3.md。
代码文件
代码文件置于src目录之下。每小节代码按目录存放。如第11章的第3节的代码保存于src/11.3/ src/11.3/目录下。在正文中按需要添加代码。
格式规范
正文
请参看已有章节的规范,要注意的是,每个章节在底部都需要有一个links节,包含“目录”,“上一节”和“下一节”的链接。
代码
代码要go fmt后提交。注释文件注明其所属章节。
如何编译
build.go依赖markdown的一个解析包,所以第一步先 go get github.com/russross/blackfriday
这样读者就可以把相应的Markdown文件编译成html文件,执行go build build.go,执行生成的文件,就会在底目录下生成相应的html文件。
1.Go环境配置
1.1. Go安装
1.2. GOPATH 与工作空间
1.3. Go 命令
1.4. Go开发工具
1.5. 小结
2.Go语言基础
2.1. 你好,Go
2.2. Go基础
2.3. 流程和函数
2.4. struct
2.5. 面向对象
2.6. interface
2.7. 并发
2.8. 小结
3.Web基础
3.1 web工作方式
3.2 Go搭建一个简单的web服务
3.3 Go如何使得web工作
3.4 Go的http包详解
3.5 小结
4.表单
4.1 处理表单的输入
4.2 验证表单的输入
4.3 预防跨站脚本
4.4 防止多次递交表单
4.5 处理文件上传
4.6 小结
5.访问数据库
5.1 database/sql接口
5.2 使用MySQL数据库
5.3 使用SQLite数据库
5.4 使用PostgreSQL数据库
5.5 使用beedb库进行ORM开发
5.6 NOSQL数据库操作
5.7 小结
6.session和数据存储
6.1 session和cookie
6.2 Go如何使用session
6.3 session存储
6.4 预防session劫持
6.5 小结
7.文本文件处理
7.1 XML处理
7.2 JSON处理
7.3 正则处理
7.4 模板处理
7.5 文件操作
7.6 字符串处理
7.7 小结
8.Web服务
8.1 Socket编程
8.2 WebSocket
8.3 REST
8.4 RPC
8.5 小结
9.安全与加密
9.1 预防CSRF攻击
9.2 确保输入过滤
9.3 避免XSS攻击
9.4 避免SQL注入
9.5 存储密码
9.6 加密和解密数据
9.7 小结
10.国际化和本地化
10.1 设置默认地区
10.2 本地化资源
10.3 国际化站点
10.4 小结
11.错误处理,调试和测试
11.1 错误处理
11.2 使用GDB调试
11.3 Go怎么写测试用例
11.4 小结
12.部署与维护
12.1 应用日志
12.2 网站错误处理
12.3 应用部署
12.4 备份和恢复
12.5 小结
13.如何设计一个Web框架
13.1 项目规划
13.2 自定义路由器设计
13.3 controller设计
13.4 日志和配置设计
13.5 实现博客的增删改
13.6 小结
14.扩展Web框架
14.1 静态文件支持
14.2 Session支持
14.3 表单支持
14.4 用户认证
14.5 多语言支持
14.6 pprof支持
14.7 小结
附录A 参考资料