Divergent Change & Shotgun Surgery

Divergent Change

  

  

Shortgun Surgery

  

  

  

时间: 2024-10-13 03:23:57

Divergent Change & Shotgun Surgery的相关文章

Divergent Change(发散式变化)---要重构的信号

“ 当你看着一个类说,呃,如果新加入一个数据库,我必须修改这三个函数:如果新出现一种金融工具,我必须修改这四个函数.那么,此时也许将这个类分成两个会更好,这么一来每个对象就可以只因一种变化而需要修改. ” 上述特征的名称叫做:Divergent Change.它表示,某个类经常因为不同的原因在不同的方向上发生变化.比如,上述的类,有两个原因,会导致这个类在两个不同的方向上发生变化. 我们认为,一个类,只会因为一种原因而导致变化,这才是好的.如果,这个类,会因为多种原因发生变化,那么,我们就要重构

代码坏味道

肿胀 代码,方法或类膨胀到难以维护,一般是长期积累形成,从未人尝试瘦身. 这包括: 长方法,大类,长的参数列表,偏爱使用原始类型,数据块 对 OO 的滥用 对面向对象原则的不正确或一知半解. switch 语句, 临时字段, 拒绝继承,Alternative classes with different interfaces 阻碍改变 修改一处,要同时修改很多处.程序开发变得越来越复杂和麻烦. Divergent Change , Shortgun Surgery, Parallel Inher

Java程序最容易犯的21种错误

1.Duplicated Code 代码重复几乎是最常见的异味了.他也是Refactoring的主要目标之一.代码重复往往来自于copy-and-paste的编程风格.与他相对应OAOO是一个好系统的重要标志. 2.Long method 它是传统结构化的"遗毒".一个方法应当具有自我独立的意图,不要把几个意图放在一起. 3.Large Class 大类就是你把太多的责任交给了一个类.这里的规则是One Class One Responsibility. 4.Divergent Cha

软件配置管理复习

软件配置管理 第1章    软件配置管理概念与目标 软件配置管理(Software Configuration Management, SCM) (1)    定义(多个): l  软件配置管理是指一套管理软件开发和维护过程中所产生的各种中间软件产品的方法和规则,它是控制软件系统演变的学科. l  软件配置管理是一组针对软件产品的追踪和控制活动,它贯穿于项目生命周期的始终,并代表着软件产品接受各项评审. l  软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计用来:(1) 标识变化:(2)

《重构:改善既有代码的设计》读书笔记

??如果一个人没有听说过<重构>这本书,那么他一定不敢说自己是程序员:如果一个人没有阅读过<重构>这本书,那么很难想象他会是一名优秀的程序员.这本书是很多公司要求Java程序员必读的三本书之一(另外两本书是<Java编程思想>和<Effective Java>),其实无关编程语言,是程序员就能够从这本书中受益. ??何谓重构?重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低修改成本.重构是用微小的步伐修改程序,在这个

《重构——改善既有代码的设计》读书笔记

重构--改善既有代码的设计 1 重构概述 1.1 重构的概念(What) Refactoring 名词:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低修改成本. 动词:使用一系列重构方法,在不改变软件可观察行为的前提下,调整其结构. 1.2 为什么要重构(Why) 改进软件设计 提高代码质量和可读性,使软件系统更易理解和维护 帮助尽早的发现缺陷 提高编程速度 1.3 何时重构(When) 何时重构: 1)随时随地进行. 2)三次法则:第一次做某件事只管去做:

软件工程第四次作业

1.敏捷开发是在什么样的背景下产生的?其主要特点有哪些?什么时候选择敏捷开发更恰当,为什么? 2.Code smell 是如何产生的?有哪些典型的 code smell?代码重构(Code refactoring)有哪些优点?有哪些代码重构的方法? 1.答:敏捷软件开发产生的背景: 敏捷这个词汇最早于2001年被一些热衷于改善软件开发过程的软件工程师用来描述一种能够增加客服满意度的软件开发过程--敏捷式开发过程. 1.2其主要特点有哪些? (1)敏捷开发方法是“适应性”(Adaptive)而非“

第四次作业(1,2)

问题: 1.敏捷开发是在什么样的背景下产生的?其主要特点有哪些?什么时候选择敏捷开发更恰当,为什么? 2.Code smell 是如何产生的?有哪些典型的 code smell?代码重构(Code refactoring)有哪些优点?有哪些代码重构的方法? 解答:    1. 背景:  敏捷开发是在基于客户能够在需求阶段就给出完整.准确的需求的假设,所以期望于在项目初期获得详细的需求,然后严格控制需求变更,最终完成符合需求的软件.但实际上需求是“涌现”出来的,而无法再项目初期就明确的定义它,也就

第四次作业(第1,2题)

题目: 1.敏捷开发是在什么样的背景下产生的?其主要特点有哪些?什么时候选择敏捷开发更恰当,为什么? 2.Code smell 是如何产生的?有哪些典型的 code smell?代码重构(Code refactoring)有哪些优点?有哪些代码重构的方法? 1.答:敏捷软件开发产生的背景: •软件开发的新挑战 a:快速的市场进入时间,要求高生产率 b:快速变化的需求 c:快速发展的技术 •传统的软件开发方法 a:强调过程和文档 b:对变化的适应能力偏弱 敏捷软件开发的特点:敏捷开发存在优先级,是