您的位置:首页 > 其它

为什么开发者不愿意重构他们的程序?(摘录)

2008-06-24 12:57 281 查看
为什么开发者不愿意重构他们的程序?
---摘自《重构--改善既有代码的设计》

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

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

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

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

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

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

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

这些担忧都很正常,我经常听到电信公司和其他高科技公司的员工那么说。这其中有一些技术问题,以及一些管理问题。首先必须解决所有这些问题,然后开发者才能会考虑在他们的软件中使用重构技术。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: