了解敏捷开发

2019-09-24 16:11:14 浏览数 (1)

什么是敏捷开发?

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

敏捷开发模式的分类

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

其中XP和SCRUM最为流行。

极限编程

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

四大核心价值观

  • 沟通: 完善的流程和详细的文档用于团队协作虽然能够保证一致性,但效率往往不高。 极限编程提倡通过高效的口头沟通来保证整个团队的高效协作。(并不是舍弃流程和文档,只是更加侧重口头上的沟通)
  • 简单: ==今天够用就行。 那么系统的扩展性怎么实现? 极限编程提倡重构。(对开发人员要求较高) 重构建立在软件开发中无法避免出现BUG的前提下,与其最后修改整体的BUG,不如在一次次的重构迭代中反复扩展优化。
  • 反馈 通过提前编写测试代码,经常性的反馈代码的问题和进展。 在开发过程中,通过持续集成,使得每一次的发布都可以成为可执行版本。
  • 勇气 应用极限编程,每时每刻都在应对变化。这要求开发者时刻面对快速开发,重新开发。 变化在软件开发中是不可避免的,极限编程的思想就是将变化扼杀在摇篮中,避免最后形成一个无法重构的庞大工程。

13个最佳实践

  • 计划游戏 快速制定一个概要的计划,随着项目细节的不断更新和迭代,再完善这份计划。 主要分为三个步骤:客户编写故事;开发人员进行按照优先级进行分解和排序;确定产品迭代周期(2-3周)
  • 小型发布 持续集成,但每一个版本的发布都需要具备足够的商业价值。
  • 隐喻 寻求共识 发明共享词汇,增强团队默契
  • 简单设计 设计不应该一次性完成。因为变化不可能被所有的预见。所有设计一次也是无法完成的。 扎克伯格:不变的事物只有变化
    • 通过所有的测试程序
    • 没有任何重复的代码
    • 保持定期重构的思想
    • 单一职责(一个类只做一件事)
  • 测试先行 先写测试代码,再写代码。(开始时效率低,但能解决许多隐形问题)
  • 重构 重构是一种对代码改进而不影响功能实现的技术,重构的目的是降低变化引起的风险,使得代码优化更加容易。 重构场景:
    • 实现功能之前:改变现有代码结构,使得新的特性更加容易实现
    • 实现功能之后:检查一下刚刚写完的代码,考虑是否能够简化

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

  • 结对编程 code review
  • 集体代码所有制 编码规范统一
  • 持续集成 在确保系统运行的单元测试通过之后,每天尽可能的多做代码集成。
  • 每周工作40小时 保证休息,提高效率。
  • 现场客户 主要为了沟通
  • 编码标准 定义变量名等开发规范。【确保沟通交流】
  • 配合是关键 1 1>2

0 人点赞