在软件工程的语境里,“敏捷流程”是一系列价值观和方法论的集合。软件界的一些专家肯定了流行做法的价值,但是强调敏捷的做法。
敏捷开发的原则有很多,其中我注意到一个:敏捷流程欢迎的需求的变化,并利用这种变化来提高用户的竞争优势。
很多时候,我们都对变化心怀畏惧。但敏捷流程反其道而行之,欢迎需求变化,适应变化,利用变化从而在软件行业市场上取得竞争优势。
其次,还有别的原则像只有不断关注技术和设计,才能越来越敏捷。
这是从与时俱进的角度出发,要求敏捷流程与世界的现先进前端技术保持脚步一致。
诸如此类种种,从不同角度说明了敏捷做法的优点。
但在阅读过程中,我产生了一些疑问:
这一小节提到了几种比较出名的敏捷开发方法论,如FDD、Scrum、XP、TDD。前三者在书中都有专门的介绍,但TDD,久闻其大名,到底是何许妙招?
TDD(Test Driven Development),即测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,然后只编写使测试通过的功能代码,从而以测试来驱动整个开发过程的进行。这有助于编写简洁可用和高质量的代码,有很高的灵活性和健壮性,能快速响应变化,并加速开发过程。
测试驱动开发的基本过程如下:
① 快速新增一个测试
② 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过
③ 做一些小小的改动,尽快地让测试程序可运行,为此可以在程序中使用一些不合情理的方法
④ 运行所有的测试,并且全部通过
⑤ 重构代码,以消除重复设计,优化设计结构
简单来说,就是不可运行/可运行/重构——这正是测试驱动开发的口号。
可想而知,测试驱动开发会极为有效地控制开发中的bug,但是这种先写测试代码的方式可能让开发人员有很大的不适应。学习适应TDD的成本会不会比它带来的收益更高呢?这就有待我们在实践中摸索了。
浙公网安备 33010602011771号