当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

追求代码质量 - 用代码器量举行重构[Java编程]

赞助商链接



  本文“追求代码质量 - 用代码器量举行重构[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在我上中学的时刻,有一位英语教师说:“写作就是重写别人已经 重写过的 东西.” 直到大学,我才真正理解了他这句话的意思.并且,当我自觉地采取 这个实践的时刻,就开始喜好上了写作.我开始为我写的东西自大.我开始真正在乎我的表达方法和要传达的内容.

当我开始开辟人员生涯时,我喜好阅读有经验的专家编写的技术书籍,并且 想知道为什么他们花这么多时间编写代码.当时,编写代码看起来是件简单的工 作 —— 有些人(老是比我级别高的人)会给我一个问题,而我会用任何可行的 办法办理它.

直到我开始与其他开辟人员合作大型项目,才开始理解我的技术的真正意义 所在.我也就在这个时刻起,开始有意识地关心我编写的代码,乃至关心起其他 人 编写的代码.目前我知道了,假如不注意代码质量,那么早晚它们会给我造 成一团乱麻.

我恍然大悟 的一刻呈目前 1999 年底,当时我正在阅读 Martin Fowler 那 本影响庞大的书 Refactoring: Improving the Design of Existing Code(重 构:改良现有代码的计划,这本书对一系列重构情势举行分类,并由此成立了重 构的大众词汇.在此之前,我一向都在重构我的代码(大概其他人的代码),但 是却不知道自己做的就是重构.目前,我开始为我编写和重构的代码感到越发自 豪,因为我做的工作恰是在增长代码的编写方法并让它们日后更易保护.

什么是重构?

按照我的概念,重构就是改良已经改良的 代码的行为.实际上,重构是个永 不断止的代码编写历程,它的目的是通过构造的改良而提高代码体的可保护性, 但却不 改变代码的整体行为.重要的是要记侧重构与重写 代码明显差别.

重写代码会改正代码的行为乃至合约,而重构保持对外接口不变.关于重构 办法的客户机来说,看不到辨别.事情像从前一样工作,但是工作得更好,主要 是因为加强的可测试性大概明显的性能晋升.

主动和被动重构

那么问题就变成了“我怎么才能知道什么时刻该举行重构呢?” 一段代码的 可保护性是个主观的问题.但是,我们中的大都人城市发现,保护自己编写的代 码要比保护其他人编写的代码简单得多.但在这点上也有争议 —— 在整个职业 生涯中保护自己的代码是最大挑衅.没有几个真正的 “代码牛仔” 充足幸运地 可以不断地变更工作,而没必要改正其他人的代码.关于我们中的大都人来说,必 须保护其他人的代码恰好是程序员生活的一部份.决意代码能否需求重构的办法 ,普通是主观的.

但是,也有大概客观地判断代码能否该当重构,不管是自己的代码还是别人 的代码.在 这个系列前面的文章中,我介绍了若何用代码器量客观地测试代码 质量.实际上,可以用代码器量很简单地找出大概难以保护的代码.一旦客观地 判断出代码中有问题,那么便可以用便利的重构情势改良它.

老是运行测试用例!

重构别人编写的代码的诀窍是不要把它弄得更糟.在我重构生涯的早期,学 到的一件事就是在改正一些东西之前 拥有一个测试用例很重要.我是通过艰苦 的一夜,在我自己整理得很好的重构办法中苦苦寻觅,只为找到一个我不当心破 坏的别人编写的工作正常的代码之后学到这个教导的,不当心破坏的缘由就在于 重构之前没有对应的测试用例.请注意我的告诫,在自己举行重构之前,老是要 运行测试用例!

提取办法情势

Martin Fowler 的书出版之后的几年中,增添了很多新的重构情势分类;但 是,迄今为止最简单学习的情势,也大概是最有效的情势,仍旧是提取办法 (Extract Method) 情势.在这个情势中,办法的一个逻辑部份被移除,并被 赋予自己的办法定义.目前被移走的办法体被新办法的调用替换,如图 1 的 UML 图所示:

图 1. 提取办法情势实践

提取办法情势供应了两个关键好处:

本来的办法目前更短了,因此也更简单理解.

移走并放在自己办法中的逻辑表目前更简单测试.


  以上是“追求代码质量 - 用代码器量举行重构[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 追求代码质量 - 操纵TestNG-Abbot实现自动化GUI测试
  • 追求代码质量 - 可反复的系统测试
  • 追求代码质量 - 顺服复杂的冗长代码
  • <b>追求代码质量 - 测试Struts遗留的操纵程序</b>
  • 追求代码质量 - 谨防精密耦合!
  • 追求代码质量 - 亲身体验行为驱动开辟
  • 追求代码质量 - 通过测试分类实现矫捷构建
  • 追求代码质量 - JUnit 4与TestNG的对比
  • 追求代码质量 - 用代码器量举行重构
  • 追求代码质量 - 操纵Selenium和TestNG举行编程式测试
  • 追求代码质量 - 用JUnitPerf举行性能测试
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .