当前位置: 首页 > 大数据

高性能Scala 用Scala和函数式编程范式开发高性能软件pdf电子书

简介高性能Scala 用Scala和函数式编程范式开发高性能软件中文版怎么样? Scala 是一种表达能力非常强的语言,能够用非常简洁的代码表达丰富的业务含义。为了在生产上充分发挥Sc...
《高性能Scala 用Scala和函数式编程范式开发高性能软件》pdf电子书百度网盘下载
《高性能Scala 用Scala和函数式编程范式开发高性能软件》pdf电子书百度网盘下载


 

高性能Scala 用Scala和函数式编程范式开发高性能软件中文版怎么样?最新电子版百度云下载

Scala 是一种表达能力非常强的语言,能够用非常简洁的代码表达丰富的业务含义。为了在生产上充分发挥Scala 的能力,除了掌握其简洁的语法外,理解Scala 在性能上的特点和优化点也是非常重要的事。

《高性能Scala》通过解析一个金融领域高频交易的实际例子,引领读者掌握如何对Scala 程序(以及一般JVM 程序)进行基准测试和性能分析,从而找出瓶颈。随后作者介绍了Scala 语言、Scala 标准库(尤其是集合库)以及Scalaz 库里解决相应瓶颈的各种技巧。并行计算和分布式架构作为性能调优的重要手段,更是《高性能Scala》的重中之重,作者对Scala 的并行计算和分布式架构中存在的问题都进行了充分的讨论和讲解,非常值得学习。

《高性能Scala》适合已经具有Scala 编程基础、能够较好地使用Scala 风格代码实现业务功能的程序员,作为在性能优化方面的深造阅读资料。


作者简介:
Vincent Theron是一个拥有 9年工作经验的专业软件工程师。他在 6年前发现了 Scala并将之应用于构建高伸缩性、高可靠的应用。他在多个行业设计软件来解决商业上的问题,包括在线博彩、金融交易,以及昀近的广告行业。在巴黎东部 Marne-la-Vallée,Vincent获得了计算机科学及软件工程硕士学位。他和妻子、孩子以及两只毛茸茸的猫一起在波士顿区域生活。 感谢在 Packt出版社的每一个人,是你们的努力工作才能让这本书面世。感谢柴塔尼亚-耐尔,带着这个出书项目找到我。感谢 Nikhil Borkar,一路上给我提供指引。感谢 Michael Diamant,我的合作作者,我的同事,同时也是朋友,感谢你给这本书带来的知识以及充满灵感的每一天。感谢我的父母,感谢你们的爱和支持,以及你们给我买的第一台电脑。昀后,感谢我的妻子,Julie,感... Vincent Theron是一个拥有 9年工作经验的专业软件工程师。他在 6年前发现了 Scala并将之应用于构建高伸缩性、高可靠的应用。他在多个行业设计软件来解决商业上的问题,包括在线博彩、金融交易,以及昀近的广告行业。在巴黎东部 Marne-la-Vallée,Vincent获得了计算机科学及软件工程硕士学位。他和妻子、孩子以及两只毛茸茸的猫一起在波士顿区域生活。 感谢在 Packt出版社的每一个人,是你们的努力工作才能让这本书面世。感谢柴塔尼亚-耐尔,带着这个出书项目找到我。感谢 Nikhil Borkar,一路上给我提供指引。感谢 Michael Diamant,我的合作作者,我的同事,同时也是朋友,感谢你给这本书带来的知识以及充满灵感的每一天。感谢我的父母,感谢你们的爱和支持,以及你们给我买的第一台电脑。昀后,感谢我的妻子,Julie,感谢你一直的鼓励,感谢你给了我一个这么绝妙的儿子。 Michael Diamant是一个专业的软件工程师,热衷于函数式编程。他在 2009年开始自己的事业,专注于 Java和面向对象的编程范式。在 2011年学习 Scala之后,他专注于使用 Scala和函数式编程范式来构建金融交易和广告领域的软件系统。迈克尔毕业于伍斯特理工学院,居住在波士顿区域。 我能在这本书里面分享的知识来源于他人在我一生中给予的支持和教导。我想要特别感谢我的同事文森特,感谢你推动我付出这些努力,感谢所有在一起的时间,让我们可以发展这些书中的想法。我所有的现在和之前的同事都帮助我提高了工程技术,没有你们慷慨地分享你们的所学,我将不可能编写这本书。除了 Vincent,我还想特别提及一些我觉得尤其想感谢的同事:Dave Stevens、Gary Malouf、Eugene Kolnick和 Johnny Everson。感谢我的父母和兄弟,你们支持我,将我培养成现在的我。我尤其想深深地感谢我的女友 Anna在整个写书过程中给予我的支持。昀后,同样的感谢送给 Packt出版社,在你们的帮助下我们写了我们的第一本书。 关于审阅者 Nermin Šrifović是一个从 2009年开始就热衷 Scala的人,他从 2011年开始在专业领域应用 Scala。在大部分工作生涯中,他专注于使用 JVM技术构建后端平台。昀近,作为 Pingup的研发总监,他正在一个本地化服务预订系统上领导开发工作。 Nermin是一个哈佛大学延伸教育学院的导师,他在那里与人合作教授 Scala并行编程的课程,他还在多个学术会议上发表了演讲。 作为一个 Scala社区的活跃会员,Nermin组织了波士顿区域的 Scala爱好者群,同时他也是中东 Scala座谈基金会一员。他是 Scala Puzzlers一书的合作作者,Scala解惑网站的合作创建者。 Nermin拥有康奈尔大学计算机科学硕士学位,他感兴趣的领域包括分布式系统及伴随着的并行,响应式和函数式编程。

