Skip to content

Latest commit

 

History

History
46 lines (31 loc) · 4.13 KB

2016.4.19 1st Coding Dojo in Nanjing R&D Center ZTE.md

File metadata and controls

46 lines (31 loc) · 4.13 KB

第1次编码道场进行纪实

时间:2016.4.19

地点:中兴通讯南京研发中心一期办公室

初衷

早在几年前就听说过在程序员界有一些很有趣的社交活动,比如Coding Dojo、Coding Retreat等,大家以码会友相互交流心得、钻研精进技艺,犹如小说家笔下的“武林大会”。可惜当年苦于没有江湖英雄帖而不能一探其中奥秘,直到自己加入软件匠艺社区,社区中的前辈和匠友传授了不少组织开发者社交活动的经验,特别是道长伍斌,他详细地讲解了编码道场如何从筹备、宣传到实施、回顾各个环节的要点,听完他的讲解,我就开始琢磨既然编码道场这么好玩,自己为什么不组织一次。

对我组织编码道场更为有利的是,我负责的部门Cop中大多数参与者对于实践活动充满渴望,对于大多数人而言编码道场是一个全新的名词,充满未知,因此人、场地、设备很快就获得落实,此外还得到了亚旭、李波两位Cop Leader的鼎力支持。唯一有些缺憾的是时间,严格意义上的编码道场需要持续半天,但对我们Cop活动而言,2小时的活动时间就意味着需要裁剪一些步骤和内容,所以这次编码道场是一次mini版。

过程

参照伍道长的网上指引,道场选择的练习题来自cyber-dojo的FizzBuzz,练习的目标包括:

  • TDD+结对编程,感受TDD对于开发的变化,体会小步迭代以及频繁提交,体验结对编程;
  • 重构到设计模式——职责链,职责链的用途、场景以及重构的常用手法;
  • 感受重构式编程与快捷键对开发效率的提升。

由于活动时间的限制,活动将大部分时间放在练习上,对流程进行简化

  • 介绍本次代码道场练习目标(2分钟)
  • 介绍TDD与结对编程(3分钟)
  • 介绍责任链设计模式(5~8分钟)
  • 介绍本次练习题FizzBuzz(3分钟)
  • 自由练习(约100分钟)

所有练习必须以结对方式进行,每个结对小组按次序拥有3~5分钟的现场编码时间,整个编码过程投影在墙上,分享给其他小组。

img=coding_dojo_2

img=coding_dojo_3

完成FizzBuzz分为两个阶段,第一阶段是利用TDD快速实现FizzBuzz功能,第二阶段则是将代码重构至职责链设计模式,两个阶段中结对中驾驶员与领航员角色发生变换,保证所有参与者都能体验道场带来的乐趣。

img=coding_dojo_1

最终所有人的操作都被提交到github上,方便参与者能够随时从提交记录中回味这次道场体验。

收获

道场的有趣之处在于招式练习,要求参与者尽量多地去编码,并从实践中获得经验体会,颇有些暗合“能动手的就别吵吵”的社会意味。伍道长在其编程道场记录中阐述了道场的特色

  • 不是比武大赛——大家乐呵乐呵
  • 童叟无欺——欢迎所有水平的同学
  • 操练时玩砸了没事——领导不责怪

道场强调全员参与,强调始终保持关注点在编码练习上,参加道场并不是为了完成练习,而是为了获得练习的经历和体验。这种体验是直观的,并且融合了理论和实践,更容易被参与者接受。结对编程更提供了教学相长的途径,因此不少参与者就在道场结束后表示,道场传授的知识更容易理解和牢记。

而作为主办者,引导技巧是不可或缺的,道场更多地是通过练习让参与者自行参悟编码技巧,这些编码技巧就是主办方想要传递给参与者的有效信息,演示、讲解、点评、提问都是非常有效的引导手段,更重要的是之后的练习,采用可重复的练习手段正是道场练习的核心,也需要主办者去识别、归纳和加以利用。