重磅推荐
【编辑推荐】

开发者的水平需要靠代码来证明。无论你用的是哪种编程语言,都应该写出干净、优雅且整齐的代码。测试驱动开发(TDD)可以帮助你写出这种既易懂又漂亮的代码,这样的代码能够在以后的几个月乃至几年中稳定运行。在这本开发者的教程中,你能够学到如何用Go、JavaScript以及Python这三种语言来做测试驱动开发。
  Saleem Siddiqui在书中会告诉你如何用单元测试引领开发工作,以解决业务领域中的复杂问题。这种测试驱动的编程方式会把需求划分成多个比较小的功能,并分别予以实现。无论使用哪种编程语言与编程框架,你都可以把本书中的知识运用到日常的编程工作中。
通过本书,你将学到:
● 如何用TDD把业务领域中的复杂问题划分成多个小功能,并分别予以实现。
● 如何在各种编程语言中用各种测试框架来做TDD,以实现业务领域中的概念。
● 如何通过TDD推进持续集成(CI)。
● 如何通过TDD做重构与重新设计。
● 如何用JavaScript代码编写一套简单而有效的测试用具,以便自动识别并运行单元测试。
● 如何配置一套持续集成环境,以自动测试TDD中的单元测试。
● 如何以TDD的方式写出清晰而整齐的Go、JavaScript及Python代码。


【内容简介】

开发者的水平需要靠代码来证明。无论你用的是哪种编程语言,都应该写出干净、优雅且整齐的代码。测试驱动开发(TDD)可以帮助你写出这种既易懂又漂亮的代码,这样的代码能够在以后的几个月乃至几年中稳定运行。在这本开发者的教程中,你能够学到如何用Go、JavaScript以及Python这三种语言来做测试驱动开发。
Saleem Siddiqui在书中会告诉你如何用单元测试引领开发工作,以解决业务领域中的复杂问题。这种测试驱动的编程方式会把需求划分成多个比较小的功能,并分别予以实现。无论使用哪种编程语言与编程框架,你都可以把本书中的知识运用到日常的编程工作中。
通过本书,你将学到:
* 如何用TDD把业务领域中的复杂问题划分成多个小功能,并分别予以实现。
* 如何在各类编程语言中用各种测试框架来做TDD,以实现业务领域中的概念。
* 如何通过TDD推进持续集成(CI)。
* 如何通过TDD做重构与重新设计。
* 如何用JavaScript编写一套简单而有效的测试用具,以便自动识别并运行单元测试。
* 如何配置一套持续集成环境,以自动测试在做TDD的过程中所写的单元测试。
* 如何以TDD的方式写出清晰而整齐的Go、JavaScript及Python代码。


【作者简介】

Saleem Siddiqui是一位软件开发者,他也参与培训、演讲和写作。他具有丰富的技术开发经验,在大大小小的团队中开发过医疗、零售、政务、财务以及制药等方面的软件。Saleem将在本书中分享自己过去的经验与教训,帮助大家避开他以前编写软件时犯的错误。


【目录】

目录
序1
前言3
第0章 简述如何配置开发环境21
0.1 配置开发环境21
0.2 小结28
部分 入门
第1章 我们要解决的问题:Money31
1.1 TDD 的基本流程:红-绿-重构循环31
1.2 我们要解决的是什么问题32
1.3 个失败的测试33
1.4 让测试通过37
1.5 清理代码41
1.6 提交变更44
1.7 小结45
第2章 通过Money实体支持多种货币48
2.1 开始支持欧元48
2.2 让代码遵循DRY原则50
2.3 刚才不是说要遵循 DRY 原则吗?现在为什么要保留两个相似的测试52
2.4 分而治之(实现除法)53
2.5 清理代码57
2.6 提交变更60
2.7 小结60
第3章 通过Portfolio实体支持投资组合62
3.1 设计下一个测试62
3.2 提交变更71
3.3 小结71
第二部分 模块化
第4章 关注点分离75
4.1 测试代码与产品代码75
4.2 模块化78
4.3 去除冗余(消除重复)79
4.4 小结80
第5章 Go语言的包与模块81
5.1 把代码分割到不同的包中81
5.2 Go 语言的模块82
5.3 创建新包84
5.4 封装86
5.5 消除测试中的重复88
5.6 提交变更88
5.7 小结88
第6章 JavaScript的模块90
6.1 把代码划分成多个模块90
6.2 认识 JavaScript 模块92
6.3 改进测试96
6.4 提交变更104
6.5 小结105
第7章 Python的模块106
7.1 把代码划分成多个模块106
7.2 消除测试中的重复108
7.3 提交变更108
7.4 小结108
第三部分 功能与重新设计
第8章 求Portfolio的值111
8.1 处理币种不同的Money111
8.2 提交变更119
8.3 小结119
第9章 这种钱,那种钱120
9.1 制作映射表以便查询汇率120
9.2 提交变更127
9.3 小结128
第10章 错误处理129
10.1 我们想把错误处理机制实现成什么样子129
10.2 提交变更141
10.3 小结142
第11章 通过Bank实体重新设计143
11.1 依赖注入144
11.2 把所有实体汇聚起来145
11.3 提交变更166
11.4 小结166
第四部分 收尾
第12章 掌握测试顺序171
12.1 修改汇率172
12.2 提交变更180
12.3 小结181
第13章 持续集成182
13.1 核心概念183
13.2 把实现持续集成所需的步骤串起来187
13.3 提交变更198
13.4 小结203
第14章 回顾204
14.1 代码是否具备良好的形象205
14.2 代码是否确切地实现了目标208
14.3 在编写代码的过程中有没有其他路可走210
14.4 从三个维度分析代码211
14.5 TDD 过时了吗224
14.6 全书总结226
附录 A 配置开发环境227
附录B 三种语言简史237
附录C 致谢244


返回顶部