《Cloud Native Go 构建基于Go和React的云原生Web应用与微服务》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)凯文·霍夫曼(KevinHoffman),丹·内梅斯(DanNemeth)著;宋净超等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:9787121321092
  • 页数:238 页
图书介绍:Cloud Native Go旨在向Go语言开发人员展示如何构建大规模云基础应用。本书从基础的Go入门,带领大家构建了一个完整的应用:World of FluxCraft。本书由浅入深,通过具体案例对组件的使用方法进行了清晰的说明。从基础的程序开发到服务和架构设计,本书以连贯的场景和细致的代码示例引导读者学习Go语言应用开发,涉及很完整的架构和业务设计,是一本详细的开发者手册。

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