logo
分类于: 编程语言 计算机基础

简介

Cloud Native Go: 构建基于Go和React的云原生Web应用与微服务

Cloud Native Go: 构建基于Go和React的云原生Web应用与微服务 6.8分

资源最后更新于 2020-10-23 15:37:09

作者:Kevin Hoffman;Dan Nemeth

译者:宋净超

出版社:电子工业出版社

出版日期:2017-01

ISBN:9787121321092

文件格式: pdf

标签: Go 云原生 计算机 云计算 golang 微服务 前端技术 之后下单的书

简介· · · · · ·

《Cloud Native Go:构建基于Go和React的云原生Web应用与微服务》旨在向开发人员展示如何构建适用于大流量、高并发场景下的云原生Web应用。《Cloud Native Go:构建基于Go和React的云原生Web应用与微服务》从搭建开发测试环境开始,逐步介绍使用Go语言构建微服务的方法,通过引入CI/CD流程和Wercker、Docker等工具将应用推送到云中。结合微服务构建中的后端服务、数据服务、事件溯源和CQRS模式、基于React和Flux的UI设计等,本书最后构建了一个基于Web的RPG游戏World of FluxCraft,可以作为使用Go构建云原生Web应用的参考,适合于云计算与Go语言编程从业者们阅读。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

1 云之道 1
云之道的优点 2
-- 遵循简单 2
-- 测试优先,测试一切 3
-- 尽早发布,频繁发布 5
-- 自动化一切 6
-- 建立服务生态系统 7
为什么使用Go 8
-- 简单 8
-- 开源 8
-- 易于自动化和IDE自由化 8
本章小结 9
2 开始 11
正确的工具 11
配置Git 12
-- 安装Homebrew 12
-- 安装Git客户端 13
-- 安装Mercurial和Bazaar 13
-- 创建GitHub账户 14
创建Go环境 14
-- 配置Go工作区 14
检查环境 15
本章小结 16
3 Go入门 17
建立Hello cloud 18
使用基本函数 19
使用结构体 22
介绍Go接口 25
向结构体添加方法 25
-- Go中的接口动态类型检查 26
使用第三方包 28
创建自有包 30
-- 导出函数和数据 31
-- 创建包 31
本章小结 34
4 持续交付 35
Docker介绍 36
-- 为什么要使用Docker 36
-- 安装Docker 36
-- 运行Docker镜像 38
与Wercker的持续集成 39
-- 持续集成的最佳实践 39
-- 为什么使用Wercker 40
-- 创建Wercker应用程序 41
-- 安装Wercker CLI 42
-- 创建Wercker配置文件 43
-- 使用Wercker进行构建 48
-- 部署到Docker Hub 50
读者练习:创建完整的开发管道 51
-- 高级挑战:集成第三方库 53
本章小结 53
5 在Go中构建微服务 55
设计API First的服务 55
-- 设计match API 56
-- 创建API Blueprint 56
-- 通过Apiary测试和发布文档 58
架设微服务 59
构建Test First的服务 62
-- 创建第一个失败测试 63
-- 测试Location Header 66
-- 壮丽的蒙太奇:迭代测试 67
在云端部署和运行 70
-- 创建PWS账户 70
-- 配置PCF开发环境 70
-- 提交到Cloud Foundry 71
本章小结 72
6 运用后端服务 75
设计服务系统 75
测试优先构建依赖服务 77
-- 构建fulfillment服务 78
-- 构建catalog服务 81
在服务之间共享结构化数据 87
-- 客户端引用服务端包 88
-- 客户端复制服务端结构 88
-- 客户端与服务端引用共享包 89
使用服务捆绑来外部化地址与元数据 90
服务发现 93
-- 动态服务发现 94
-- Netflix的服务发现系统Eureka 94
读者练习 97
-- 进阶操作 97
本章小结 98
7 构建数据服务 99
构建MongoDB存储库 100
-- 为什么选择MongoDB 100
-- 更新存储库模型 100
-- 通过Go来操作MongoDB 101
-- 以Test-First方式编写MongoDB存储库 102
集成测试一个Mongo-Backed服务 107
-- 集成临时MongoDB数据库 108
-- 编写一个集成测试 110
在云中运行 115
-- 后端服务的配置 115
本章小结 117
8 事件溯源和CQRS 119
现实源自事件 120
-- 幂等 121
-- 隔离 121
-- 可测试 122
-- 可再现,可恢复 123
-- 大数据 123
拥抱最终一致性 123
CQRS简介 124
事件溯源案例 126
-- 天气监测 126
-- 互联网汽车 127
-- 社交媒体消息处理 127
代码示例:管理无人机舰队 128
构建命令处理程序服务 129
-- RabbitMQ介绍 129
-- 构建命令处理器服务 133
构建事件处理器 135
-- 对事件处理器进行集成测试 140
构建查询处理程序服务 140
本章小结 141
9 使用Go构建Web应用程序 143
处理静态文件和asset 143
支持JavaScript客户端 145
使用服务端模板 148
处理表单 150
使用cookie和会话状态 151
-- 写入cookie 152
-- 读取cookie 153
使用Wercker构建和部署 153
本章小结 155
10 云安全 157
保护Web应用程序 157
-- 应用程序安全性选项 158
-- 设置Auth0账户 159
-- 构建一个OAuth安全的Web应用程序 160
-- 运行安全的Web应用程序 164
保护微服务 166
-- 客户端凭据模式概述 166
-- 使用客户端凭据保护微服务 168
-- 关于SSL的注意事项 169
隐私和数据安全 170
-- 黑客不能得到你没有的 170
读者练习 172
本章小结 173
11 使用WebSockets 175
WebSockets解析 175
-- WebSockets如何工作 176
-- WebSockets与服务器发送事件对比 177
-- 设计WebSockets服务器
 177
WebSockets的云原生适应性 178
使用消息服务创建WebSockets应用 180
-- 关于JavaScript框架 183
-- 运行WebSockets示例 183
本章小结 184
12 使用React构建Web视图 185
JavaScript的形势
 186
为什么选择React 186
-- 虚拟DOM 187
-- 组件组合 187
-- 响应式数据流 188
-- 集中焦点 188
-- 使用的便利性 189
React应用程序剖析 189
-- package.json文件 189
-- Webpack.config.js文件 191
-- .babelrc文件 191
-- 理解JSX和Webpack 191
-- React组件 192
构建简单的React应用程序 192
-- 不赞成的做法 199
测试React应用程序 200
进一步阅读 200
-- React网站 200
-- React书籍 201
-- 其他资料
 201
本章小结
 201
13 使用Flux构建可扩展的UI 203
Flux介绍 203
-- dispatcher 204
-- store 204
-- view 205
-- action 205
-- source 205
-- Flux的复杂性 205
创建Flux应用程序 206
本章小结 215
14 创建完整应用World of FluxCraft 217
World of FluxCraft介绍 218
架构概览 219
-- 独立扩展、版本控制和部署 221
-- 数据库不是集成层 221
-- 单向不可变数据流 221
Flux GUI 222
-- Go UI宿主服务 223
-- 玩家移动时序图 224
命令处理 225
事件处理 226
维持现实服务的状态 227
地图管理 227
自动验收测试 228
本章小结 230
15 结论 231
我们学到了什么 231
-- Go不是小众语言 231
-- 微服务应该有多“微” 232
-- 持续交付和部署 232
-- 测试一切 232
-- 尽早发布,频繁发布 232
-- 事件溯源、CQRS和更多首字母缩略词 233
下一步 233
附录A 云应用的故障排查 235