极限编程实践Skill xp-practices

本技能详细介绍了极限编程(XP)的核心实践,包括结对编程、持续集成、测试驱动开发(TDD)等,旨在帮助软件开发团队提高协作效率、代码质量和敏捷开发能力。关键词:极限编程,XP,结对编程,持续集成,TDD,敏捷开发,软件开发方法论。

其他 0 次安装 0 次浏览 更新于 3/9/2026

name: xp-practices description: “应用XP实践,包括结对编程、集体编程、持续集成和可持续节奏。在实施敏捷开发实践、改善团队协作或采用技术卓越实践时使用。” category: methodology priority: medium tokenEstimate: 1000 agents: [qe-quality-analyzer, qe-test-executor, qe-code-reviewer] implementation_status: optimized optimization_version: 1.0 last_optimized: 2025-12-03 dependencies: [] quick_reference_card: true tags: [xp, agile, pair-programming, tdd, continuous-integration, collaboration] trust_tier: 0 validation:


极限编程(XP)实践

<default_to_action> 应用XP实践时:

  1. 从提供即时价值的实践开始
  2. 逐步建立支持性实践
  3. 适应您的环境
  4. 测量结果

核心XP实践(优先顺序):

实践 从此开始 为何优先
TDD ✅ 是 一切的基础
持续集成 ✅ 是 快速反馈
结对编程 ✅ 是 知识共享
集体所有权 在CI+TDD之后 需要安全网
小发布 在CI之后 基础设施依赖

结对快速入门:

驾驶员-导航员(经典):
- 驾驶员:编写代码
- 导航员:审查、提前思考
- 每20-30分钟轮换

乒乓(与TDD):
A:编写失败测试
B:使测试通过 + 重构
B:编写下一个失败测试
A:使测试通过 + 重构

</default_to_action>

快速参考卡

XP的五项价值

价值 含义 实践
沟通 每个人都了解其他人的工作 每日站会、结对
简单性 最简单的可行方案 YAGNI、小设计
反馈 尽早并频繁获取反馈 TDD、CI、短迭代
勇气 说实话、适应变化 重构、承认错误
尊重 每个人都贡献价值 可持续节奏、结对

核心实践

实践 描述 好处
结对编程 两名开发者,一台工作站 质量 + 知识共享
TDD 红-绿-重构 信心 + 设计
CI 每天集成多次 快速反馈
集体所有权 任何人都可以修改任何代码 无瓶颈
可持续节奏 40小时工作周 长期生产力
小发布 频繁发布 降低风险

结对编程

何时结对

情境 结对? 原因
复杂/高风险代码 ✅ 总是 需要多个视角
新技术 ✅ 总是 学习加速器
新成员入职 ✅ 总是 知识传递
关键错误 ✅ 总是 两个脑袋更好
简单任务 ❌ 跳过 不值得开销
研究探索 ❌ 跳过 结对讨论发现

结对该做和不该做

该做:

  • ✅ 每20-30分钟切换角色
  • ✅ 一起休息
  • ✅ 大声思考
  • ✅ 提问
  • ✅ 保持会话2-4小时最长

不该做:

  • ❌ 未经询问就抢键盘
  • ❌ 结对时看手机
  • ❌ 主导对话
  • ❌ 整天结对(疲惫)

集体(群体)编程

设置: 3名以上开发者,一个屏幕,轮换驾驶员

[屏幕]
   ↓
[驾驶员] ← 来自导航员的指导
   ↑
[导航员1] [导航员2] [导航员3]

轮换: 驾驶员每5-10分钟切换

最适合:

  • 复杂问题解决
  • 架构决策
  • 学习新框架
  • 解决阻塞

持续集成

CI工作流:

1. 从主线拉取最新代码
2. 做小修改(<2小时工作)
3. 本地运行测试(全部通过)
4. 提交并推送
5. CI自动运行测试
6. 如果失败 → 立即修复

最佳实践:

  • 频繁提交(小修改)
  • 保持构建快速(<10分钟)
  • 立即修复损坏的构建
  • 永不向损坏的构建提交

简单设计的四条规则

(按优先顺序)

  1. 通过所有测试 - 正确工作
  2. 揭示意图 - 清晰、表达性代码
  3. 无重复 - DRY原则
  4. 最少元素 - 无推测性代码

代理集成

// 代理-人类结对测试
const charter = "测试支付边界情况";
const tests = await Task("生成测试", { charter }, "qe-test-generator");
const reviewed = await human.review(tests);
await Task("实施", { tests: reviewed }, "qe-test-generator");

// 与代理的持续集成
await Task("风险分析", { prDiff }, "qe-regression-risk-analyzer");
await Task("生成测试", { changes: prDiff }, "qe-test-generator");
await Task("执行测试", { scope: 'affected' }, "qe-test-executor");

// 可持续节奏:代理处理繁琐工作
const agentWork = ['回归测试', '数据生成', '覆盖分析'];
const humanWork = ['探索性测试', '风险评估', '策略制定'];

代理协调提示

内存命名空间

aqe/xp-practices/
├── pairing-sessions/*   - 结对/集体会话日志
├── ci-metrics/*         - CI健康指标
├── velocity/*           - 团队速度数据
└── retrospectives/*     - XP回顾笔记

车队协调

const xpFleet = await FleetManager.coordinate({
  strategy: 'xp-workflow',
  agents: [
    'qe-test-generator',   // TDD支持
    'qe-test-executor',    // CI集成
    'qe-code-reviewer'     // 集体所有权
  ],
  topology: 'parallel'
});

常见反对意见

反对意见 回应
“结对编程慢两倍” 编写慢15%,错误少15%,净收益为正
“没时间做TDD” 调试比测试花费更长时间
“CI设置困难” 从简单开始:一个操作,一个测试
“集体所有权等于混乱” 仅在没有测试 + CI时

相关技能


记住

XP实践作为一个系统工作。 不要随机挑选:

  • TDD实现集体所有权
  • CI实现小发布
  • 结对实现集体所有权
  • 可持续节奏实现一切

与代理: 代理放大XP。将人类与代理结对。代理处理重复性工作,人类提供判断和创造力。