编写可测试的JavaScript代码

编写可测试的JavaScript代码 pdf epub mobi txt 电子书 下载 2026

☆☆☆☆☆
出版者:人民邮电出版社 作者:[美] Mark Ethan Trostler 托斯勒 出品人: 页数:247 译者:徐涛 出版时间:2015-2 价格:55.00 装帧:平装 isbn号码:9787115373373 丛书系列:
图书标签
  • JavaScript
  • 前端开发
  • 测试
  • 编程
  • 计算机
  • 前端技术
  • 前端
  • 专业书
  • JavaScript
  • 测试
  • 可测试性
  • TDD
  • 单元测试
  • 前端开发
  • 软件质量
  • 代码质量
  • 最佳实践
  • 开发技巧
想要找书就要到 小哈图书下载中心
立刻按 ctrl+D 收藏本页
你会得到大惊喜!!

具体描述

JavaScript专业开发人员必须具备的一个技能是能够编写可测试的代码。《编写可测试的JavaScript代码》的目标是教授如何为客户端和服务器编写和维护可测试的JavaScript代码。全书共8章。首先介绍了什么是可测试的代码,然后分别从代码复杂度、架构、单元测试、代码覆盖率、集成测试、性能测试、负载测试、调试和自动化等角度详细介绍。书中丰富的示例能够帮助读者从头开始养成好的代码编写习惯,提升测试效率及代码的可维护性。

《编写可测试的JavaScript代码》的作者曾先后在YouTube、Yahoo!以及Google等公司从事前端开发及测试相关工作,具有丰富的经验。《编写可测试的JavaScript代码》主要针对那些想成为JavaScript专业开发人员的人;也适合初中级水平或者专家级别的开发人员参考阅读。

在城市繁忙的角落,一本静默却深邃的书静静存在。它以一段不浮华而实在的文字,讲述一个关于记忆与重建的内心旅程。故事围绕年轻建筑师艾玛展开,她在经历家庭意外后,被困在一座废弃老宅中——那不仅是物理空间,更是她记忆深处的断裂之地。书中细腻描绘了她与砖石对话的过程:门缝里藏着岁月的指纹,墙上的斑痕重现了被遗忘的瞬间。这份无言的空间催生了一场内心的探索与疗愈。 小说没有繁复的情节堆砌,而是通过细致的环境描写与沉静的心理刻画,让读者感受到时间流转中每一缕光影的重量。艾玛在修复建筑的同时,逐渐拼凑起自身被压抑的回忆,书中的语言常以碎片化、诗意化的句式呈现,如同记忆重组的过程——模糊而不确定,却蕴含深层的共鸣。她面对过去的创伤,不急于解开,而是通过与旧物共处,逐步理解失去与重建之间的微妙平衡。 文中多处场景充满象征意味:晨光穿过破窗的光斑在地板上投下斑斧图案,仿佛记忆在时间中错位流动;旧照片被雨水浸湿,边缘发黑却依然清晰——这是现实与幻觉交织的隐喻。作者刻意避免直接解释象征物的含义,让读者自行体会每个细节承载的情感张力。叙述风格克制而精准,少用修饰,多以具体物件传递抽象情绪,如一把生锈的钥匙、一条断裂的丝带——这些物品既是故事线索,也是心灵创伤的具象化表达。 小说的结构呈现非线性,通过不同时间点穿插回忆与现实,制造出一种错位感,使读者在拼凑叙事的过程中,也参与到记忆的重构之中。这种叙述手法不只增强故事层次,更体现了人类面对创伤时的复杂心理:既抗拒又渴望、混乱与秩序交织。 整体基调冷静而沉稳,语言精炼但富有诗意,注重氛围营造而非情节推进。整本书不是对某个事件的简单叙述,而是一场关于存在、失落与自我和解的深刻探索。在阅读中,读者不只是旁观故事,更被引入一种沉思状态,仿佛置身于一座需要时间修复的老宅,每一页都如砖石般缓慢地开放,揭示出人心最深处那些未曾言述却真实存在的记忆。

