什么是编程道场,实际上在我之前的一篇文章中已经说的很清楚了,大家可以参考。

但这篇文章是有感而发,所以写的比较感性,也比较琐碎。今天这篇文章来自于《The coding dojo handbook》中的一章,作者从本质上把握了一下什么是编程道场,以及什么是编程道场中不可或缺的组成元素。

程序员们通常都喜欢单纯的编码活动,而对项目经理、项目排期和产品bug等项目元素采取远离的态度,因为这些元素干扰了他们单纯编码的乐趣。当他们一旦走进一个宽松而安全的环境,不需要面对项目经理、面对项目排期、面对庞大复杂的遗留系统,总之,他们不再需要对编程之外的其它事物负责,而只对当下的编码负责,从而可以编写出自己认为最佳的代码时,他们的激情就会被点燃,程序猿典型的内向害羞将被抛诸脑后,他们将会很乐意跟其他人分享和切磋编码上的个人技艺。

瞧!程序员的快乐就是这么简单纯粹!

而编程道场恰恰提供了一个让程序员们这样尽情表演的舞台。

简单来说,编程道场就是围绕着小规模的编程主题,各种不同水平的程序员组织到一起探讨其解决方案,并采用TDD、结对编程、快速迭代等敏捷实践将其实现的一种活动。

编程道场的核心理念是为了在一种安全、轻松、娱乐的环境中促进程序员之间的交流和学习,所以其内在很少有强制性的规则,即使在这些基本的规则之内,根据各自团队的特点以及主题的特性,仍然有很大的自由空间去调整它的形式和流程,比如让它变得更加有趣,而这正是编程道场的魅力所在。

我们看一下编程道场的核心元素:

  1. 有一个介绍
    对活动主题和流程一个简单介绍,要尽量达到轻松、自由、舒适、乐趣的目的。

  2. 编写单元测试以及代码
    使用一种快速反馈的机制来保证写出的代码是按照你的预期来工作。

  3. 展示你的工作
    向所有人展示你的编码流程和细节。这么做的目的是为了让大家相互学习好的代码是如何被写出来的,而不是说好的代码就长成这样,但为什么长成这样就不知道咯。

  4. 有一个回顾
    回顾是为了让你回想一下本次活动你都学到了哪些知识,获取了哪些技能,提升了哪些见识。

  5. 要适度和便利
    这个要素作者单独列了出来,我们可能觉得不可思议。前面的那些元素可能真的是不可或缺的,但适度性和便利性真的就这么重要吗,需要单独拿出来说?我想这正是编程道场的核心所在,既然编程道场被设计成有区别于我们工作场合的让程序员激动兴奋的舞台,自然有它的不可替代的独特之处,而这两点正是它的魅力所在。只有保证了这个,程序猿们在其中才会感到安全、舒适、放松和提升创造性,