TDD核心:Tasking
2019-04-21 本文已影响0人
代码与团队CodeCrew
外行看高尔夫的挥杆,就是一个动作。然而老虎伍兹这样的高手,会把它分解成多个动作,逐一刻意练习:
1. 开球准备。要领有:球的位置,上半身倾斜角度,身体重心,背部挺直,等等。
2. 上杆。要领有:双手始终在胸前,增加挥杆半径。
3. 上杆顶点。要领有:左肩与下巴相对位置,髋部扭动幅度,重心,右膝微曲。
4. 下杆。又分解为滑动、旋转、弹跳等动作。
5. 触球。要领有:头部留在球的后方,左腿伸直完美支撑,双臂完全伸直,等等。
程序员也一样,分解任务是核心竞争力。
TDD的“红-绿-重构”循环,看似简单,但却一点都不容易,每个循环就是一个task,怎么把一个复杂问题分解成一个个的task,并且是渐进式地拆解?
这是TDD最难的也是最有智慧的地方:拆解任务,而且不是事先拆解,而是让任务不断浮现。