为何你应该参加编码道场?什么是编码道场?它是如何运作的?重要限制:无产品代码规则:为何你应该开始这样做?何时停止?

2025-06-10

为什么你应该参加 Coding Dojos

什么是编码道场?

它是如何工作的?

重要限制

“无产品代码”规则

为什么你可能应该已经这样做了

什么时候停止?

什么是编码道场?

因此,如果您不知道什么是 Coding Dojo,这里有一个简短的介绍。

我把它基本上看作是一个编程健身房或训练营,你可以在那里进行编程练习,也可以和团队一起练习。“Dojo”是日语,意思是“……一个用于沉浸式学习的大厅或空间……”。在道场里,你可以学习“Katas”的编码,Katas 指的是“一套精心编排的动作模式,可以单独练习,也可以在训练时集体练习或齐心协力练习”

它是如何工作的?

一如既往,只要对你有用就行。我们就是这样做的,而且效果很好。

准备

  1. 选择一个 Kata
    • 例如从这里
    • 不要使用产品代码!(请参阅下面的“禁止使用产品代码”规则)
    • 通常,您不想构建具有 UI、服务器等的完整应用程序。
  2. 提前准备开发环境
    • git 仓库已设置
    • 项目已在 IDE 中打开
    • 测试正在运行(如“没有错误”,尽管你没有)
  3. 选择一个可以舒适地容纳您的团队并配有大型显示器或投影仪的房间
  4. 携带一台电脑、一个鼠标、一个键盘(如果需要其他布局,可以携带多个键盘)
  5. 预留 1.5 小时的时间
  6. 每次迭代重复此操作(例如 2-3 周)
  7. 选择不会编写代码的主持人(例如 Scrum Master 或任何随机团队成员)
  8. 如果存在多个选项,请选择一种编程语言(例如,您可以随机浏览每个 Kata)

行动

  1. 在每个新的Kata开始时,首先讨论一个基本方法(自上而下、自下而上等)。最多10分钟。
  2. 第一个随机成员获得键盘和鼠标最多 5 分钟(活跃成员)
  3. 主持人将勾选时间框
  4. 主动成员将在处理问题时解释他/她的所有想法,并开始编写测试,然后以TDD方式实施。
  5. 主动成员遇到困难时可以寻求帮助。
  6. 即使团队其他成员发现错误、拼写错误或其他问题,也不得插手或提供帮助。版主必须处理此事。明显的错误可以在下次修复。
  7. 时间一到,就把键盘交给圈里的下一个成员。
  8. 主持人应该尽可能频繁地使用合理的信息检查代码是否已签入 git(是的,这也需要练习!)
  9. 当主持人觉得团队陷入困境时,可以再安排 10 分钟的团队讨论时间。

重要限制

这不是谜题

一个重要的方面是,这跟编写算法或解决谜题无关,甚至跟完成 Kata 无关!

这是关于其间发生的事情。

它关乎团队建设,关乎知识交流,关乎可能发生的讨论,关乎学习人们如何以不同的方式解决问题,关乎给予思考的时间。

“无产品代码”规则

替代文本

有些人(可能是经理,甚至是团队成员)会想出一个主意,直接解决你的产品代码中的问题。但编码道场必须保持安全。这就是使用 Katas 的原因。当团队处理产品代码时,你会承受压力。你会做出妥协。你会跳过测试。

为什么你可能应该已经这样做了

那么,现在让我们来谈谈为什么你应该这样做。

团队规范

首要的原因是:打造一支可持续发展、绩效卓越的团队。每个团队都会经历四个阶段:组建阶段、风暴阶段、规范阶段、执行阶段

显然,你希望进入“执行”阶段。然而,在新团队组建或新成员加入后,你很可能会再次进入“风暴”阶段。

当团队缺乏规范时,就会出现“风暴”。例如,有些成员写测试,有些不写。有些成员写代码注释,有些不写。有些人喜欢用制表符,有些人喜欢用空格。你懂的。如果没有明确的共识,迟早会遇到麻烦。所以,尽管你需要团队事先达成共识,但在 Coding Dojo 期间练习这一点非常重要。

规范并不总是那么容易,它是关于在个人才能和团队合作之间找到一个最佳平衡点,从而减少讨论和争论。

团队责任

一种特殊的“规范”是团队责任。这意味着所有成员都应对团队的所有代码负责。不应该出现类似“嘿,客户报告的那个 bug 是你引入的,你需要修复它!”这样的情况。

由于整个团队都在同一个代码上工作,因此团队责任感得到了培养,并且也将使产品代码受益。

工艺

替代文本

Coding Dojos 帮助你学习编程,就像学习一门手艺一样。反复训练你的技能非常重要。

当您作为一个团队决定遵循清洁代码规则和测试驱动设计(您应该这样做)或者您想要开始学习它但害怕或不确定在产品代码上实践它时,Code Dojos 将会提供帮助。

知识共享

在 Coding Dojo 期间,每位团队成员——无论经验多少——都将学到新东西。除了学习通用的编码风格外,团队成员还将学习新的设计模式、重构、IDE 快捷方式和工具。

我们用它来学习 TypeScript。我们只有 Java 后端开发人员想学习 TypeScript 来编写前端代码。所以我们用 TypeScript 做了一个 Kata。

社交技能

替代文本

由于团队需要共同解决问题,而每个不活跃的成员都需要稍微退后一步,因此 Coding Dojos 会训练团队沟通、开放和自我控制方面的社交技能。

大多数开发人员都经历过这样的情况:其他团队成员对软件开发有自己的想法,而这些想法与团队决策相冲突。Coding Dojos 有助于使这种行为透明化,并对其进行改进。它可以减缓非常自信的开发人员的开发速度,并为缺乏经验的开发人员提供更多空间。

了解暴民编程

实际上,群体编程目前被大肆宣传,而 Coding Dojo 的工作方式与之类似(但不完全相同):您作为一个团队(群体)在一个代码库上进行工作,并受到时间限制。

不同之处在于,“其余暴徒”并没有驱动主动成员。

什么时候停止?

现在,我要坦白:我的团队目前没有这样做。为什么呢?我们已经进入了规范和执行阶段。每个团队成员编写的代码都受到其他人的重视,而且他们可能也会以类似的方式编写。我们大部分时间都是结对编程,有时甚至是集体编程。讨论或争议很少,我们深感团队责任重大。因此,我们团队决定停止这种做法,但最迟会在新成员加入后重新开始。

因此,虽然您显然可以根据自己的意愿继续下去,但如果团队已经组建,您就可以停止。

最初发表在我的博客上。

鏂囩珷鏉ユ簮锛�https://dev.to/stealthmusic/why-you-should-do-coding-dojos-3n4j
PREV
Python 开发者工具与框架简介 工具 库 框架 结论 参考 wemake-python-styleguide
NEXT
使用 RegEx 稍微提高你的生产力 不要在生产环境中使用它 工具 有用的 RegEx 摘要