的中文翻译版本
目录
模块1:学习Go的Web开发
第一章:介绍和安装Go环境
- 安装Go
- 构建一个项目
- 引入包
- 介绍net包
- 你好,Web
- 本章总结
第二章:服务和路由
- 直接的文件服务
- 基本路由
- 使用Gorilla实现更复杂的路由
- 转发请求
- 处理基本的错误
- 本章总结
第三章:连接数据
- 连接一个数据库
- 使用GUID美化URLs
- 处理404错误
- 总结
第四章:使用模板
- 介绍模板,上下文和可视化
- HTML模板和文本模板
- 渲染变量和安全性
- 使用逻辑和控制结构
- 本章总结
第五章:使用RESTful APIs进行前端集成
- 设置基本的API结构
- RESTful架构和最佳实践
- 创建我们的第一个API
- 实现安全
- 使用POST创建数据
- 使用PUT更改数据
- 本章总结
第六章:Session和Cookies
- 设置cookies
- 存储用户的信息
- 初始化一个服务端的session
- 本章总结
第七章:微服务和通讯
- 介绍引入微服务
- 使用微服务的利弊
- 理解微服务的内核
- 微服务之间的通讯
- 在线上放一个信息
- 从其他服务读取信息
- 本章总结
第八章:记录日志和测试
- 介绍Go中的日志
- 记录日志到IO中
- 格式化你的输出
- 使用panics和fatal errors
- 介绍Go中的测试
- 本章总结
第九章:安全
- 在任何地方使用HTTPS-实现TLS
- 防止SQL注入
- 防范XSS攻击
- 防范CSRF跨站攻击
- 加密cookies
- 使用安全中间件
- 本章总结
第十章:缓存,代理和提高性能
- 确定瓶颈
- 实现反向代理
- 实现缓存
- 实现HTTP/2
- 本章总结
模块2:Go 编程蓝皮书
第一章:使用Web Sockets构建的聊天应用
- 一个简单的Web服务器
- 在服务器上建模一个聊天室和客户端
- 构建一个使用HTML和JavaScript的聊天客户端
- 跟踪代码获取内在的流程
- 本章总结
第二章:增加权限
- 拦截所有请求
- 创建一个社交化的登录页面
- 动态路径
- OAuth2
- 把你的APP告诉权限提供者
- 实现额外的登录
- 本章总结
第三章:3个方法去实现文件缩略图
- 在权限服务器上的头像
- 实现Gravatar
- 上传头像图片
- 整合3种实现
- 本章总结
第四章:查询域名的命令行工具
- 命令行工具的管道设计
- 5个简单的程序
- 编写所有5个程序
- 本章总结
第五章:构建分布式系统,与复杂的数据交互
- 系统设计
- 安装环境
- 获取Twitter的投票
- 计算投票
- 运行我们的解决方案
- 本章总结
第六章:通过RESTful web数据接口对外提供数据和功能
- RESTful API 设计
- 在处理器间共享数据
- 包装处理函数
- 响应
- 理解请求
- 一个简单的主函数去处理我们的API
- 处理节点
- 一个web客户端去消费API
- 运行解决方案
- 本章总结
第七章:随机推荐Web服务
- 项目预览
- 用代码展示数据
- 构造随机推荐
- 本章总结
第八章:文件备份系统
- 解决方案设计
- 备份包
- 用户命令行工具
- 备份守护工具
- 测试解决方案
- 本章总结
模块3:精通Go的高并发
第一章:介绍Go并发编程
- 介绍协程
- 实现延迟控制机制
- 理解协程与协同
- 实现通道
- 关闭与协程
- 构建一个使用协程和通道的爬虫
- 本章总结
第二章:理解并发模型
- 理解协程如何工作
- 同步和异步协程
- 可视化并发
- RSS实战
- CSP的一点介绍
- Go和角色模型
- 面向对象
- 使用并发
- 管理线程
- 使用同步和互斥锁住数据
- 本章总结
第三章:开发并行策略
- 在复杂的并发中提高效率
- 使用竞争检查识别竞争条件
- 同步我们的并发操作
- 项目-多用户预约日历
- 一个多用户预约日历
- 风格说明
- 不变性说明
- 本章总结
第四章:应用中的数据完整性
- 深入理解互斥与同步
- 协程的代价
- 处理文件
- 更底层-实现C
- 分布式的Go
- 几种常见的一致性模型
- 使用memcached
- 本章总结
第五章:锁,区块和更好的通道
- 理解Go中的区块方法
- 清除协程
- 创建通道的通道
- Pprof-一个令人惊叹的工具
- 处理死锁和错误
- 本章总结
第六章:C10K-Go中的一个无锁的Web服务器
- 攻克C10K问题
- 创建我们的C10K Web服务器
- 提供页面服务
- 多线程和利用多核
- 探索我们的Web服务器
- 本章总结
第七章:性能与可扩展性
- Go的高性能
- 使用App Engine
- 分布式的Go
- 一些有用的库
- 内存维护
- 本章总结
第八章:并发程序架构
- 设计我们的并发程序
- 确定我们的需求
- 在Go中使用NoSQL作为数据存储
- 监控文件系统的变化
- 管理日志文件
- 处理配置文件
- 检测文件变化
- 备份文件
- 设计Web接口
- 还原文件的历史-命令行
- 检查服务器的健康度
- 本章总结
第九章:在Go中记录日志和测试并发
- 处理错误和记录日志
- 使用log4go包作为健壮的日志组件
- 使用runtime包作为细粒度的堆栈跟踪组件
- 本章总结
第十章:先进的并发和最佳实践
- 使用channels跨越基础
- 构建工作者
- 实现空通道区块
- 使用tomb实现对协程更多的细粒度的控制
- 使用通道定时
- 通过并发模式构建负载均衡器
- 选择单向和双向通道
- 使用泛型通道
- 使用Go的单元测试
- 使用Google的App Engine
- 使用最佳实践
- 本章总结