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
- 白板