注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

樱之花

叶散的时候,你明白欢聚;花谢的时候,你明白青春.

 
 
 

日志

 
 
关于我

分类中“我的实验室”是我在日常工作中的一些知识总结,有些写的比较匆忙,可能大家在阅读时会产生困扰,后期有时间我会重新整理编辑,谢谢大家的到访,您们的支持是我前进的动力!

网易考拉推荐

重构的困难  

2012-03-04 11:49:10|  分类: 代码重构 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
为什么开发者不愿意重构他们的程序?假设你是一位软件开发者。如果你的项目刚刚开始(没有向下兼容的问题),如果你知道系统想要解决的问题,如果你的投资方愿意一直付钱直到你对结果满意,你真够幸运。虽然这样的情景适用面向对象技术,但对我们大多数人来说,这是梦中才会出现的情景。

更多时候,你需要对既有软件进行扩展,你对自己所做的事情没有完整的了解,你受到生产进度的压力。这种情况下你该怎么办? 

你可以重写整个程序。你可以倚赖自己的设计经验来纠正程序中存在的错误,这是创造性的工作,也很有趣。但谁来付钱呢?你又如何保证新的系统能够完成旧系统所做的每一件事呢? 

你可以拷贝、修改现有系统的一部分,以扩展它的功能。这看上去也许很好,甚至可能被看做一种复用方式:你甚至不必理解自己复用的东西。但是,随着 时间流逝,错误会不断地被复制、被传播,程序变得臃肿,程序的当初设计开始腐败变质,修改的整体成本逐渐上升。 

重构是上述两个极端的中庸之道。通过重新组织软件结构,重构使得设计思路更详尽明确。重构被用于开发框架、抽取可复用组件、使软件架构更清晰、使新功能的增加更容易。重构可以帮助你充分利用以前的投资,减少重复劳动、使程序更简化更有性能。 

假设你是一位开发者,你也想获得这些好处。你同意Fred Brooks 所说的应对并处理变化,是软件开发的根本复杂性之一。你也同意,就理论而言,重构能够提供上面所说的各种好处。 

为什么还不肯重构你的程序呢?有几个可能的原因: 

1. 你不知道如何重构。
2. 如果这些利益是长远才展现的,何必现在付出这些努力呢?长远看来,说不定当项目收获这些利益时,你已经不在职位上了。
3. 代码重构是一项额外工作,老板付钱给你,主要是让你编写新功能。
4. 重构可能破坏现有程序。

这些担忧都很正常,我们经常听到公司的员工那么说。这其中有一些技术问题,以及一些管理问题。因此必须解决所有这些问题,然后开发者才会考虑在他们的软件中使用重构技术。

  评论这张
 
阅读(378)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017