重构,是这样干的
收藏

重构不是一个阳春白雪的高级玩意儿,它是一种习惯,一种良好的编程习惯。这种习惯让我们迅速由菜鸟转变为大牛,可以编写出高质量、优秀的程序;它是遗留系统的一剂良药,它改变了我们的设计思路,让我们不再为不确定的将来过度设计,让设计回归简单与纯真。而这里正是学习“重构”这种优秀设计的家园。

分享到: Sina Tec

最近更新文章

中国软件业真的到了该反思的时候了

中国五千年文化造就了我们诸多的性格,其中之一就是好大喜功,这尤其反映在中国的软件产业。不错,我们确实拥有数量巨大的网民,拥有无与伦比的 ...
fangang 评论(0) 有2132人浏览 2014-04-07 12:19

过程扩展与放置钩子

前面我们谈到了功能扩展对维护一个软件的巨大作用。实际上,正是因为功能在不断地扩展,才使得我们的很多软件质量在下降。因此,如何进行功能扩 ...
fangang 评论(1) 有2283人浏览 2014-03-28 10:42

软件可以这样功能扩展

在所有关于软件维护的故事中,功能的扩展是一个永恒的话题。正因为软件系统需要功能的扩展,需要新功能的加入,才使我们的编程需要那么多的设计。可以说,正是因为新功能的扩展,使得原有的系统质量下降;正是因为软件质量的下降,才使我们需要进行深入的分析与研究,制订设计原则,总结设计模式;正是因为要解决软件质量下降的问题,经过一番艰苦卓绝的摸索过程,我们才认识到系统重构才是解决该问题的最佳方案。 然而,事情总是 ...
fangang 评论(2) 有4780人浏览 2014-03-24 11:30

做好代码复用不简单

前面我们用了那么多示例讨论了代码复用。毫无疑问,几乎所有人都明白代码复用的重要意义,知道要写好代码必须要合理地复用代码。然而,曾经有一 ...
fangang 评论(0) 有2681人浏览 2014-01-31 19:57

代码复用应该这样做(3)

但假如被合并的代码所在的类具有某种并列关系,甚至是同一个父类下的多个子类,或者同一接口的多个实现类,则我们可以采用继承的方式解决代码复 ...
fangang 评论(1) 有2694人浏览 2014-01-11 11:24

代码复用应该这样做(2)

以上是对一个对象中各函数间的代码复用。另一种情况是这被比较的两份或者多份代码不在同一个对象中,这应该怎么办呢?我们可以采用的办法比较多,首先一种比较直观的办法就是运用“抽取类”将共同的部分抽取到一个工具类中,为其它各类所调用。比如,看看这个例子: 我们有个遗留系统在大量地方需要获取当前服务器时间,该功能在过去版本中这样写: Date now = new Date(); 后来JDK升级以后该方法被废 ...
fangang 评论(6) 有3214人浏览 2014-01-11 11:13

代码复用应该这样做(1)

前面我们讨论了小步快跑,是不是开始被雷到了,做了这么多年程序猿,原来程序可以这么开发。是的,小步快跑是一个十分新颖的概念,也许你一时半 ...
fangang 评论(0) 有4483人浏览 2014-01-11 11:07

小步快跑是这样玩的(下)

系统重构到这一步,我们来看看用户关于时间问候语部分的变更需求:问候需要更加精细,如中午问候“Good noon! ”、傍晚问候“Good evening! ”、午夜问候“Good midnight! ”。除此之外,用户希望在一些特殊的节日,如新年问候“Happy new year! ”、情人节问候“Happy valentine’s day! ”、三八妇女节问候“Happy women’s day! ...
fangang 评论(13) 有4337人浏览 2014-01-04 22:58

小步快跑是这样玩的(上)

软件的发展规律就是这样的,起初十分简单明了,使我们可以轻松地进行合理的设计。接着开始变更,业务变得越来越复杂,程序也随之变得越来越复杂 ...
fangang 评论(0) 有3579人浏览 2014-01-04 22:44

我们应当改变我们的设计习惯

以往我们在设计一个系统时,总是喜欢大布局。全面地整理系统需求,全面地分析系统功能,再将系统整体地划分成数个模块,分别去设计、开发、测试 ...
fangang 评论(4) 有3560人浏览 2014-01-02 08:59

系统重构是个什么玩意儿

如题,系统重构是一个什么玩意儿呢?大家可能有很多的不同看法: 1.系统重构是那些系统架构师、技术大牛玩的高端玩意儿,跟咱普通屌丝不懂,跟 ...
fangang 评论(3) 有3336人浏览 2013-12-11 13:25

需求变更是罪恶之源吗?

我们身处软件工业时代这个令人振奋的时代,却面临着遗留系统这个令人尴尬的难题。事情总是这样的:软件最开初开发的时候总是非常清晰,清晰的需 ...
fangang 评论(0) 有2435人浏览 2013-12-08 10:54

遗留系统:IT攻城狮永远的痛

我常常觉得我们非常幸运,我们现在所处的时代是一个令人振奋的时代,我们进入了软件工业时代。在这个时代里,我们进行软件开发已经不再是一个一 ...
fangang 评论(0) 有3218人浏览 2013-12-05 06:40
  • 专栏创建者:fangang
  • 创建时间:2014-01-13 20:23:58
  • 专栏文章数:33篇
  • 专栏被浏览:91475 次

本专栏热门文章

最新评论

做了一些开发,看了楼主的文章,我深有感触,为自己的做法找到了理论来源,对一些原来不懂的概念也渐渐明白, ...
Codepoe 评论了 我们应当改变我们的设计习惯
thefenghou 写道前一两个星期刚听了范老师的课,收获颇多。再看老师的博客,写得也非常好,再次表 ...
fangang 评论了 系统重构是个什么玩意儿
前一两个星期刚听了范老师的课,收获颇多。再看老师的博客,写得也非常好,再次表示感谢!
thefenghou 评论了 系统重构是个什么玩意儿
SpringJUnit4ClassRunner 现在我们也在用,感觉就是,系统模块"原子化& ...
zhangliguoaccp 评论了 大话重构连载13:自动化测试——想说爱你不 ...
junit现在可以通过SpringJUnit4ClassRunner来跑测试代码, 这意味着可以让sp ...
zipo2014z2039667 评论了 大话重构连载13:自动化测试——想说爱你不 ...
那里需要扩展那里就抽象,发现好多地方都是这样的
liuwaner118 评论了 大话重构连载8:盘点我们的重构工具箱
“所有企业高管把软件外部质量放在高于一切的高度的同时,软件内部质量却长期为人所漠视。”软件内部质量在“ ...
xiaokek 评论了 大话重构连载5:软件修改的四种动机
邪恶的喵呜 写道女浴室透明的话你是看得见还是看不见女浴室的墙是透明的,那么你就能看到洗澡的人,而仿佛不 ...
xiaokek 评论了 大话重构连载2:什么是系统重构
受教了,谢谢!
niliu0911 评论了 大话重构连载19:大对象的演化过程
xinyuan197 写道值对象具体指? 传递Object?还是基本类型的对象形式,如Long,Int ...
fangang 评论了 大话重构连载18:最常见的问题
Global site tag (gtag.js) - Google Analytics