基本信息
- 作者: (加)Adam Boduch (亚当·博达哈)
- 译者: 奇舞团
- 出版社:电子工业出版社
- ISBN:9787121307065
- 上架时间:2017-2-7
- 出版日期:2017 年1月
- 开本:16开
- 页码:236
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 网络编程 > javascript
编辑推荐
是否感觉自己发开的应用像建立在浮沙之上,是否需要创建一年以上不能重写的应用程序?本书会给出扩展性场景和真实示例,指导你构建经久不衰的应用程序,并从可寻址性、可测试性和组件组合等角度向你展示如何处理可扩展性。大规模框架需要能够"缩小"的能力、从出错组件恢复的能力,以及"扩大"并管理新功能或更多用户的能力。在此之上,你可以用任何JavaScript工具集构建起可扩展的应用。
√ 识别、评估影响应用程序可扩展性的外部影响因素。
√ 在大型JavaScript应用程序中构建组件。
√ 探索可扩展的组件间通信技术。
√ 定制、配置组件满足扩展需求。
√ 在各种规模和复杂性的情况下,确保应用程序有最好的用户体验。
√ 创建在各种环境中都可移植、可测试的应用。
√ 通过删除或重构组件来进行架构方面的权衡。
√ 设计以可扩展方式失败的组件。
内容简介
作译者
Adam现居住于多伦多,是 Virtustream的一名高级软件工程师。
关于审校者
August N. Marcello III是一位充满激情的软件工程师,在客户端的 Web应用架构相关的设计、实现、部署方面,有着近 20年的工作经验。他专注于基于 SaaS创造良好的用户体验,并将其传播到 Web生态系统,这无论从个人还是从专业角度来说都极具价值。对新兴通用技术的热爱以及对先进的 JavaScript平台的专注,驱动着他在技术上精益求精。在工作之余,他会参加越野跑、山地自行车骑行,或者陪伴家人和朋友。他的个人网站为: www.augustmarcello.com。
Yogesh Singh毕业于印度 JSS技术教育学院。他是一位全栈 Web开发者,在服务端 Web开发栈方面( ASP.NET以及 Node.js)很有经验,而且熟练掌握 HTML、CSS以及 JavaScript。
Yogesh热爱 JavaScript以及相关的库和框架( Backbone、 AngularJS、jQuery和 Underscore)。
他最开始从事的是数据挖掘和数据仓库方面的工作,在数据库开发方面十分专业。他是 MSSQL的微软认证解决方案成员(MCSA)。
Yogesh自学能力很强,喜欢学习算法和数据结构,并在斯坦福大学 Coursera上获得了算法课的结业证明。
他曾就职于 OLX India和 MAQ Software,目前为 Gainsight公司的全栈开发者。
业余时间,他喜欢在 http://mylearning.in上写博客。他的 LinkedIn简历地址为 https://www.linkedin.com/in/yogesh21。
Nikolay Sokolov是一名软件工程师,他在云计算、自动化部署和企业软件开发方面有着丰富的经验。现在就职于 Tonomi(http://tonomi.com/),负责基于弹性组件模型分发云应用的自动管理包。
可通过 https://twitter.com/chemikadze随时联系他。
Serkan Yersen是一名洛杉矶的软件开发者。他是一些开源库的作者,例如: ifvisible.js、underscore.py以及 kwargs.js。Serkan专门从事构建大型 JavaScript应用,以及为用户广泛的应用创建 UI。2006年至 2012年,就职于 http://www.jotform.com/期间,他开发了一个复杂的表单生成器,供上百万用户使用。现在,他就职于 Home Depot和 Redbeacon(http://www.redbeacon.com/),负责 Web应用开发。你可以访问他的个人网站:http://serkan.io/。
关于译者
本书翻译工作由月影领衔的奇舞团翻译小组承担,由王韦华、黄小璐、黄薇负责翻译。王韦华网名 Aztack,前端技术专家。曾就职百度、奇虎 360等国内知名互联网公司。拥有丰富的 Web前端开发经验,擅长 JavaScript、Ruby、Java、C++等语言。
个人博客:https://aztack.wang
黄小璐
毕业于华中科技大学计算机学院。现为奇虎 360软件开发工程师。曾参与开源项目
[stcjs](https://github.com/stcjs/stc)(高性能前端工作流系统)。参与翻译了《高性能 HTML5》等书。
黄薇
目录
影响扩展的因素2
对可扩展的需要 2
不断增长的用户 3
添加新功能 3
雇佣更多的开发者 4
架构角度5
浏览器是一个独特的环境5
组件设计 7
组件通信 7
加载时间 8
响应性 9
可寻址性 9
可配置性 10
架构性取舍11
确定不可变内容 11
从开发的便捷性考虑性能 11
性能的可配置性 12
从可替换性考虑性能 13
可寻址性的开发便捷性 13
前言
本书内容
第 1章,扩展 JavaScript应用,介绍了何为可扩展的 JavaScript应用,以及扩展 JavaScript应用与扩展其他应用的区别。
第 2章,可扩展性的影响因素,介绍了如何理解可扩展的需求,设计出更好的架构。
第 3章,组件组合,介绍了构成架构核心的模式,以及如何以之为蓝图组合组件。
第 4章,组件的通信与职责,介绍了组件之间的通信是如何制约扩展的。组件的通信模式功能有决定性作用。
第 5章,寻址和导航,详细介绍了拥有指向不同资源的 URI的大型 Web应用,以及如何设计才能应对不断增长的 URI数量。
第 6章,用户偏好和默认设置,介绍了设置用户偏好的必要性,以及可配置的组件对扩展应用的重要性。
第 7章,加载时间和响应速度,介绍了文件数量的增加是如何降低应用效率的。在添加新功能时,要有所舍弃,才能保证 UI的响应速度。
第 8章,可移植性和测试,介绍了如何编写不依赖于特定环境的 JavaScript代码,包括创建可移植的模拟数据和测试代码。
第 9章,缩小规模,介绍了移除无用或错误组件对扩展系统其他部分的重要性。
第 10章,处理错误,介绍了优秀的 JavaScript架构不会因为某个组件的错误而崩溃。许多时候,在设计时充分考虑对错误的处理是成功扩展的关键。
阅读本书的条件
NodeJS
代码编辑器/集成开发环境
一个现代Web 浏览器
本书读者
本书的目标读者是对前端架构感兴趣的高级 JavaScript工程师。阅读本书无须预备框架知识,但本书介绍的大部分概念都来自于框架,例如 Backbone、Angular、Ember。阅读本书需要扎实的JavaScript语言知识基础,本书中所有的示例代码都使用 ECMAScript 6语法编写。
约定
在阅读本书时,你会发现许多代表不同类型信息的不同文本样式。这里展示了一些例子及其含义详解。