公司很难得的在内部组织了一次CSD的内训,这也算有史以来第一次正规的敏捷软件开发工程实践的培训活动。邀请了Jacky Shen给我们做培训讲师。
这次培训邀请了集团各个业务线的开发精英和对敏捷开发感兴趣的小伙伴,本以为对软件开发已经了如指掌的程序员们经历了一次醍醐灌顶的开发之旅。
申导作为一个相声演员开始了三天的表演:)
上来就开始写代码大家都有点不适应。
尤其是以TDD的方式开始写代码的时候大家都无法适应不做设计的思维。
申导引入了无耻的通过测试这一惊人小技巧,先完成一个测试,为了让测试通过不择手段。不惜使用的if else if else大招,只要能通过测试都是好代码。
不动脑子开发的感觉真好,无脑编程,这也是之前困惑我的一个地方,之前虽然也使用TDD的方式进行了一些练习,但是之前确实没有申导这么无耻的手段,导致我每次通过测试速度都很慢,心有点急,这回好了,无耻编程,先通过测试再说。这也是开始TDD的秘诀,先设定小步目标,走一步看看。有了这个信心大家开始擦拳磨掌了。
当然也不能一直无耻下去,毕竟我们都是有追求的程序员,当我们实在是不能忍我们这糟糕的代码的时候,重构自然而生。为了让代码清晰易读,也让设计变的更好,在测试用例的护航下,重构也开始变的简单了。同时也回答了很多人关于为什么要测试先行的问题。一个小的例子花了大半天的时间,主要都在帮大家转变习惯,不要一看到需求就先写代码,先找到一小步的测试,然后实现它。
为了巩固TDD的习惯,并开始认识到重构的力量,申导引入了网球比分的代码练习。先了解网球比赛的得分规则。然后开始无耻编程,但是很快发现无耻不能帮助大家,反而变成了拖累,重构也就不言而喻了,每一次小的代码改进的都让大家开心一些。
TDD接力游戏,让大家都上去走一趟,可以无耻,通过一个测试,增加一个测试用例。
这时候不得不提一下: cyber-dojo.org 熟悉TDD的小伙伴都知道的快速TDD在线练习网站。
没有IED或者不想配环境的可以直接上去随时写几行,测试一下代码。
敏捷工程实践肯定少不了持续集成,这次咱们先说说什么是持续不集成。
之后进行了项目持续集成练习,利用已经搭建好的Jenkins服务器,配合内部的git服务,进行了小组代码练习,代码修改,编译,集成测试,集成,发布的练习。
3天的时间还有点不过瘾,还有很多关心的话题来不及细细讨论。
在关闭环节,大家分别分享了,这次活动的收获,感受和印象最深的事情,不少小伙伴希望回到项目组以后进行TDD的推广和实践,也准备和项目组成员一起进行更多的敏捷开发实践的练习和应用。
时光冲冲,辛苦了3天的小伙伴终于圆满完成培训内容,满载而归。
最后留个念,下次再聚。
最后是彩蛋环节:
由于申导本次培训贡献太多收了很多红包,被安检人员严格审查了一下。