极限编程最佳实践
![](https://i-blog.csdnimg.cn/blog_migrate/9e286d06d893a80a89ba92593e6f19b3.png)
由于软件工程环境如此快节奏,因此传统的项目管理方法不再可行。 这意味着IT专业人员必须找到新方法来处理经常变化的开发任务。
分享这一想法并关注现有的增量开发技术,2001年,17位软件专家介绍了敏捷项目管理理念 。《 敏捷宣言》中概述了灵活,快速和以协作为中心的软件开发原则。
极限编程(XP)是IT公司应用的众多敏捷框架之一。 但是它的关键功能(强调软件开发的技术方面)使XP与其他方法区别开来。
软件工程师Ken Beck在90年代引入XP,其目标是找到快速编写高质量软件的方法,并能够适应客户不断变化的需求。 在1999年,他在《 Extreme Programming Explained:Embrace Change 》一书中完善了XP方法。
XP是一组工程实践。 开发人员在执行这些实践时必须超越自己的能力。 这就是框架标题中极端内容的来源。 为了更好地理解这些做法,我们将首先讨论XP的价值观和原则。
极限编程的价值和原则
XP具有基于5个值的简单规则。
• 沟通:团队中的每个人在项目的每个阶段都共同工作。
• 简单性:开发人员努力编写简单的代码,为产品带来更多价值,因为它可以节省时间和精力。
• 反馈:团队成员经常交付软件,获取有关软件的反馈,并根据新要求改进产品。
• 尊重:分配给项目的每个人都为一个共同的目标做出贡献。
• 勇气:程序员客观地评估自己的结果而不会找借口,并且随时准备应对变化。
这些价值观代表了积极进取的团队合作者的特定心态,他们在实现共同目标的过程中尽力而为。 XP原则源自这些价值观,并以更具体的方式反映出来。
大多数研究人员将5 XP原理表示为:
• 快速反馈:团队成员了解给定的反馈并对反馈立即做出React。
• 假定的简单性:开发人员需要专注于当前重要的工作,并遵循YAGNI(您将不需要它)和DRY(不要重复自己)的原则。
• 增量更改:逐步对产品进行的较小更改要比一次进行的较大更改效果更好。
• 拥抱变更:如果客户认为需要更改产品,程序员应支持此决定并计划如何实施新要求。
• 高质量的工作:一支工作良好,制作出有价值的产品并为此感到自豪的团队。
现在是时候学习将软件开发团队变成梦想团队的实践。
极限编程实践
XP建议在开发软件时使用12种做法 。 由于XP是由价值观和原则定义的,因此它的实践也代表着价值观,可以分为四类。
![](https://i-blog.csdnimg.cn/blog_migrate/00ed50ffb11857ebbdd0e3b99b122758.png)
反馈
测试驱动开发。 是否可以快速编写清晰的代码? XP的从业者认为答案是肯定的。 软件的质量源于开发周期短,从而可以接受频繁的反馈。 宝贵的反馈来自良好的测试。 XP团队练习测试驱动的开发技术(TTD),该技术要求在代码本身之前编写一个自动化的单元测试。 按照这种方法,每一段代码都必须通过测试才能发布。 因此,软件工程师因此专注于编写能够完成所需功能的代码。 这就是TDD允许程序员使用即时反馈来生成可靠软件的方式。 您可以在我们的专用文章中了解有关改进软件测试的更多信息。
规划游戏。 这是在迭代周期开始时召开的会议。 开发团队和客户聚在一起讨论和批准产品的功能。 在计划游戏结束时,开发人员计划即将进行的迭代和发布,并为每个任务分配任务。
现场客户。 根据XP的说法,最终客户应完全参与开发。 客户应始终在场,以回答团队问题,确定优先级并在必要时解决纠纷。
配对编程。 这种做法要求两个程序员共同处理同一代码。 当第一个开发人员专注于编写代码时,其他开发人员则检查代码,提出改进建议并修复过程中的错误。 这样的团队合作产生了高质量的软件,更快的知识共享,但是要花费15%到60%的时间 。 在这方面,为长期项目尝试配对编程更为合理。
连续过程
代码重构。 为了在每次短迭代中通过精心设计的软件提供业务价值,XP团队还使用了重构。 该技术的目标是不断改进代码。 重构涉及消除冗余,消除不必要的功能,提高代码一致性以及同时解耦元素。 保持代码简洁明了,以便任何XP团队成员都可以根据需要轻松理解和修改代码 。
持续集成。 开发人员始终保持系统完全集成。 XP团队将迭代开发提升到另一个层次,因为他们每天多次提交代码,这也称为连续交付 。 XP从业人员了解交流的重要性。 程序员讨论可以重复使用或共享代码的哪些部分。 这样,他们确切地知道他们需要开发什么功能。 共享代码的策略有助于消除集成问题。 此外,自动化测试允许开发人员在部署之前及早发现并修复错误。
小版本。 这种做法建议快速发布第一个版本,并通过进行较小的增量更新来进一步开发产品。 小型发行版使开发人员可以经常接收反馈,及早发现错误并监视产品在生产中的工作方式。 这样做的方法之一是我们前面提到的持续集成实践(CI)。
代码理解
设计简单。 最佳的软件设计是最简单的设计。 如果发现任何复杂性,则应将其删除。 正确的设计应该通过所有测试,没有重复的代码,并且包含最少的方法和类。 它也应该清楚地反映程序员的意图。
XP的从业者强调,产品投入生产一段时间后,简化设计的机会会更高。 Don Wells建议为您打算立即实现的那些功能编写代码,而不是为其他将来的功能事先编写代码:“最好的方法是,在搜索足够的知识以揭示最简单的功能时,仅为要实现的功能创建代码。设计。 然后逐步进行重构,以实现您的新理解和设计。”
编码标准。 团队必须具有通用的编码实践集,并使用相同的格式和样式来编写代码。 标准的应用允许所有团队成员轻松阅读,共享和重构代码,跟踪谁在某些代码段上工作,以及使其他程序员更快地学习。 根据相同规则编写的代码鼓励集体所有权。
集体代码所有权。 这种做法宣告了整个团队对系统设计的责任。 每个团队成员都可以查看和更新代码。 有权访问代码的开发人员不会陷入他们不知道添加新功能的正确位置的情况。 这种做法有助于避免代码重复。 集体代码所有权的实现鼓励团队更多地合作,并随时提出新想法。
系统隐喻。 系统隐喻代表具有一组特定质量的简单设计。 首先,设计及其结构必须为新人们所理解。 他们应该能够开始工作,而不必花费太多时间检查规范。 其次,类和方法的命名应保持一致。 开发人员应将对象命名为已存在,以使整个系统设计易于理解。
程序员的工作条件
40小时工作周。 XP项目要求开发人员快速工作,提高效率并维持产品质量。 为了遵守这些要求,他们应该感觉良好且休息。 保持工作与生活的平衡,可以防止专业人员精疲力尽。 在XP中,最佳工作时间数每周不得超过45小时。 只有在下周不再加班时,每周才可能加班。
何时使用XP
确保公司的规模,结构和专业知识以及员工的知识库能够应用XP实践非常重要。 这些是要考虑的因素。
高度适应的发展。 XP旨在帮助开发团队适应快速变化的需求。
风险项目。 采用XP实践的团队更有可能避免与在新系统上工作相关的问题,尤其是当产品所有者为项目设置严格的截止日期时。
小团队。 XP练习对于不超过12人的团队非常有效。
自动化测试。 影响XP选择的另一个因素是开发人员创建和运行单元测试的能力。
可用的客户参与。 由于XP需要客户,开发人员和管理人员并肩工作,因此请确保您的客户可以在办公室花费时间,直到项目结束。
结论
极限编程是一种基于简单,沟通,反馈和勇气的价值观的软件开发方法。
基于XP原则和价值观建立工作流程的公司在团队内部和团队之间营造了竞争而又充满激励的氛围。 程序员欣赏彼此的项目输入,可以快速交付软件,因为他们可以将相关任务与不必要的任务区分开。 他们很快对反馈做出React,意识到这是合理的批评,旨在使产品更好。
XP团队不会将每个技术挑战都视为问题,而是将其视为培养技能的一种方式。
喜欢这个故事吗? 拍拍我们,让更多的人可以找到它! 👏
最初发布在AltexSoft的博客上: “ 极限编程:价值观,原则和实践 ”
翻译自: https://hackernoon.com/extreme-programming-values-principles-and-practices-6d270957fef7
极限编程最佳实践