当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 任何一种技术都不是万能的。
 

 

 ·refactoring patterns第七部分    »显示摘要«
    摘要:虽然refactoring几乎可以随时进行,然而,按照我们关于两顶帽子的原则,在某些场合下,refactoring的介入显得更加实际、有意义、富有成效。 另外,在最后进入refactoring实践之前,我把kent beck和martin fowler给我们的忠告和建议放在这里。这些内容,特别是code smell和命名规则不但对我们进行refactoring具有很强的实践意义。同时,他们也促使我们对很多oo设计和编码的原则进行更多的思考。 refac......
    摘要:关于fault modeling using the program dependence graph 的读书笔记(1) mse 2004,perdubug,2004.6.1 注:fault modeling using the program dependence graph是一篇介绍关于软件故障分类和故障播撒技术的文献. 文章一开始介绍了看懂这篇文献需要了解的一些背景知识,其中包括: a.faults and faul......


refactoring Patterns:第四部分
任何一种技术都不是万能的。正象设计模式,合理的运用可以极大地提高设计的效率与美感,再不适当的场合运用就会产生所谓的反模式。我们的refactoring亦然。 但是,作为一种强有力的设计演变工具,refactoring值得我们付出努力。不能因为对新技术的恐惧而放弃这样的工具,我在这里对可能出现抗拒情绪的一些问题进行了解释。

不应 refactoring 的场合

【相关文章:设计模式c#语言描述——合成(Compo

程序原型 【扩展阅读:在DELPHI7中不使用任何第三方控件,

要最小化这种将原型直接变为产品的风险,一个办法就是选用一种特定的语言或工具来构建你的原型,而你绝不会使用这种语言或工具完成你的最终产品。 【扩展信息:层遇到select框时

当你原型化一个系统时,你通常不在乎程序的灵活性与效率。原型的目的仅仅是为了证明一个概念、实现一种探索,加快加深与客户的交流。一旦原型完成,这样的代码就应该丢掉,重新开始正确的编写。但是,一旦原型能够起到演示的作用,继续保留它并按照这样的方式一直实现下去的诱惑将很难抵挡。你会说:"程序运行的很好,就用这一个吧!"。从原型开始的目的来看,这样的策略最后是不会成功的。所以foote甚至说:

由于原型从根本来说,不会有意考虑以后的变化与程序的结构,对原型做refactoring是不可能也是毫无必要的。

程序不能工作

如果一个程序本身还不能工作,那么对他进行refactoring就没有任何意义。refactoring保留程序的可观察行为,那么refactoring的结果还是不能正常工作的。

这里并不排除使用refactoring可以排除bug,但那是在程序的绝大部分主要功能已经实现的情况下。

接近底线

如果你已经接近了最后提交日期,这个时候refactoring可能产生的效率的提高将发生在底线之后。到那时候,一切都没有意义了。

但是这个问题可以有另外一种考虑的思路,为什么会出现这种情况?是因为估算严重失误还是因为效率太低?如果效率太低,你怎样来提高效率?refactoring是一种提高生产力极好的方法,因为它使设计更好,从而使得变化更快。所以,如果你发觉时间可能不够,往往就是需要refactoring的一个信号

实施 refactoring 可能碰到的阻碍以及解决方案

refactoring带来的长期利益是每个人都能够看到的,但是并不是每个人都愿意使用它,opdyke说:

因此,这类技术的支持者可能会惊异于(失望于)这个世界没有人来敲他们的门。

接着,他指出即使已经意识到长期的利益,但人们还是不情愿使用这种方法的四个关键理由:

"我不理解如何应用你的方法 。" "你的方法只能得到长远利益,为什么要在现在竭尽努力?从长远的角度来看,我可能不再是这个项目或这个组织的一员了" 你的方法是一种开销活动,我是受雇来编写新特性的" "如果我们应用了你的方法,我们已有的实现可能以不刻预期的方式变化或中断。可性度与向后兼容性对我们很重要".


...   下一页
    摘要:关于fault modeling using the program dependence graph 的读书笔记(4) mse 2004,perdubug,2004.6.1 e. mutation testing(变异测试) 14.mutation testing is a fault-based testing technique [10, 19] that is based on the assumption that a program......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE