《1005-构建之法:现代软件工程-阅读笔记》

Posted 915

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《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 , 代码重构的方法: 提取方法分离条件、引入参数对象/保留全局对象、用符号常量替换魔法数字重命名方法。

 

以上是关于《1005-构建之法:现代软件工程-阅读笔记》的主要内容,如果未能解决你的问题,请参考以下文章

《构建之法:现代软件工程-阅读笔记》

《20171030-构建之法:现代软件工程-阅读笔记》

《20170914-构建之法:现代软件工程-阅读笔记1》

《20170906-构建之法:现代软件工程-阅读笔记》

构建之法:现代软件工程-阅读笔记

《2017 0907-构建之法:现代软件工程-阅读笔记》