
第一部分
提高软件的开发质量及开发效率
- 第1章 单元测试与TDD
- 第2章 Hamcrest:优雅强大的对象匹配器
- 第3章 Git及Git工作流程
- 第4章 持续集成与持续交付
第一部分共包含四章,第1章主要介绍什么是单元测试,什么是测试驱动开发(Test Driven Development,TDD)。如果说单元测试是一种技术(我们可以借助于很多工具或框架,完成对函数级别或代码片段级别的测试和验证工作),那么TDD则是一种方法论和开发模式。本书不会具体讲解单元测试技术(比如JUnit)的使用方法,但是会非常详细地讲解mock技术(本书的第二部分会有详细讲解)。
第2章将详细讲解Hamcrest,Hamcrest可以理解为一个灵活的、强大的期望值和实际值的匹配(Matcher)库,Hamcrest与JUnit、Mockito和Powermock等都可以进行很好的集成。通过assertThat方法,再结合Hamcrest提供的对象匹配库,我们完全可以摒弃JUnit自带的各种断言工具和方法,达到与之一样的断言效果,甚至功能更为强大,且容易扩展,优雅易读。
第3章主要介绍Git这一分布式版本控制系统(Version Control System,VCS)的使用方法,如果一个团队想要更好地协同工作,就要拟定一套适用于团队协作、并行开发工作的版本控制流程,本章将以目前使用最广泛的Git Work Flow作为参考进行讲解。
第4章将从背景、流程和生命周期等角度,解析现代软件开发模式:持续集成(Continuous Integration,CI)、持续交付(Continuous Delivery,CD)、持续部署(Continuous Deployment,CD)。
另外需要说明的一点是,本书会涉及比较多的工具和技术(比如JUnit、Hamcrest、Git、GitHub、Maven、Nexus、Jenkins、Ocean Blue、Mockito、Powermock、Concordion、Cucumber、Ansible、Ansible-Playbook等),以及一些代码规范类的检查插件或服务(比如JaCoCo、PMD、FindBugs、SpotBots、OWASP等)。由于篇幅所限,部分工具无法进行详细讲解,各章最后均会提供相关拓展阅读,大家如有需要可以自行学习。作为开发人员,我们的首要目标是保证开发出高质量的代码,以及进行快速测试、快速集成和高质量的交付等。因此本书将重点讲解所涉及的单元测试和功能测试等相关内容。