目录:前言 iX
1 高性能之路 1
-性能的定义 2
- - 高性能软件 2
- - 硬件资源 3
- - 时延和吞吐率 4
- - 瓶颈 5
-性能总结 5
- - 平均数的问题 6
- - 百分位数来救场 8
-指标搜集 9
- - 用基准数据(benchmark)来衡量性能. 9
- - 通过Profiling 来定位瓶颈 10
- - 结合基准测试和profiling 10
-案例分析 11
-工具链 11
-小结 12
2 在JVM 上度量性能 13
-金融领域一瞥 13
-意外的市场波动毁掉了利润 16
-重现故障 17
- - 吞吐量基准测试 17
- - 时延基准测试 20
- - 定位瓶颈 25
- - 微基准取得大进步 42
-小结 49
3 释放Scala 的性能 51
-值类 52
- - 字节码表示 52
- - 性能考虑 54
- - 标记类型——值类的一种替代品 55
-专门化 57
字节码表示 58
性能考虑 60
-元组 65
- - 字节码表示 65
- - 性能考虑 66
-模式匹配 68
- - 字节码表示 68
- - 性能考虑 70
-尾递归 75
- - 字节码表示 78
- - 性能考虑 79
-Option 数据类型 83
- - 字节码表示 83
- - 性能考虑 84
-案例研究——性能更高的Option 85
-小结 89
4 探索集合API 91
-高吞吐量系统 - 改进指令簿 91
- - 理解过去实现上的折中 - list 实现 92
- - 当前的指令簿 - queue 实现 101
- - 通过惰性计算来提升取消操作的性能 104
-历史数据分析 114
- - 滞后时序收益率(lagged time series returns) 114
- - 处理多个收益率序列 122
-小结 127
5 惰性集合及事件溯源 129
-提升用户报表生成速度 129
- - 深入报表生成代码 130
- - 使用视图提速报表生成 133
- - 视图的注意事项 141
- - 打包报表生成结果 145
-重新思考报表架构 146
- - Stream 概览 149
- - 事件变换 152
- - 构建事件源管道 158
- - 马尔可夫流式链 162
- - 流的注意事项 166
-小结 169
6 Scala 的并发 171
-并行回测(backtesting)策略 171
- - 探索Future 173
- - Future 和crazy ideas 177
- - Future 使用时的考量 179
- - 提交执行妨碍性能 185
-处理阻塞调用和回调 188
- - ExecutionContext 和阻塞调用 189
- - 用Promise 转化回调 193
-受命进一步提升回测性能 196
- - 介绍Scalaz Task 197
- - 用Task 为交易日模拟建模 204
- - 总结回测 209
-小结 210
7 高性能架构 211
-分布式自动化交易员(Distributed automated traders) 211
- - 分布式架构概述 212
- - 第一次尝试分布式自动化交易系统 212
- - 引入CRDT 214
- - CRDT 和自动化交易系统 219
- - 当余额不足时 220
-免费交易策略性能提升 222
- - 为交易策略做基准测试 222
- - 无界队列(unbounded queue)的危险 225
- - 应用背压(back pressure) 226
- - 应用负载控制策略 227
- - Free monad 233
-小结 240

点击下载