反应式Web应用开发 9787115489548 (奥地利)曼努埃尔·伯恩哈特(Manuel Bernhardt) 人民邮电出版社
当天发货,全新正版书。新华书店集团直发,凡是套装书,价格异常时,请咨询后下单。
¥
51.5
7.5折
¥
69
全新
仅1件
作者(奥地利)曼努埃尔·伯恩哈特(Manuel Bernhardt)
出版社人民邮电出版社
ISBN9787115489548
出版时间2018-11
装帧平装
开本16开
定价69元
货号1201770109
上书时间2024-04-24
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
曼努埃尔·伯恩哈特,是一个很有热情的工程师、作者、演讲者和咨询师,对构建和运维网络应用方面的科学抱有强烈的兴趣。从2008年开始,他指导和训练企业团队将应用转移到分布式计算架构。很近几年,他关注的是反应式应用架构的生产型系统,在这个过程中,主要使用Scala、Play框架和Akka。
Manuel喜欢旅行,经常会在靠前会议上演讲。他住在维也纳,并且是维也纳Scala用户组的联合组织者。除了思考、谈论和摆弄计算机,他喜欢将时光用在陪伴家人上,和他们一起跑步、潜水和阅读。
目录
章你在谈论反应式编程吗3
1.1反应式的背景4
1.1.1反应式的起源4
1.1.2反应式宣言5
1.1.3反应式编程6
1.1.4反应式技术的涌现7
1.2重新思考计算资源的利用8
1.2.1基于线程与基于事件的Web应用服务器8
1.2.2开发适合多核架构的Web应用11
1.2.3水平应用架构14
1.3将故障处理作为考虑因素16
1.3.1故障是无法避免的17
1.3.2构建应用时,要充分考虑到故障19
1.3.3处理负载21
1.4小结24
第2章个反应式Web应用25
2.1创建并运行新工程25
2.2连接Twitter的流式API28
2.2.1获取到TwitterAPI的连接凭证28
2.2.2解决OAuth认证的一个bug28
2.2.3通过TwitterAPI获取流式数据29
2.2.4异步转换Twitter流33
2.3使用WebSocket将tweet以流的方式发送到客户端36
2.3.1创建Actor37
2.3.2搭建WebSocket连接并与之交互38
2.3.3发送tweet到WebSocket40
2.4让应用有弹性可扩展42
2.4.1让客户端变得有弹性42
2.4.2扩展44
2.5小结46
第3章函数式编程基础47
3.1函数式编程概述47
3.2不可变性48
3.2.1可变状态的谬误48
3.2.2将不可变值视为现实的快照49
3.2.3面向表达式编程50
3.3函数52
3.3.1面向对象编程语言中的函数52
3.3.2函数作为类的值53
3.3.3传递行为53
3.3.4组合函数54
3.3.5函数的大小55
3.4操作不可变集合57
3.4.1使用转换来替换循环57
3.4.2用来操作集合的高阶函数58
3.5转换到声明式编程风格64
3.5.1不要对Option使用get方法64
3.5.2只使用不可变值和数据结构65
3.5.3致力于编写小巧精炼的函数65
3.5.4迭代式地改善函数式编程风格65
3.6小结66
第4章快速掌握Play框架67
4.1Play应用的结构和配置68
4.1.1简单词汇教师应用简介68
4.1.2创建一个最小的Play应用脚手架68
4.1.3构建项目71
4.2请求处理72
4.2.1请求的生命周期73
4.2.2请求路由76
4.2.3控制器、Action和结果80
4.2.4WebSocket86
4.2.5调整默认的请求处理管道89
4.3小结93
第二部分核心概念
第5章Future97
5.1使用Future97
5.1.1Future基础98
5.1.2Play中的Future104
5.1.3测试Future111
5.2用Future来设计异步业务113
5.2.1识别可并行的元素114
5.2.2组合服务的Future116
5.2.3错误的传播与处理121
5.3小结125
第6章Actor127
6.1Actor的基本原理128
6.1.1简单的Twitter分析服务128
6.1.2搭建基础框架:Actor及其子Actor129
6.2任其崩溃—监管与恢复142
6.2.1可靠的存储142
6.2.2任其崩溃145
6.2.3观察Actor的消亡并将其复活146
6.3系统对负载的反应,实现监控并预防服务过载147
6.3.1流控制消息148
6.3.2具有优先级的消息151
6.3.3断路器153
6.4小结155
第7章处理状态157
7.1在无状态的PlayWeb应用中使用状态158
7.1.1数据库159
7.1.2使用Playsession保持客户端状态170
7.1.3使用分布式缓存保持服务端状态171
7.2命令查询职责分离与事件溯源173
7.2.1TwitterSMS服务173
7.2.2搭建SMS网关177
7.2.3通过持久化Actor编写事件流179
7.2.4配置Akka持久化,写入到MongoDB中182
7.2.5处理传入的命令:订阅用户在Twitter被提及的通知183
7.2.6将事件流转换为关系模型185
7.2.7查询关系模型188
7.2.8关于最终一致性190
7.3小结190
第8章反应式用户界面191
8.1集成Scala.js和Play192
8.1.1应用结构192
8.1.2搭建构建流程193
8.1.3创建简单的Scala.js应用195
8.2集成Scala.js和AngularJS196
8.2.1搭建AngularJS绑定196
8.2.2创建AngularJS应用197
8.2.3初始化AngularJSdashboard模块及其依赖199
8.2.4初始化Dashboard控制器199
8.2.5创建视图片段200
8.2.6在HTML中加载AngularJS应用200
8.3使用Scala.js集成已有的JavaScript库201
8.3.1将已有的JavaScript库包装为AngularJS服务201
8.3.2创建为图表获取数据的服务203
8.3.3使用Chart.js展现指标数据205
8.4处理客户端故障207
8.4.1借助测试防止出现缺陷207
8.4.2探测WebSocket连接故障209
8.4.3通知用户209
8.4.4监控客户端错误211
8.5小结211
第三部分不错话题
第9章反应式流215
9.1为什么要有反应式流215
9.1.1带有非阻塞回压功能的流216
9.1.2操作异步流217
9.2AkkaStreams简介218
9.2.1核心原理218
9.2.2操作流式的tweet数据219
9.3小结230
0章部署反应式Play应用231
10.1为Play应用的生产环境部署做好准备232
10.1.1创建用于部署的简单应用232
10.1.2使用Selenium编写和运行测试234
10.1.3为应用的生产部署做好准备236
10.2搭建持续集成环境239
10.2.1在Docker中运行Jenkins239
10.2.2通过配置Jenkins来构建应用241
10.3部署应用243
10.3.1部署到CleverCloud243
10.3.2部署到自己的服务器上245
10.3.3该选择哪种部署模式248
10.4小结248
1章测试反应式Web应用249
11.1测试反应式特质249
11.1.1测试响应性250
11.1.2测试弹性250
11.1.3测试适应性251
11.1.4在哪里进行测试?251
11.2测试单个反应式组件251
11.2.1测试单个组件的响应性252
11.2.2测试单个组件的弹性256
11.3测试整个反应式应用259
11.3.1创建生成随机数的简单应用259
11.3.2使用Gatling测试弹性261
11.3.3使用BeeswithMachineGuns测试扩展性265
11.4小结270
附录A安装Play框架271
附录B推荐读物275
附录C推荐资源277
内容摘要
本书以Play框架为例阐述了反应式编程的理念以及在实际的编码中实践这些理念的方法,以实现更加灵活和高性能的Web应用程序。
本书共11章,分成三大部分。靠前部分(章到第4章)主要介绍了反应式编程的基础理念,并讲解了函数式编程和Play框架的基础知识。第二部分(第5章到第8章)介绍了反应式Web编程的核心概念,如Future和Actor,还讲解了将反应式的理念应用到用户界面层的方法。第三部分(第9章到1章)介绍了反应式Web编程的主题,涵盖反应式流以及应用程序的部署和测试等内容。
本书适合Java Web程序开发人员和架构师阅读,尤其适合希望借助反应式技术提升系统性能的开发人员参考,还可以作为Java编程人员学习函数式编程理念的进阶读物。
主编推荐
— 没有更多了 —
以下为对购买帮助不大的评价