zoukankan      html  css  js  c++  java
  • 第四次作业(1、2小题)

    ●题目:

          1、敏捷开发是在什么样的背景下产生的?其主要特点有哪些?什么时候选择敏捷开发更恰当,为什么?

          2、Code smell 是如何产生的?有哪些典型的 code smell?代码重构(Code refactoring)有哪些优点?有哪些代码重构的方法?

    ●回答:

          1.1、背景:

               1)20世纪60年代,软件作坊,软件规模小,以作坊式开发为主;

               2)70年代,软件危机,硬件飞速发展,软件规模和复杂度激增,引发软件危机;

               3)80年代,软件过程控制,引入成熟生产制造管理方法,以“过程为中心”分阶段来控制软件开发(瀑布模式),一定程度上缓解了软件危机;

               4)90年代,重型过程,软件失败的经验促使过程被不断增加约束和限制,软件开发过程日益“重型化”,开发效率低、响应速度变慢;

               5)2001~今,敏捷被普遍认可并迅速流行。

         1.2、主要特点:

                敏捷开发是一种以人为核心的、迭代的、循序渐进的开发方式,其主要特点有:

               1)个体与交互重于过程与工具;

               2)可用的软件重于完备的文档;

               3)客户协作重于合同谈判;

               4)响应变化重于遵循计划。

          1.3、何时采用敏捷开发:

                以下情况下选择敏捷开发较为合适:

               1)项目团队的人数不能太多;

               2)项目经常发生变更,高风险的项目实施;

               3)开发人员可以参与决策。

         2.1、Code smell :            

               代码异味(code smell),是指在代码之中潜在问题的警示信号.并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并做出相应决定。它是提示代码中某个地方存在错误的一个暗示,开发人员可以通过这种smell(异味)在代码中追捕到问题。

          2.2、典型的 code smell:

                代码重复( Duplicated Cod)

                太多的注释(comments)

                类别代码(type code)

                过长函数(Long Method)等

           2.3、代码重构(Code refactoring)的优点:

                 1)增进代码内部的清晰性和一致性;

                 2)提高编程效率,提高代码可读性;

                 3)方便程序的后期维护等。

           2.4、几种常见的代码重构:

                1)Extract Method(提取函数):让每个函数只做一件事,抽取能够被组织在一起的代码,并单独抽取为一个函数。如果函数的粒度小,被复用的机会就更大。

                2)Inline Temp(内联临时变量):重构前要保证这个临时变量只被赋值一次,所以当遇到for等循环语句时,要注意

    被内联的变量的值是否会在循环中被改变。有时在执行for之前定义固定的临时变量是必要的。尤其是当临时变量取自某对象的属性,而这个对象将在for循环中被更改。

                3)Replace Temp with Query(以查询取代临时变量)

                4)Replace Nested Conditional with Guard Clauses(以卫语句嵌套条件表达式)

                5) Introduce Explaining Variable(引入解释性变量)

  • 相关阅读:
    打开Fiddle,提示“Machine-wide Progress Telerik Fiddler installation has been found at ...Please, use that one or uninstall it ...”
    Type Target runtime Apache Tomcat v8.0 is not defined.
    Loadrunner的安装注意事项
    11.java并发编程的艺术-java并发编程实践
    10.java并发编程的艺术-Executor框架
    9.java并发编程的艺术-java中的线程池
    8.java并发编程的艺术-java中的并发工具类
    Java并发编程的艺术-java中的13个原子操作类
    6.java并发容器和框架——Fork/Join框架
    6.java并发容器和框架——Java中的阻塞队列
  • 原文地址:https://www.cnblogs.com/zj326681/p/4513744.html
Copyright © 2011-2022 走看看