TDD(测试驱动开发)

TDD Coding Dojo有什么用?

2020-07-07  本文已影响0人  袁慎建

Dojo,道场,柔道馆,是一个练功的场所。Coding Dojo,借用了道场这一个概念,顾名思义,就是练习编码的地方。有一个Coding Dojo的网站对Coding Dojo的定义如下:

A Coding Dojo is a meeting where a bunch of coders get together to work on a programming challenge. They are there to have fun and to engage in Deliberate Practice in order to improve their skills.

翻译过来是:Coding Dojo是一次会议,在这个会议中,一群编码人员聚集在一起,共同应对编程挑战。 他们在玩乐中进行刻意练习,以提高他们的技能。

里面强调了三要素,一群人、编码挑战、刻意练习,达到的目的是:技能提升、开心,所以要组织一场Coding Dojo,就需要有一群人,有挑战案例,有快速反馈的机制,通过这些手段来提升这群人的技能。

这天然符合一个技能型的训练营的元素特征,所以我在TDD、重构这些训练营中,经常会用到这种手段。

在TDD训练营中,Coding Dojo要有一个特殊的原则 -- 无tasking不测试;无测试不编码;无代码不讨论。

我一般会怎么玩?

这次在线上训练营我尝试了一次Code Dojo,具体玩法如下:

  1. 针对业务需求,在同一个代码库,基于共同的task列表。
  2. 针对每个task,一对pair “写” 测试,一对pair “写” 实现,一对pair “重构”
  3. 学员和讲师采用Navigator-Driver 的方式Pair,学员表述思路、怎么写,讲师是学员的手
  4. 每对pair timebox 4分钟,如果没有写完,下一对pair继续,后面的pair可以修改前面pair的代码

将学员按照pair为单位组成一个环,比如有10对pair,就组成了一个10个节点的环,从第一个开始,测试、实现、重构、测试、实现、重构...下去,直到任务列表全部实现。目的是让大家清楚TDD的过程,也深刻体会到这个过程的一些小步骤,因为众目睽睽之下写代码,印象总会深刻很多。

为什么要用这种形式?

采用这种方式总结下来有如下几点好处:

  1. 注重TDD的过程,而不只是注重结果,dojo把TDD的过程放在聚光灯下,而不是像常规的练习,每个人各自写代码,然后做代码review,这种就是只能review TDD的结果;
  2. Coding Dojo能够让大家学习到彼此的不同想法,思路,并产生讨论,dojo的全员参与,是让每个人都用代码表达自己的想法,并且进行讨论,起到Code Review的知识共享作用
  3. 全员参与感很强,每个人都处于即将上场的状态,事不关己,不能挂起,就会多一分投入。
  4. 有利于团队建设,在团队内创造轻松快乐的氛围,当然这个对引导人有一定的要求,能否很好的活跃气氛,营造氛围。可以通过增加找茬奖励来增加趣味性。
  5. 如果是线下培训,还能解决注意不集中的问题,所有人都站起来,并动起来,不断地轮流切换。

当然Code Dojo也会占用更多的时间,就看你怎么去权衡了。如果能达到更好的效果,学习的时间付出是值得的。尤其,它还能带来一些附加值的时候。

如果你想在团队中刻意练习一种编码技能,Code Dojo是一个不错的选项~

上一篇下一篇

猜你喜欢

热点阅读