• 浅谈敏捷开发


    1.什么是敏捷开发

    敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切成多个子项目,各个子项目的成果都是经过测试,具备集成和可运行性。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的子项目,并分别完成,在此软件过程中软件一直处于可使用状态。

    1.1、敏捷开发原则

    主张简单:如果现在不需要这项功能,就不要再设计中增加它。不必要对这个系统进行过分设计,等日后需求有变化时,再来重构这个系统
    拥有变化:需求时刻在变,人们对于需求的理解也时刻在变。在项目开发过程中,项目成员可能会变化。项目相关干系人的观点也可能会变化,前期定制的目标、标准也可能会变化。因此开发方法必须能够拥抱变化。
    可持续性:即便已经把一个能够运行的系统交付给用户,项目可能也是失败的–实现项目关系人的需求,其中就包括系统应该要有足够的鲁棒性,能够适应日后的发展。可持续性指的是下一个主要的发布版本,捉着正在构建的系统的运转和支持。要做到这一点,不仅仅要构建高质量的软件,还要创建足够的文档,保证下一场软件竞争能有效的进行。
    递增的变化:没必要在一开始的时候就设计一个囊括一切的框架模型,只要设计一个小的最基础的核心架构,打下基础,然后慢慢地改进架构,或者在不需要时丢弃这个架构,这就是递增的思想。
    快速反馈:从开始采取行动,到获得行动的反馈,二者之间的时间至关重要。和客户紧密工作,了解并分析他们的需求,或是开发满足他们需求的用户界面,这样就提供了快速反馈的机会。

    1.2、敏捷开发过程

    测试驱动开发(Test-Driven Development,TDD)是一种不同于传统软件开发流程的新型开发方法。它要求在编写某个功能的代码之前要先编写测试代码,然后只编写测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,有很高的灵活性和健壮性,能够快速响应变化,并加速开发过程。测试驱动开发的基本过程:(1)、快速新增一个测试(2)、运行测试,发现新增的测试不能通过(3)、做一些小改动,尽快让测试程序可运行(4)、再次运行测试,并且让测试通过(5)、重构代码,消除重复设计,优化设计结构
    持续集成:频繁、持续地在多个团队成员的工作中进行集成,并给与反馈。主要是SVN等版本控制器的使用
    结对编程:两个程序员在一台机器上共同工作。一个输入代码,一个审查。主要是与测试相结合
    小版本发布,一般以周、月为单位,尽可能多的发布产品。
    较少的文档。敏捷开发中不是没有文档,而是有大量的文档,即测试代码,这些代码真是的反应了用户的需求以及系统API的用法。

    2.敏捷开发与传统开发

    整体而言,概念非常简单。
    我们要造一个代步工具,去很远的地方。
    传统的方式,是这样的。

    1. 造轮胎。
    2. 造车底盘。
    3. 造车身。
    4. 车内布局。
    5. 安装引擎。
    6. 开始上路。

    先不说方式的好坏,我们再看敏捷开发方式。

    1. 造滑板。
    2. 造自行车。
    3. 造摩托车。
    4. 造三轮车。
    5. 造汽车。

    现在再来对比一下,两种思维方式的不同。
    根据目前的社会节奏和产品竞争的时效性,用最快的速度把东西投入市场,比花更多时间把更好的东西投入市场的效益比,要好得多。
    对比:
    传统方式,需要最后一步,才能将产品投入市场。
    敏捷开发,再任何一步,都能将产品投入市场,抓住最佳时机。

    3. 敏捷开发与DDD架构

    DDD领域驱动设计的开发模式十分契合敏捷开发的思想,一条业务线开发完成后,便可以上线部署,同时DDD架构下即使业务体量变大后,依然具有面向修改封闭,面向扩展开放的特性(MVC架构下实体类之间的关系是复杂的网状结构,成为大泥球,牵一发而动全身,导致不敢轻易改代码;),所以即使系统膨胀,DDD架构依然能满足敏捷开发原则

  • 相关阅读:
    好用的IP反查接口(2)
    java项目-第156期ssm贝儿幼儿教育管理系统-java毕业设计_计算机毕业设计
    Servlet—servlet两种配置方式
    Go: 通过Fiber构建微服务
    如何提取网页中的日期?
    沪胶期货全称(沪胶期货全称叫什么)
    van-calendar 实现移动端日历效果
    【MySQL进阶】深入理解InnoDB数据页结构
    JavaWeb(文件上传 异步文件上传 文件下载)
    Tomcat下载及使用说明
  • 原文地址:https://blog.csdn.net/qq_45748351/article/details/126018670