您的位置:首页 > 职场人生

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

2010-03-01 15:10 288 查看
原文: http://xp123.com/xplor/xp0006/index.shtml

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

极限编程之实践:

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

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


相册/图片/XP状态机

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

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

上午9点站立会议:

这不是极限编程的正式部分;

许多团队采用这个实践来获得今天的工作重点;

固定的会议时间提醒团队每周工作40小时。

结对

所有产品代码都由结对产出;

控制键盘的人从战术上考虑问题,另一个人则从战略角度考虑问题;

两个人周期性的转换角色。

测试:

每次只写小的单元测试;

编码前确定新添加的测试运行失败(要是测试不失败就囧了);

遵循团队的编码标准。

编码:

“做可以工作的最简单的事情”;

让测试通过即止;

遵循团队的编码标准。

重构:

找到“代码不好的味道”(哪些地方感觉不对),在此实施重构,确保所有测试依然通过;

代码需满足:
通过所有测试,
为获得所需而通信,
没有重复的逻辑,
类和方法越少约好;

小步前进,每步都要运行单元测试做为保障;

详见Martin Fowler 的 Refactoring

现场客户问答:

客户可在现场提供即时的答案;

诸多问题是要求决策(而不是事实)的,现场客户需要为次做好准备;

现场客户需要编写可接受测试,和(较罕见)用户故事,来记录他们的答案。

集成或丢弃:

将代码提交到集成工作机上,构建系统,运行所有测试;

修复问题,知道所有测试通过;

如果集成困难,则放弃,明天再试。

回到“结对”:

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

下午5点下班回家:

按时下班回家以强化每周工作40小时的实践;

确保手头没有为完成的工作,几天所做的所有工作都已集成好(或者被清理、放弃)。

极限编程立方体

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


相册/图片/XP立方体

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

这个三维的模型不应该放在纸堆里,它有更好的用途;

该立方体有助于:培训,给初学者可以看可以想的实物;

该立方体有助于提醒你极限编程的几个重要层面:
永远结对,
编码前得到问题的答案,
测试先行,
必要时要舍弃,
下班清理。

小结

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

这个立方体是一个可以提醒我们XP团队看重的重要实践的可视化工具。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