zoukankan      html  css  js  c++  java
  • 敏捷开发学习笔记

    敏捷软件开发是为了防止项目开发中的过程膨胀而提出的。为此,成立了敏捷软件联盟,并创建了《敏捷软件开发宣言》。

    我对敏捷开发的感觉有以下几点:

    一、在开发过程中强调人以及人与人之间关系的作用。不但要求开发团队要有一个积极向上的氛围,同时还强调成员与成员之间的合作和交流。例如:每两名成员组成一对,共同开发一个功能,并且这种结对要至少每天更换一次。这就保证了信息在项目组内部的流通,同时知识也更容易传播。

    二、降低了工具的作用。在开发的过程中,应当优先使用简单的工具,直到证明这些简单的工具不再适用。

    三、在每次迭代中,要优先实现已确定的素材,其次再为下一次迭代的素材作打算。在每次迭代中,要以实现当前的素材为准则。“团队最开始的工作是以尽可能最简单的方式实现第一批用户素材。只有当出现一个用户素材迫切需要改变基础结构时,他们才会引入该基础结构”。

    四、推荐在编写代码之前,要先编写单元测试验收测试。然后以通过测试为目的来编写代码。这样“有目的的编写代码”,可以有效地降低代码的冗余。同时,单元测试可以降低代码之间的耦合。

    五、重构和隐喻很重要。我想这并不仅仅适用于敏捷开发。

    敏捷开发的最重要的意义之一在于:防止软件的腐化。

    需求是多变的。需求的一次简单变更就可以轻易破坏代码的优雅和原有的结构。

    代码的腐化可以从以下几个角度来定义:僵化性、脆弱性、牢固性、粘滞性、不必要的复杂性、不必要的重复、晦涩性。

    如果真的有一点我们写出了这样腐化的代码,我们不应当抱怨需求的变更。

    我们能做的是改变我们写代码的方式,尝试以下原则:

    1. 遵循敏捷实践去发现问题

    2. 应用设计原则去诊断问题

    3. 应用适当的设计模式去解决问题

    在开发的时候我们应该做到:

    分析一点

    设计一点

    编写一点

    测试你所有你能测试的部分

    敏捷开发的精髓在于快速响应。

    响应什么?相应变化。

    谁的变化?需求的变化。

     如果我们能够每隔一秒钟就从用户那里重新获得需求,然后进行分析、设计、编码、测试,那么我们就不会抱怨用户的需求总是变化了。因为在这一秒钟的时间段里,用户的需求没有任何变化。但是显然,这不可能。

     不可能的地方有两个,一是我们不能每一秒钟就重新获得一次需求。二是我们不可能每次都对用户的需求重新分析、设计。

     但是我们可以找到一个相对平衡的时间段和需求块,尽管不是完美的平衡。时间段有多长?取决于用户需求变化的速率。需求变化得越快,那么获取的频率应该越高。每次对多少需求进行分析和设计?这取决于我们拥有多少时间以及我们的工作效率.

     为什么需要重构?因为它会使代码更灵活,拥有更好的反应能力。

    为什么要拒绝腐化的代码?因为死人是永远不会做出响应的。

  • 相关阅读:
    工作的开端五
    工作的开端一
    工作的开端四
    工作的开端三
    工作的开端二
    springMVC基础配置
    3
    2
    文件操作Utils方法1
    解压zip并解析excel
  • 原文地址:https://www.cnblogs.com/hyliu/p/3371345.html
Copyright © 2011-2022 走看看