Go:build web application 的中文翻译版本

目录

模块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
  • 使用最佳实践
  • 本章总结