作者简介

Mark Ethan Trostler,有超过20年编写和测试代码的经验。拥有加州大学圣地亚哥分校的计算机科学/哲学双学位,曾就职于创业公司(IPivot)和大公司(高通、英特尔、Redback Networks、Juniper Networks、Yahoo!、目前在谷歌),Mark一直致力于提高代码质量。之前在Yahoo! Mail团队任职高级首席前端工程师,他对Yahoo! Mail最新改版中的先锋测试和质量控制提供了帮助。

目录信息

第1章 可测试的JavaScript 1
1.1 现有技术 2
1.1.1 敏捷开发 3
1.1.2 测试驱动开发 4
1.1.3 行为驱动开发 5
1.1.4 哪种方式最好? 6
1.2 代码是让人用的 7
1.2.1 为何要编写可测试的代码 7
1.2.2 什么是可测试的代码 9
1.2.3 如何编写可测试的代码 10
1.3 卓越的应用程序代码 11
1.3.1 测试 11
1.3.2 调试 12
1.4 小结 12
第2章 复杂度 13
2.1 代码大小 14
2.2 JSLint 20
2.3 圈复杂度 24
2.4 重用 28
2.5 扇出 30
2.6 扇入 40
2.7 耦合 40
2.7.1 内容耦合 41
2.7.2 公共耦合 41
2.7.3 控制耦合 41
2.7.4 印记耦合 42
2.7.5 数据耦合 42
2.7.6 无耦合 42
2.7.7 实例化 42
2.8 耦合性度量 43
2.9 现实中的耦合 43
2.9.1 测试耦合代码 46
2.10 依赖注入 47
2.11 注释 50
2.11.1 YUIDoc 50
2.11.2 JSDoc 52
2.11.3 Docco/Rocco 54
2.12 人工测试 56
2.13 小结 58
第3章 基于事件的架构 59
3.1 基于事件编程的好处 59
3.2 事件集线器 60
3.2.1 使用事件集线器 62
3.2.2 事件的响应 67
3.2.3 基于事件的架构与MVC架构 69
3.2.4 基于事件的架构与面向对象编程 69
3.2.5 基于事件的架构与软件即服务 70
3.3 Web应用程序 70
3.4 测试基于事件的架构 71
3.5 基于事件架构的说明 75
3.5.1 可伸缩性 75
3.5.2 广播 75
3.5.3 运行时检测 75
3.5.4 安全性 76
3.5.5 状态 76
3.6 更智能的集线器:事件交换机 77
3.6.1 部署 77
3.6.2 一种实现 79
3.6.3 会话 82
3.6.4 可扩展性 82
3.7 小结 83
第4章 单元测试 84
4.1 单元测试框架 84
4.2 开始编写测试 85
4.3 编写好的单元测试 87
4.3.1 隔离 88
4.3.2 范围 88
4.3.3 定义函数 89
4.3.4 正向测试 91
4.3.5 负向测试 91
4.3.6 代码覆盖率 92
4.4 真实场景测试 92
4.4.1 依赖项 92
4.4.2 异步测试 95
4.5 运行客户端JavaScript单元测试 97
4.5.1 PhantomJS 97
4.5.2 Selenium 102
4.6 运行服务端JavaScript单元测试 109
4.6.1 Jasmine 110
4.7 小结 116
第5章 代码覆盖率 117
5.1 覆盖率基础理论 117
5.2 代码覆盖率数据 120
5.3 实际例子 121
5.3.1 转换instrumented文件 121
5.3.2 Instrumented文件剖析 122
5.4 练习/部署 123
5.4.1 客户端JavaScript 123
5.4.2 服务端JavaScript 125
5.5 持久化覆盖率信息 129
5.5.1 单元测试 129
5.5.2 集成测 130
5.6 生成输出 131
5.7 聚合 132
5.8 隐藏的文件 134
5.9 覆盖率目标 137
5.10 小结 138
第6章 集成测试、性能测试、负载测试 140
6.1 集成测试 140
6.1.1 Selenium 141
6.1.2 CasperJS 147
6.2 性能测试 150
6.2.1 生成HAR文件 150
6.2.2 查看HAR文件 156
6.2.3 浏览器性能测试 158
6.3 负载测试 160
6.3.1 浏览器负载测试 161
6.4 跟踪资源利用率 165
6.4.1 客户端跟踪 167
6.4.2 服务端跟踪 173
6.5 小结 176
第7章 调试 177
7.1 浏览器内调试 177
7.1.1 Firefox 179
7.1.2 Chrome 182
7.1.3 Safari 185
7.1.4 Internet Explorer 187
7.2 Node.js调试 187
7.3 远程调试 190
7.3.1 Chrome 191
7.3.2 PhantomJS 196
7.3.3 Firefox 197
7.4 移动调试 198
7.4.1 Android 4 198
7.4.2 iOS 6 200
7.4.3 Adobe Edge Inspect 202
7.4.4 其他方面的移动调试选择 205
7.5 生产环境调试 206
7.5.1 最小化代码 206
7.5.2 Source Map 207
7.6 小结 212
第8章 自动化 213
8.1 自动化什么内容 213
8.2 何时进行自动化 213
8.3 如何进行自动化 214
8.3.1 含有持续集成的自动化 214
8.3.2 开发环境自动化 215
8.3.3 构建环境自动化 225
8.3.4 部署 245
8.4 小结 246
· · · · · · (收起)

