zoukankan      html  css  js  c++  java
  • 《1005-构建之法:现代软件工程-阅读笔记》

    构建之法——现代软件工程

     

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

               答:产生的背景:在书上P113页有说到背景。在互联网时代,大部分的服务是通过网络服务器端实现,在客户端有各种方便的推送给渠道。一般消费者成为主要用户。网络的传播速度和广度,使得知识的获取变得更加容易,很多软件服务可以由一个小团队来实现。同时,技术更新的速度在加快,那种一个大型团队用一种成熟技术开发2-3在发布软件的时代已经过去了。用户需求变化也在加快,开发流程必须跟上这些快速变化的节奏。于是敏捷就产生了。

               主要特点: 个体和交互胜过过程和工具,可以工作的软件胜过面面俱到的文档,响应变化胜过遵循计划。

               恰当:团队合作。

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

          答:Code smell 的产生:Code Smell中文译名一般为“代码异味”,或“代码味道”,它是提示代码中某个地方存在错误的一个暗示,开发人员可以通过这种smell(异味)在代码中追捕到问题。

          

      1) Duplicated Code。代码重复几乎是最常见的异味了。他也是Refactoring 的主要目标之一。代码重复往往来自于copy-and-paste 的编程风格。与他相对应OAOO 是一个好系统的重要标志。
      2) Long method。它是传统结构化的“遗毒”。一个方法应当具有自我独立的意图,不要把几个意图放在一起,特别注意大类和长方法。
      3)Large Class。大类就是你把太多的责任交给了一个类。这里的规则是One Class One。
      4) Divergent Change。一个类里面的内容变化率不同。某些状态一个小时变一次,某些则几个月一年才变一次;某些状态因为这方面的原因发生变化,而另一些则因为其他方面的原因变 次。面向对象的抽象就是把相对不变的和相对变化相隔离。把问题变化的一方面和另一方面相隔离。这使得这些相对不变的可以重用。问题变化的每个方面都可以单 独重用。这种相异变化的共存使得重用非常困难。

      5 )Shotgun Surgery。这正好和上面相反。对系统一个地方的改变涉及到其他许多地方的相关改变。这些变化率和变化内容相似的状态和行为通常应当放在同一个类中。
      6 )Feature Envy。对象的目的就是封装状态以及与这些状态紧密相关的行为。如果一个类的方法频繁用get 方法存取其他类的状态进行计算,那么你要考虑把行为移到涉及状态数目最多的那个类。
      7 )Data Clumps。某些数据通常像孩子一样成群玩耍:一起出现在很多类的成员变量中,一起出现在许多方法的参数中……,这些数据或许应该自己独立形成对象。

     

    3 . 代码重构(Code refactoring)的特点: 持续偏纠和改进软件设计; 帮助发现隐藏的代码缺陷;从长远来看,有助于提高编程效率 。

    4 , 代码重构的方法: 提取方法分离条件、引入参数对象/保留全局对象、用符号常量替换魔法数字重命名方法。

     

  • 相关阅读:
    07组 Beta冲刺 (2/5)
    第07组 Beta冲刺 (1/5)
    第07组 Alpha冲刺 总结
    ES相关
    集群与分布式
    idea使用总结
    Tomcat配置与启动与访问
    Web基础
    B/S与C/S架构
    一周视频学习总结
  • 原文地址:https://www.cnblogs.com/lds18341211674/p/7628884.html
Copyright © 2011-2022 走看看