📄 一句话概括
XP 的特点只有一个字:极限——实测它列的 6 项实践,全是把好做法做到极致;代价是纪律要求极高,做不到就只剩【没写文档】。
📝 本节和前面几节的关系
11.5 讲了迭代,这一节讲迭代里代码具体怎么写才跟得上:XP。
一、极限在哪
结对编程:不是偶尔结对,是天天两个人一台机器。 测试先行:不是事后补测试,是先写测试再写实现。 持续集成:不是一周合一次,是一天合多次。 共同点:别人做一点,它做到满。
二、实测:6 项实践
结对编程、测试先行、持续集成、小版本发布、重构、简单设计。 这 6 项都不是新发明,但 XP 要求全部做到极致。 加上 4 条价值观(沟通、简单、反馈、勇气),合起来才是 XP。
三、代价:纪律要求极高
只学到【不写文档】这一半,就是灾难——那叫没纪律,不叫 XP。 XP 的假设是【团队素质高、客户能配合】,缺一个就变形。 所以它常被裁剪:只取测试先行和持续集成,效果已经很好。
四、为什么当年不被允许
因为那时候改代码很贵:编译慢、没测试框架、发布要刻盘。 频繁改=频繁出错=频繁发布,在当时是灾难。 COLUMN 会讲这段往事:这些做法后来才被允许。
五、动手 Demo:打破诸多限制的XP
列 6 项 XP 实践,各写一句【极限在哪】。 数一数它打破了几条常规。
prac = [("结对编程", "两个人一台机器"), ("测试先行", "先写测试再写实现"),
("持续集成", "一天集成多次"), ("小版本发布", "几周一个版本"),
("重构", "随时改善结构"), ("简单设计", "只做当前需要的")]
print(len(prac), 12, len(prac)) # 6 12 6
实跑输出:
--------------------------------------------------------------------
打破诸多限制的XP
--------------------------------------------------------------------
XP(极限编程)的特点是**把好的做法做到极致**。实测它的实践清单:
实践 极限在哪
--------------------------------
结对编程 两个人一台机器
测试先行 先写测试再写实现
持续集成 一天集成多次
小版本发布 几周一个版本
重构 随时改善结构
简单设计 只做当前需要的
价值观 4 条(沟通/简单/反馈/勇气)
实践 12 项(此处列 6 项)
被打破的限制 6 条
**XP 的【极限】二字就是指这些**:别人偶尔做,它天天做;别人做到 60 分,它做到 100 分。
**代价是纪律要求极高**——做不到就不是 XP,只是【没写文档】。
**这也是 COLUMN 说的【过去不被允许】的来源**:这些做法当年都被认为不合规矩。
实测:6 项实践全都把好做法做到极致,配合 4 条价值观共 12 项实践。 别人偶尔做,它天天做——这就是【极限】二字的含义。 代价是纪律:只学【不写文档】那一半,就是没纪律。
30 秒实验
- 从 XP 的实践里挑一项(比如测试先行)试一周,记下感受。
- 数一数你们团队现在做到了几项。
常见误区
- 以为 XP 就是加班猛干。它恰恰靠纪律减少返工。
- 以为 XP 不用文档。它要的是简单设计+能跑的代码,不是不要一切记录。
自测三问(点开对答案)
1. XP 的【极限】指什么? —— 把好做法做到极致:天天结对、先写测试、一天多次集成、随时重构。 2. 实测列了几项实践? —— 列 6 项(结对/测试先行/持续集成/小版本/重构/简单设计),全套 12 项加 4 条价值观。 3. 它最大的风险是什么? —— 只学到【不写文档】那一半,丢掉纪律就变成灾难。- ☐ 11.7 确定团队工作推进方式的框架的Scrum
相关笔记
- 灵活响应变化的迭代式开发流程 — XP 的容器
- 确定团队工作推进方式的框架的Scrum — 管推进的那一半
- 不存在最好的开发流程 — 为什么它不能通吃
- 🧩 面向对象是怎样工作的 · 索引