零、前言

有些应用就是这样做的。 这些都是例外,而不是规则。 许多 JavaScript 应用有一两件事是正确的,还有一些是错误的。 我们做错的事情是我们从未考虑过的规模影响的副作用。 这是一本关于扩展前端架构以满足质量要求的书。 扩展 JavaScript 应用是一个有趣的问题。 有许多移动的部分——用户、开发人员、部署环境、浏览器环境,以及将所有这些因素结合在一起以形成有意义的用户体验的任务。 我们在扩展什么,为什么? 这本书的目的就是帮助我们回答这些问题。

这本书的内容

第 1 章从 JavaScript 的角度进行规模,介绍了可伸缩的 JavaScript 应用的概念,以及它们与其他可伸缩应用的区别。

第 2 章规模的影响者,帮助我们理解规模的需求有助于我们设计更好的架构。

第 3 章组件组成解释了构成我们架构核心的模式如何作为组装组件的蓝图。

第 4 章组件通信和责任解释了组件之间如何进行通信是一个伸缩约束。 它告诉我们特性如何是组件通信模式的结果。

第 5 章可寻址性和导航详细阐述了具有指向资源的 uri 的大型 web 应用,以及这种规模的设计如何处理越来越多的 uri。

第六章,User Preferences and Defaults,告诉我们为什么用户需要控制我们软件的某些方面。 它还解释了可伸缩应用组件是可配置的。

第 7 章加载时间和响应能力解释了移动部件越多,应用的性能就会下降。 这包括在添加新特性的同时,对保持 UI 响应进行权衡。

第八章可移植性和测试,涵盖了 JavaScript 代码的编写,而不是与单一环境紧密耦合。 这包括创建可移植模拟数据和可移植测试。

第 9 章Scaling Down,解释了如果我们想在其他领域扩大规模,如何从应用中删除未使用或有 bug 的组件。

第 10 章应对失败解释了大型 JavaScript 架构不会因为一个组件的错误而崩溃。 这包括如何在脑海中考虑失败是在大量场景中实现规模的关键。

你写这本书需要什么

  • NodeJS
  • 代码编辑器或 IDE
  • 一个现代的网络浏览器

这本书是给谁的

本书是专为对前端架构问题感兴趣的高级 JavaScript 开发人员编写的。 这本书不需要具备框架知识的先决条件,然而,本书中介绍的大多数概念都是骨干、Angular 或 Ember 等框架中的组件的改编。 需要很强的 JavaScript 语言技能,所有代码示例都使用 ECMAScript 6 语法。

会议

在本书中,您将发现许多文本样式,它们可以区分不同类型的信息。 下面是这些风格的一些例子和它们的含义的解释。

文本代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 url、用户输入和 Twitter 句柄显示如下:“例如,users/31729。 在这里,路由需要找到一个匹配这个字符串的模式,这个模式还将指定如何提取31729变量。”

代码块的设置如下:

// Renders the sections of the view. Each section
    // either has a renderer, or it doesn't. Either way,
    // content is returned.
    render() {

注释

警告或重要注释出现在这样的框中。

提示

提示和技巧是这样的。

读者反馈

我们欢迎读者的反馈。 让我们知道你对这本书的看法——喜欢或不喜欢。 读者反馈对我们来说很重要,因为它可以帮助我们开发出你真正能够从中获得最大收益的游戏。

要向我们发送一般的反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并在邮件的主题中提及书名。

如果你对某一主题有专长,并且你对写书或投稿感兴趣,请访问www.packtpub.com/authors查看我们的作者指南。

客户支持

现在,您是包书的骄傲所有者,我们有一些东西来帮助您从您的购买中获得最多。

下载示例代码

您可以从您的帐户http://www.packtpub.com下载您所购买的所有 Packt Publishing 书籍的示例代码文件。 如果您在其他地方购买了这本书,您可以访问http://www.packtpub.com/support并注册,直接将文件通过电子邮件发送给您。

勘误表

尽管我们已经尽一切努力确保内容的准确性,但错误还是会发生。 如果您在我们的任何一本书中发现了错误——也许是文本或代码中的错误——如果您能向我们报告,我们将非常感激。 通过这样做,您可以避免其他读者感到沮丧,并帮助我们改进本书的后续版本。 如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata,选择您的书,点击勘误表链接,并输入勘误表的详细信息。 一旦您的勘误表得到验证,您的提交将被接受,勘误表将被上传到我们的网站,或添加到该标题勘误表部分的任何现有勘误表列表中。

要查看之前提交的勘误表,请到https://www.packtpub.com/books/content/support,并在搜索栏中输入书名。 所需信息将出现在勘误表部分下。

盗版

在互联网上盗版有版权的材料是所有媒体都存在的问题。 在 Packt,我们非常重视版权和许可的保护。 如果您在互联网上发现任何形式的我们作品的非法拷贝,请立即提供我们的地址或网站名称,以便我们采取补救措施。

请在<[copyright@packtpub.com](mailto:copyright@packtpub.com)>联系我们,并提供疑似盗版资料的链接。

我们感谢您的帮助,以保护我们的作者和我们的能力给您带来有价值的内容。

问题

如果你对这本书的任何方面有问题,你可以通过<[questions@packtpub.com](mailto:questions@packtpub.com)>联系我们,我们会尽力解决这个问题。