图书介绍

编写可靠的JAVASCRIPT代码 测试驱动开发JAVASCRIPT商业软件PDF|Epub|txt|kindle电子书版本网盘下载

编写可靠的JAVASCRIPT代码 测试驱动开发JAVASCRIPT商业软件
  • (美)Lawrence D.Spencer,Seth H.Richards著;王肖峰译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302443971
  • 出版时间:2016
  • 标注页数:469页
  • 文件大小:162MB
  • 文件页数:489页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

编写可靠的JAVASCRIPT代码 测试驱动开发JAVASCRIPT商业软件PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第Ⅰ部分 奠定坚实的基础3

第1章 实践软件工程3

1.1 编写从开始就正确的代码4

1.1.1 掌握JavaScript的特性4

1.1.2 在大型系统中规避JavaScript陷阱15

1.1.3 应用软件工程原则17

1.2 编写保持正确的代码22

1.2.1 投资单元测试的未来22

1.2.2 实践测试驱动开发22

1.2.3 编写易于测试的代码23

1.3 小结26

第2章 准备工具27

2.1 使用测试框架27

2.1.1 辨别不正确的代码30

2.1.2 可测试性设计32

2.1.3 编写最少的代码33

2.1.4 安全维护和重构33

2.1.5 可运行规范34

2.1.6 当前的开源和商业框架34

2.1.7 介绍Jasmine36

2.2 使用依赖注入框架41

2.2.1 依赖注入的定义41

2.2.2 使用依赖注入让代码更可靠43

2.2.3 掌握依赖注入43

2.2.4 案例研究:编写一个轻量级依赖注入框架43

2.2.5 使用依赖注入框架50

2.2.6 当前的依赖注入框架52

2.3 使用切面工具53

2.3.1 案例研究:使用和不使用AOP进行缓存53

2.3.2 案例研究:构建Aop.js模块55

2.3.3 其他AOP库67

2.3.4 结论68

2.4 使用代码检查工具68

2.4.1 使用linting工具让代码更可靠68

2.4.2 JSHint简介71

2.4.3 其他工具73

2.4.4 严格模式74

2.5 小结74

第3章 构造可靠的对象75

3.1 使用原生数据75

3.2 使用对象字面量77

3.3 使用模块模式78

3.3.1 创建任意模块78

3.3.2 创建立即执行模块79

3.3.3 创建可靠的模块80

3.4 使用对象原型和原型继承80

3.4.1 默认对象原型80

3.4.2 原型继承81

3.4.3 原型链82

3.5 使用new创建对象83

3.6 使用类继承88

3.6.1 模拟类继承88

3.6.2 重复将杀死Kangaroo89

3.7 使用函数式继承91

3.8 猴子补丁(Monkey-Patching)92

3.9 小结95

第Ⅱ部分 测试基于模式的代码99

第4章 浏览各种模式的优点99

4.1 案例分析99

4.2 通过更广泛的词汇产生更加优雅的代码100

4.3 使用拥有良好设计、良好测试的构建块产生可靠的代码101

4.4 小结102

第5章 确保回调模式的正确使用103

5.1 通过单元测试了解回调模式104

5.1.1 编写和测试使用了回调函数的代码104

5.1.2 编写和测试回调函数109

5.2 避免问题113

5.2.1 扁平化回调箭头113

5.2.2 注意this变量115

5.3 小结119

第6章 确保承诺模式的正确使用121

6.1 通过单元测试了解承诺122

6.1.1 使用承诺122

6.1.2 构造和返回承诺127

6.1.3 测试XMLHttpRequest130

6.2 串联承诺133

6.3 使用承诺封装器134

6.4 了解状态和命运135

6.5 区分标准承诺和jQuery承诺135

6.6 小结136

第7章 确保正确使用散函数应用程序137

7.1 对散函数应用程序进行单元测试137

7.2 为散函数应用程序创建切面139

7.3 区分散函数应用程序和柯里化140

7.3.1 柯里化140

7.3.2 散函数应用程序141

7.4 小结141

第8章 确保备忘录模式的正确使用143

8.1 通过单元测试了解备忘录模式144

8.2 使用AOP添加备忘录147

8.2.1 创建备忘录切面147

8.2.2 为restaurantApi应用returnValueCache切面150

8.3 小结152

第9章 确保单例模式的正确实现153

9.1 通过单元测试了解单例模式154

9.1.1 使用对象字面量实现单例共享缓存154

9.1.2 使用模块实现单例共享缓存158

9.2 小结162

第10章 确保工厂模式的正确实现163

10.1 为工厂编写单元测试163

10.2 实现工厂模式169

10.3 考虑其他工厂类型171

10.4 小结171

第11章 确保沙箱模式的正确实现和使用173

11.1 通过单元测试了解沙箱模式173

11.1.1 创建部件沙箱174

11.1.2 创建和测试沙箱工具187

11.1.3 创建与沙箱一起使用的函数191

11.2 小结193

第12章 确保装饰器模式的正确实现195

12.1 使用测试驱动的方式开发装饰器196

12.1.1 为被装饰的对象编写一个假对象197

12.1.2 为错误的传递编写测试198

12.1.3 编写空白装饰器199

12.1.4 添加传递功能到装饰器200

12.1.5 验证成功传递202

12.1.6 添加装饰器的特性204

12.1.7 通用化装饰器210

12.2 小结211

第13章 确保策略模式的正确实现213

13.1 通过单元测试了解该模式213

13.1.1 在不使用策略模式的情况下实现transportScheduler214

13.1.2 使用策略模式实现transportScheduler216

13.2 小结227

第14章 确保代理模式的正确实现229

14.1 通过测试驱动的方式开发代理230

14.2 小结245

第15章 确保正确实现可链接方法247

15.1 通过单元测试了解该模式248