读后感

☆☆☆☆☆

项目地址: https://github.com/ElvisKang/unofficial-Errata-of-Testable-Javascript-Chinese 声明: 本人并非译者或出版社相关人士。 因为还未读完全本,所以先给3星。 创建该项目纯属自愿。 在此,对译者在翻译此书的过程中付出的精力与时间表示感谢。也希望读过或正在读...

☆☆☆☆☆

项目地址: https://github.com/ElvisKang/unofficial-Errata-of-Testable-Javascript-Chinese 声明: 本人并非译者或出版社相关人士。 因为还未读完全本,所以先给3星。 创建该项目纯属自愿。 在此,对译者在翻译此书的过程中付出的精力与时间表示感谢。也希望读过或正在读...

☆☆☆☆☆

项目地址: https://github.com/ElvisKang/unofficial-Errata-of-Testable-Javascript-Chinese 声明: 本人并非译者或出版社相关人士。 因为还未读完全本,所以先给3星。 创建该项目纯属自愿。 在此,对译者在翻译此书的过程中付出的精力与时间表示感谢。也希望读过或正在读...

☆☆☆☆☆

项目地址: https://github.com/ElvisKang/unofficial-Errata-of-Testable-Javascript-Chinese 声明: 本人并非译者或出版社相关人士。 因为还未读完全本,所以先给3星。 创建该项目纯属自愿。 在此,对译者在翻译此书的过程中付出的精力与时间表示感谢。也希望读过或正在读...

☆☆☆☆☆

项目地址: https://github.com/ElvisKang/unofficial-Errata-of-Testable-Javascript-Chinese 声明: 本人并非译者或出版社相关人士。 因为还未读完全本,所以先给3星。 创建该项目纯属自愿。 在此,对译者在翻译此书的过程中付出的精力与时间表示感谢。也希望读过或正在读...

用户评价

☆☆☆☆☆

读得我十分难受。 #我想读这本书 2017-11-06

☆☆☆☆☆

读得我十分难受。 #我想读这本书 2017-11-06

☆☆☆☆☆

核心是比较简单的对代码的简化把控

☆☆☆☆☆

前几章有点用途,后几章很遗憾的过时了

☆☆☆☆☆

读得我十分难受。 #我想读这本书 2017-11-06