了解敏捷开发

什么是敏捷开发?

敏捷开发以用户的需求变化为核心,采用迭代循序渐进的方法进行软件开发。

敏捷开发模式的分类

  • XP极限编程(eXtreme Programming)
  • SCRUM
  • 水晶方法
  • 动态系统开发方法
  • 精益开发

其中XP和SCRUM最为流行。

极限编程

极限编程是一种轻量,高效,弹性的软件开发方式。


四大核心价值观

  • 沟通:

    完善的流程和详细的文档用于团队协作虽然能够保证一致性,但效率往往不高。

    极限编程提倡通过高效的口头沟通来保证整个团队的高效协作。(并不是舍弃流程和文档,只是更加侧重口头上的沟通)

  • 简单:

    ==今天够用就行。

    那么系统的扩展性怎么实现?

    极限编程提倡重构。(对开发人员要求较高)

    重构建立在软件开发中无法避免出现BUG的前提下,与其最后修改整体的BUG,不如在一次次的重构迭代中反复扩展优化。

  • 反馈

    通过提前编写测试代码,经常性的反馈代码的问题和进展。

    在开发过程中,通过持续集成,使得每一次的发布都可以成为可执行版本。

  • 勇气

    应用极限编程,每时每刻都在应对变化。这要求开发者时刻面对快速开发,重新开发。

    变化在软件开发中是不可避免的,极限编程的思想就是将变化扼杀在摇篮中,避免最后形成一个无法重构的庞大工程。

13个最佳实践

  • 计划游戏

    快速制定一个概要的计划,随着项目细节的不断更新和迭代,再完善这份计划。

    主要分为三个步骤:客户编写故事;开发人员进行按照优先级进行分解和排序;确定产品迭代周期(2-3周)

  • 小型发布

    持续集成,但每一个版本的发布都需要具备足够的商业价值。

  • 隐喻

    寻求共识

    发明共享词汇,增强团队默契

  • 简单设计

    设计不应该一次性完成。因为变化不可能被所有的预见。所有设计一次也是无法完成的。

    扎克伯格:不变的事物只有变化

    • 通过所有的测试程序

    • 没有任何重复的代码

    • 保持定期重构的思想

    • 单一职责(一个类只做一件事)

  • 测试先行

    先写测试代码,再写代码。(开始时效率低,但能解决许多隐形问题)

  • 重构

    重构是一种对代码改进而不影响功能实现的技术,重构的目的是降低变化引起的风险,使得代码优化更加容易。

    重构场景:

    • 实现功能之前:改变现有代码结构,使得新的特性更加容易实现
    • 实现功能之后:检查一下刚刚写完的代码,考虑是否能够简化

    理论上来说,重构思想和开闭原则是相违背的,但如果一开始没有超强的设计分析和预测变化的能力,用来设计的时间不如花在重构上。【设计终究只能浮于纸上,而实践才能更加真实的发现问题】

  • 结对编程

    code+review

  • 集体代码所有制

    编码规范统一

  • 持续集成

    在确保系统运行的单元测试通过之后,每天尽可能的多做代码集成。

  • 每周工作40小时

    保证休息,提高效率。

  • 现场客户

    主要为了沟通

  • 编码标准

    定义变量名等开发规范。【确保沟通交流】

  • 配合是关键

    1+1>2

原文地址:https://www.cnblogs.com/noneplus/p/11427211.html