结对编程和TDD(测试驱动开发)

这两天来参加了个结对编程比赛,完成之后觉得有些体会需要书写出来沉淀下。
结对编程大家应该有听过,两个人同用一台电脑,一人敲代码,一人旁边观看,至于观看的人做些什么就有很多的选择了,这个方式还是对效率有一定提升,但是需要勤加练习,因为很多人习惯了个人完成编程,突然旁边多个人看还是挺不适应的。总结下来,这种方式可以:
1.增加两个人的专注力;
2.完成知识的传递;
3.毕竟每个人找bug的视角不同,所以两个人找bug的能力还是比单人强的;
4.要相信你的pair的话,但不要相信他的手。

说了结对编程不得不说TDD 这个开发模式。
这两者结合起来还是挺有效率的,TDD是一种追求敏捷的开发模式,两个人结对编程,一人写测试,写完一个测试就commit一次,一人写这个测试的实现,实现之后再commit一次。每需要实现一个逻辑时就写一个测试,来完成对该逻辑本身正确与否的判断,这样像叠积木似的一块一块的完成逻辑,并且测试保证了每个逻辑的正确性,就保证了代码的有效性,不会出现推翻重来的情况,最后一个测试完成之后,还可以对代码进行重构,进一步优化代码,有测试的保证,就可以让每一步重构不会影响之前的逻辑正确性,可以放心的进行重构,还有一点是通过测试来找bug的方法也是行得通的,不过不知道这个模式是否提倡,只是自己觉得有这个作用。对于大型的项目TDD这种模式还是有他的优势的,结合小步提交,一步一步完成对项目的整体实现。个人觉得有点面向过程的意思,但是偏偏我又用的java写完的,想起来还是很有意思。

最后说几个这两天趟的TDD的坑:
1.测试里面是一定不能写任何逻辑的,因为你测试的目的是为了判断你的实现逻辑正确与否,如该测试有逻辑就没办法控制变量了,谁知道是你测试逻辑错还是实现逻辑错误。
2.测试的命名规范一定要十分可读,做到没有注释也能看懂。
3.实现里面有if-else循环然后return的结构可以将return的内容抽出来成为常量,if之后直接ruturn。

还是有几个问题没有解决,这里列出来,方便查看和记忆。
问题:
1.测试含有死循环的方法如何测试。
2.前端展示那种方法如何进行测试。
3.代码重构还是很差,需要进一步学习。

总结:这次比赛还是很有收获的,了解了现在的企业是如何做开发的,和校园的确很大不同,第一次接触TDD和结对编程这种新内容还是挺有趣的,果然是应了那句老话啊,”活到老,学到老”。

猜你喜欢

转载自blog.csdn.net/MR_Peach07/article/details/72863253