具体描述
作者简介
作者:[美]杰森·史特林贝尔(Jason Strimpel)、马克西姆·纳吉姆(Maxime Najim) 译者:张俊达
Jason Strimpel,软件工程师,拥有十余年Web开发经验。目前任职于沃尔玛实验室,负责支持UI应用的软件开发。
Maxime Najim,沃尔玛实验室软件架构师,全栈Web开发者。曾任职于Netflix、苹果和Yahoo!等公司,在创建大型、伸缩性强、可靠的Web应用方面具有丰富经验。
目录信息
第一部分 简介与关键概念
第1章 为什么需要同构JavaScript 2
1.1 定义同构JavaScript 3
1.2 评价其他的Web应用架构方案 3
1.2.1 状况的改变 3
1.2.2 工程上的关注点 4
1.2.3 可选架构 4
1.3 附加说明:何时不使用同构 10
1.4 小结 11
第2章 同构JavaScript图谱 12
2.1 共享视图 13
2.1.1 共享模板 14
2.1.2 共享视图逻辑 14
2.2 共享路由 14
2.3 共享模型 15
2.4 小结 15
第3章 同构JavaScript分类 16
3.1 与环境无关的代码 18
3.2 为每个特定环境提供shim 19
3.3 小结 20
第4章 超越服务器端的渲染 21
4.1 实时Web应用 22
4.1.1 同构API 23
4.1.2 双向数据同步 23
4.1.3 在服务器端进行客户端仿真 23
4.2 小结 24
第二部分 构建第一个应用
第5章 起步 26
5.1 Node的安装和运行 27
5.1.1 从源码安装 27
5.1.2 与Node REPL交互 28
5.1.3 使用npm 管理项目 28
5.2 建立应用项目 29
5.2.1 初始化项目 29
5.2.2 安装应用服务器 31
5.2.3 编写下一代的JavaScript(ES6) 32
5.2.4 将ES6编译为ES5 34
5.2.5 建立开发流程 35
5.3 小结 39
第6 章 提供第一份HTML文档 40
6.1 提供HTML模板 40
6.2 使用路径参数与查询参数 42
6.3 小结 45
第7章 设计应用架构 46
7.1 理解问题 47
7.2 响应用户请求 47
7.2.1 创建Application类 47
7.2.2 创建控制器 49
7.2.3 构造控制器实例 50
7.2.4 拓展控制器 52
7.2.5 改进响应流 53
7.3 小结 57
第8章 将应用传输到客户端 58
8.1 打包应用的客户端版本 58
8.1.1 选择打包库 58
8.1.2 创建打包任务 59
8.1.3 添加客户端实现 61
8.2 响应用户请求 62
8.2.1 利用History API 63
8.2.2 响应并调用History API 63
8.3 客户端路由 67
8.4 组织代码 73
8.5 小结 75
第9章 创建常用的抽象 76
9.1 何时抽象,为什么需要抽象 76
9.2 获取和设置cookie 77
9.3 重定向请求 84
9.4 小结 88
第10章 序列化、反序列化和添加事件监听 89
10.1 序列化数据 90
10.2 创建控制器实例 92
10.3 反序列化数据 93
10.4 添加DOM事件处理器 94
10.5 验证rehydration过程 96
10.6 小结 98
第11章 结束感言 99
11.1 生产准备 99
11.2 衡量架构 99
11.3 小结 102
第三部分 现实世界的解决方案
第12章 沃尔玛实验室的同构React.js方案 104
12.1 物种起源 104
12.1.1 问题 105
12.1.2 解决方案 106
12.2 React模板与模式 106
12.2.1 在服务器端渲染 106
12.2.2 在客户端恢复 110
12.3 沃尔玛采用的方法 112
12.4 克服挑战 112
12.4.1 首字节时间 112
12.4.2 组件渲染优化 113
12.4.3 性能提升 117
12.5 下一步 119
12.6 感谢 120
12.7 补充说明 120
第13章 全栈Angular 121
13.1 同构JavaScript:Web应用的未来 122
13.2 同构Angular 1 122
13.3 Angular 2服务器端渲染 124
13.3.1 服务器端渲染的用例 124
13.3.2 Web 应用脱节 126
13.3.3 Angular 2渲染架构 127
13.3.4 Preboot 128
13.4 Angular Universal 128
13.5 GetHuman.com 130
13.6 补充说明 131
第14章 Brisket 132
14.1 问题 132
14.2 两全其美 134
14.3 早期Brisket 135
14.4 成为现实 136
14.5 代码自由 136
14.6 跨环境一致的API 139
14.6.1 模型/ 集合 140
14.6.2 视图生命周期 140
14.6.3 子视图管理 141
14.6.4 跨环境使用的工具 141
14.7 前进之路 142
14.7.1 ClientApp与ServerApp 142
14.7.2 布局模板 142
14.7.3 其他经验教训 143
14.8 Brisket的下一步? 143
14.9 补充说明 144
第15章 Colony案例研究:脱离Node创建同构应用 145
15.1 问题 145
15.2 模板 146
15.3 数据 147
15.4 转译视图模型 148
15.5 布局 150
15.6 页面生成器 152
15.7 前端SPA 152
15.8 最终架构 153
15.9 后续计划 154
第16 章 结语 155
16.1 设计模式、Flux和同构JavaScript家族 155
16.1.1 永远相信JavaScrip 156
16.1.2 命名与理解 157
关于作者 159
关于封面 159
· · · · · · (收起)
读后感
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
用户评价
这本书拿到手时,我就被它那朴实无华的封面设计吸引住了。我一直以来都在寻找一本能够深入浅出地讲解复杂概念的开发书籍,而这本书恰恰满足了我的期望。作者没有过多地卖弄晦涩难懂的理论,而是直接切入主题,用大量的实例和清晰的图示来引导读者理解其中的奥秘。特别是关于状态管理和数据流的部分,写得尤为精彩,让人豁然开朗。读完之后,我感觉自己对现代前端开发的理解又上了一个新的台阶。那些我之前觉得难以掌握的模式和实践,现在都变得清晰明了。这本书不仅仅是一本技术手册,更像是一位经验丰富的导师在耳边循循善诱,让我能够更自信地去应对实际项目中的挑战。我尤其欣赏作者在代码示例中的严谨性,每一个例子都经过了深思熟虑,不仅仅是功能的展示,更是思想的传递。
初读此书,我本以为会遇到那种堆砌着API文档和枯燥代码片段的平庸之作,但事实证明我的预判完全错误了。作者以一种近乎诗意的笔触,勾勒出了构建现代应用所需的宏伟蓝图。书中对于模块化思想的阐述,尤其引人入胜,它让我开始以一种全新的、更加结构化的方式来思考代码的组织方式。其中关于错误处理策略的部分,描述得细致入微,作者甚至考虑到了边缘案例中那些容易被忽略的细节,体现了极高的专业素养。读到后面,我甚至有些不舍,生怕一眨眼就错过了哪个精妙的见解。这本书的厚度令人望而生畏,但阅读的流畅性却让人爱不释手,是那种能够真正改变你思维定势的佳作。
我对技术书籍的评价通常比较苛刻,但这本书真的让我有些激动。它没有陷入那种故作高深的学术腔调,而是用一种非常接地气、充满活力的语言风格来阐述复杂的编程范式。那种感觉就像是跟一个老朋友在深夜的咖啡馆里探讨最新的技术趋势,轻松却又不失深度。书中对“约定优于配置”这一理念的阐述,简直是教科书级别的范例,它帮助我清晰地界定了何时应该坚持规范,何时又需要灵活变通。更难能可贵的是,作者在叙述过程中,巧妙地穿插了一些行业内的“内幕”和“陷阱”,这些经验之谈对于初入职场的开发者来说,无疑是无价之宝。这本书的价值,远超其标价,强烈推荐给所有追求卓越的工程师。
说实话,这本书的阅读体验简直是一场视觉和智力的双重盛宴。装帧设计非常考究,纸张的触感和印刷的质量都达到了极高的水准,这在如今的纸质技术书籍中实属难得。内容编排上,逻辑链条环环相扣,从基础概念的铺陈到高级特性的剖析,过渡得如同行云流水般自然。我发现自己常常在某一小节停下来,反复咀嚼作者的措辞,试图捕捉其中蕴含的深层含义。书中对性能优化的探讨,给我的触动尤为深刻,它不仅仅罗列了优化手段,更深入剖析了背后的运行机制,让我开始重新审视自己以往的编码习惯。读完后,我立刻尝试将书中的思想应用到我手头的一个遗留项目中,结果令人惊喜,代码的响应速度和可维护性都有了显著的提升。这绝对是一本值得反复翻阅的案头宝典。
这本书的排版设计极为用心,字体选择和行距的把握恰到好处,长时间阅读下来眼睛也不会感到疲惫。内容上,它没有停留在对现有框架的表面介绍,而是深挖了底层原理,这种对“为什么”的探究精神,正是区分优秀开发者和平庸开发者的关键。作者对异步编程模型剖析得淋漓尽致,那种层层剥茧、抽丝剥茧的讲解方式,彻底消除了我过去对该领域的一些模糊认识。我尤其欣赏书中对测试驱动开发(TDD)原则的坚持和应用,它不是空喊口号,而是将测试融入到整个开发流程的范例中进行展示。这本书绝对不适合那些只想“快速学会”的读者,它要求你投入时间和思考,但你付出的每一分努力,都会得到丰厚的回报。
我觉得这本书要多读几遍,不过先还回去了
英文的书翻译成中文已经算是落后了,现在再来看就更落后了。当然概念性的东西和关注点还是那些,技术实现则只能看个思路,毕竟示例写的也只是一个玩具而已。
英文的书翻译成中文已经算是落后了,现在再来看就更落后了。当然概念性的东西和关注点还是那些,技术实现则只能看个思路,毕竟示例写的也只是一个玩具而已。
我觉得这本书要多读几遍,不过先还回去了
虽然是17出版的书籍,现在(2020)里面所用的技术库已经有较大升级改动。期待2.0新版。虽然seo和服务端渲染已经慢慢在改善,但是在其它方面还是有很多可利用的地方,比如前后端定义相同的路由、模型、验证等。前后端使用同一套代码本来就有很大的吸引力。