极限编程立方体 —— XP程序员的一天(XP Programmer's Cube - A Day in the Life)

原文: http://xp123.com/xplor/xp0006/index.shtml

 

极限编程立方体是XP程序员每天工作的快照。

极限编程之实践:

极限编程(XP)是一个反常规的方法,它在“天”(甚至分钟)的级别规定实践。

我们通常用状态机来表述一组活动及其之间可能的变迁。我们或许也可以用状态机来描述极限编程实践:

 

XP状态机   相册/图片/XP状态机

 

图中间的三角形代表了极限编程的核心思想:“测试-->编码-->重构”,这与传统编程的“设计-->编码-->测试”过程相反。

 

让我们逐一的看一下各个实践:

上午9点站立会议:

  • 这不是极限编程的正式部分;
  • 许多团队采用这个实践来获得今天的工作重点;
  • 固定的会议时间提醒团队每周工作40小时。

结对

  • 所有产品代码都由结对产出;
  • 控制键盘的人从战术上考虑问题,另一个人则从战略角度考虑问题;
  • 两个人周期性的转换角色。

测试:

  • 每次只写小的单元测试;
  • 编码前确定新添加的测试运行失败(要是测试不失败就囧了);
  • 遵循团队的编码标准。

编码:

  • “做可以工作的最简单的事情”;
  • 让测试通过即止;
  • 遵循团队的编码标准。

重构:

  • 找到“代码不好的味道”(哪些地方感觉不对),在此实施重构,确保所有测试依然通过;
  • 代码需满足:
    通过所有测试,
    为获得所需而通信,
    没有重复的逻辑,
    类和方法越少约好;
  • 小步前进,每步都要运行单元测试做为保障;
  • 详见Martin Fowler 的 Refactoring

现场客户问答:

  • 客户可在现场提供即时的答案;
  • 诸多问题是要求决策(而不是事实)的,现场客户需要为次做好准备;
  • 现场客户需要编写可接受测试,和(较罕见)用户故事,来记录他们的答案。

集成或丢弃:

  • 将代码提交到集成工作机上,构建系统,运行所有测试;
  • 修复问题,知道所有测试通过;
  • 如果集成困难,则放弃,明天再试。

回到“结对”:

如果今天还有时间,你可以重新结对(或至少是在当前结对中互换角色)开始另一个任务。

下午5点下班回家:

  • 按时下班回家以强化每周工作40小时的实践;
  • 确保手头没有为完成的工作,几天所做的所有工作都已集成好(或者被清理、放弃)。

 

极限编程立方体

通过扭转(和一点点摆弄),上述周期的核心可以展现为立方体的形式:

 

XP立方体   相册/图片/XP立方体

 

在实际情况情况下,团队不太可能每一次进展都需要坐下来摆弄这个立方体——何必呢?

  • 这个三维的模型不应该放在纸堆里,它有更好的用途;
  • 该立方体有助于:培训,给初学者可以看可以想的实物;
  • 该立方体有助于提醒你极限编程的几个重要层面:
    永远结对,
    编码前得到问题的答案,
    测试先行,
    必要时要舍弃,
    下班清理。

 

 

小结

极限编程立方体嵌入了极限编程的日常实践:结对、现场客户问答、测试、编码、重构、集成或丢弃。

这个立方体是一个可以提醒我们XP团队看重的重要实践的可视化工具。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值