极限编程或 XP,极限编程是一种敏捷软件开发方法。与其他敏捷方法一样,它具有特定的工具、流程和角色。 XP的作者虽然没有提出什么新东西,但是他吸取了敏捷开发的最佳实践,并最大程度地强化了它们。这就是为什么编程被称为极端。
该方法的作者是美国开发者Kent Beck。 20 世纪 90 年代末,他领导了克莱斯勒综合薪酬系统项目,并在该项目中率先使用了极限编程。他在 1999 年出版的《极限编程解析》一书中描述了他的经历和他所创造的概念。随后又出版了其他详细介绍 XP 实践的书籍。沃德·坎宁安 (Ward Cunningham)、马丁·福勒 (Martin Fowler) 等人也为该方法的发展做出了贡献。
XP 与其他敏捷方法的不同之处在于它仅适用于软件开发。它不能像 scrum、kanban 或 lean 那样用于其他业务或日常生活中
XP 方法的目标是应对软件产品不断变化的需 瑞士 whatsapp 号码数据 求并提高开发质量。因此,XP 非常适合复杂且不确定的项目。
XP 方法围绕四个过程构建:编码、测试、设计和聆听。此外,极限编程具有价值观:简单、沟通、反馈、勇气和尊重。
13 个极限编程实践
1. 整个团队
所有项目参与者都使用 XP 作为一个团队工作。它必须包括客户代表,最好是了解业务的产品的实际最终用户。客户对产品提出要求,并设定功能实现的优先级。他可能会得到业务分析师的协助。在执行方面,团队包括开发人员和测试人员,有时还有指导团队的教练和为团队提供资源的经理。
2. 规划游戏
XP 中的规划分两个阶段进行 – 发布规划和迭代规划。
在发布计划期间,编程团队会与客户会面,了解 有效内容联合的最佳实践 他们希望在下一个版本(2-6 个月后)发布时拥有哪些功能。由于客户要求通常很模糊,开发人员会将其具体化并分解成几个部分,整个实施过程只需一天时间。让客户了解产品的操作环境非常重要。
任务写在卡片上,由客户决定其优先级。接下来,开发人员估计每个任务需要花费多少时间。一旦描述并估算了任务,客户就会审查文档并批准开始工作。为了项目的成功,客户和编程团队在同一领域合作至关重要:客户在预算范围内选择真正需要的功能,程序员充分比较客户的需求与他们的能力。
在 XP 中,如果团队未能在发布日期之前完成所有任务,则不会推迟发布,但会删减对客户来说最不重要的功能部分。
迭代计划每两周进行一次,有时会更多或更少。客户始终存在:他定义下一次迭代的功能并对产品需求进行更改。
3. 频繁发布版本
在 XP 中,版本发布频繁,但功能很少。首先,少量的功能易于测试和维护整个系统的功能。其次,每次迭代中客户都会收到一部分具有商业价值的功能。
4.用户测试
客户自己定义自动验收测试来检查下一个产品功能的功能性。团队编写这些测试并使用它们来测试完成的代码。
5. 集体代码所有权
在 XP 中,任何开发人员都可以编辑任何代码,因为该代码未分配给其作者。整个团队拥有代码。
6.持续代码集成
这意味着新的代码片段会立即集成到系统中 – XP 团队每隔几个小时或更频繁地推送一个新版本。首先,可以立即清楚地了解最新的变化如何影响系统。如果一段新代码破坏了某些东西,那么找到并修复错误要比一周后容易得多。其次,团队始终使用最新版本的系统。
7. 编码标准
当每个人都拥有代码时,采用统一的编码标准非常重要,这样代码看起来就像是由一个专业人员编写的。您可以制定自己的标准,也可以接受现成的标准。
8. 制度隐喻
系统隐喻是将系统与熟悉的事物进行比较,以帮助团队形成共同的愿景。通常,系统隐喻是由设计架构并表示整个系统的人构思的。
9. 保持稳定的步伐
XP 团队以最高生产力运作,同时保持可 巴哈马领先 持续的速度。同时,极限编程对于加班持消极态度,提倡每周工作40小时。
10. 测试驱动开发
方法论最困难的实践之一。在 XP 中,测试是由程序员自己编写的,在编写需要测试的代码之前。通过这种方法,每个功能都将 100% 被测试覆盖。当一些程序员将代码推送到存储库时,单元测试就会立即运行。并且它们全部都应该起作用。这样开发人员就会确信他们正朝着正确的方向前进。