15.2 链接then方法255

15.3 小结257

第Ⅲ部分 测试和编写高级JavaScript特性261

第16章 在无接口语言中遵守接口261

16.1 了解接口的优点262

16.2 了解接口隔离原则263

16.3 使用测试驱动开发创建契约注册表265

16.3.1 定义契约266

16.3.2 判断是否履行了契约267

16.3.3 断言契约被履行了271

16.3.4 绕过契约执行273

16.3.5 创建在被返回(创建)的对象上实施契约的切面273

16.4 小结277

第17章 确保正确的参数类型279

17.1 了解JavaScript无类型参数带来的机会和风险280

17.2 扩展ContractRegistry检查参数280

17.2.1 界定任务范围280

17.2.2 判断集合中的所有变量是否都履行了它的契约281

17.2.3 断言集合中的所有变量都履行了它的契约289

17.2.4 在切面中打包参数检查功能290

17.3 支持契约库292

17.4 综合起来293

17.4.1 创建契约模块293

17.4.2 创建应用程序的ContractRegistry296

17.4.3 为生产发布绕过契约297

17.5 比较面向切面的解决方案和静态解决方案297

17.5.1 考虑TypeScript的优点297

17.5.2 考虑切面的优点297

17.6 小结298

第18章 确保正确使用call、apply和bind299

18.1 浏览this是如何绑定的299

18.1.1 默认绑定300

18.1.2 隐式绑定302

18.1.3 new绑定303

18.1.4 显式绑定305

18.2 创建和测试使用call、apply和bind的代码305

18.2.1 使用call和apply305

18.2.2 使用测试驱动开发创建一个Array.prototype.forEach Polyfill307

18.2.3 使用bind316

18.3 小结321

第19章 确保正确使用方法借用323

19.1 确保借用对象符合需求324

19.1.1 让被借用的函数验证借用者的资格324

19.1.2 向被借用的对象附加切面326

19.1.3 使用borrow()方法329

19.1.4 在ContractRegistry中添加对象验证器330

19.2 预期借用者的副作用331

19.2.1 考虑被隔离函数的副作用331

19.2.2 考虑调用其他函数的函数的副作用332

19.3 预期捐赠者对象的副作用338

19.4 小结339

第20章 确保正确使用混合341

20.1 创建和使用混合343

20.1.1 创建和使用传统混合344

20.1.2 创建和使用函数式混合361

20.2 小结367

第21章 测试高级程序架构369

21.1 确保观察者模式的可靠使用369

21.1.1 检查观察者模式370

21.1.2 增强观察者模式的可靠性376

21.2 确保中介者模式的可靠使用380

21.2.1 了解中介者模式381

21.2.2 增强基于中介者代码的可靠性382

21.3 小结395

第Ⅳ部分 测试中的特殊主题399

第22章 测试DOM访问399

22.1 对UI进行单元测试399

22.1.1 检查难于测试的UI代码400

22.1.2 使用TDD创建UI组件401

22.2 使用分析器优化代码411

22.2.1 检测低效代码411

22.2.2 避免不成熟的优化418

22.3 小结418

第23章 确保符合标准419

23.1 使用ESLint420

23.1.1 安装ESLint420

23.1.2 运行ESLint424

23.1.3 使用ESLint实施代码标准427

23.2 实施架构分离432

23.2.1 家庭秘密技术433

23.2.2 铭记技术435

23.2.3 不可能任务(Mission Impossible)技术437

23.2.4 魔术棒(Magic Wand)技术441

23.2.5 不要使用调用栈技术442

23.2.6 其他技术442

23.2.7 其他架构442

23.3 小结443

第Ⅴ部分 总结447

第24章 测试驱动开发原则的总结447

24.1 回顾值得使用测试驱动开发的原因447

24.2 练习测试驱动开发448

24.3 编写可单元测试的代码448

24.4 掌握测试驱动开发的技术448

24.4.1 在编码之前编写测试448

24.4.2 保持测试DRY449

24.4.3 首先测试错误条件449

24.4.4 测试要先易后难449

24.4.5 具体449

24.4.6 只测试一件事情450

24.4.7 测试数据如同测试一样重要450

24.4.8 高效地使用Jasmine450

24.5 测试本书描述的模式450

24.5.1 测试面向切面编程450

24.5.2 测试对象构造451

24.5.3 测试回调451

24.5.4 测试基于承诺的代码451

24.5.5 测试散函数应用程序451

24.5.6 测试备忘录模式452

24.5.7 测试单例模式452

24.5.8 测试工厂模式452

24.5.9 测试沙箱452

24.5.10 测试装饰器模式453

24.5.11 测试策略模式453

24.5.12 测试代理模式453

24.5.13 测试可链接方法453

24.5.14 测试接口一致性453

24.5.15 测试call和apply的使用453

24.5.16 测试方法借用模式454

24.5.17 测试混合454

24.5.18 测试中介者和观察者模式454

24.5.19 测试DOM访问454

24.5.20 实施架构分离的测试454

24.6 小结455

第25章 本书JavaScript习语的总结457

25.1 回顾对象457

25.1.1 可以添加和删除的对象属性457

25.1.2 可以将对象用作词典458

25.2 回顾变量459

25.2.1 提升变量声明459

25.2.2 变量有函数作用域460

25.3 回顾函数463

25.3.1 函数是对象463

25.3.2 提升函数声明463

25.3.3 函数没有返回类型464

25.3.4 函数可以是匿名的465

25.3.5 函数可以被嵌套465

25.3.6 函数调用可以使用任意数量的参数466

25.3.7 函数可以立即被调用467

25.4 回顾布尔操作468

25.4.1 在测试相等性时类型可能会被强制转换468

25.4.2 值可以是真或假469

25.5 小结469

热门推荐