不要只展示代码,展示如何演进代码

RubyChina的Daniel Lv和我一起准备“七周七语言之Ruby”。因为这个活动特别强调动手,所以我们选了一个有趣的Kata题目”Game of Life”来让参加者实现。在准备过程中,十月七日我们一起通过Skype结对了六个小时,结果我们发现是一个很好的互相学习的机会,而且我们也向把我们学到的东西分享给大家。作为专业的开发人员,光给大家演示代码是不够的,因为那个只能代表一个最终结果,我们一起互动、交流、重构以及演进代码和设计的过程更加有趣,因此我们一起录制了以下视频。

这个Kata的代码已经Push到了GitHub

题目介绍

Game of Life
细胞自动机,由一堆格子构成的封闭空间,尺寸为N的空间就有 N×N 个格子。每一个格子旁边都由邻居格子存在。 每个格子的生死遵循下面的原则:

  • 如果一个活细胞周围有两个或者三个活细胞,则这个细胞为生。
  • 如果一个活细胞周围少于两个活细胞,则这个细胞死亡。
  • 如果一个活细胞周围有超过三个活细胞,则这个细胞死亡。
  • 如果一个死细胞周围有三个活细胞,则这个细胞为生。

工作方式

  • 结对编程
  • 测试先行
  • 小步快走
  • 每45分钟休息一次

工具

  • Ruby
  • RSpec
  • Rake
  • HomeBrew
  • ITerm2
  • Vim
  • ScreenFlow
  • SizeUp
  • MOU
  • 白板
Share