为什么软件开发需要重构?

[复制链接]
查看11 | 回复5 | 2013-6-24 20:26:20 | 显示全部楼层 |阅读模式
举个例子。假设构建一个复杂系统需要考虑10点。由于人本身的局限,你肯定会做错其中的6点,当然这6点并不影响第一版的发布。然后,你如何修正这6点?[ol]
  • 你不能重写系统。因为重写系统你还会做错6点,虽然可能是不同的6点。
  • 你不能在增加系统功能的同时修正这6点,因为增加一个功能,就会再增加比如说5点要考虑的东西,这个过程中你又会做错3点。
  • 当你不增加新功能,又试图修复这6点中的某一个或者几个,这个过程就是『重构』。
  • 重构并不能保证不会毁掉你原本做对的4点,但是你起码可以肯定这个错误是因为你的重构造成的而不是别的原因(比如第2种做法里新增加的那5点)。而且这也是鼓励你在第3种做法里尽量只修正一个错误...
  • 回复

    使用道具 举报

    千问 | 2013-6-24 20:26:20 | 显示全部楼层
  • 「重构」并不是完全打翻重来,最开始的设计也并非一无是处。
  • 软件开发是一个过程,软件使用的人群、环境都可能在进行中发生变化,当初设计中的一些假设、条件都会变化,这就需要根据新的状况做出调整。「重构」是代码层面的「重设计」,代码是软件的实现方式,设计做出调整,代码当然也要调整。
  • 「重构」也是对原有代码的完善,消除代...
  • 回复

    使用道具 举报

    千问 | 2013-6-24 20:26:20 | 显示全部楼层
    重构对于改善项目结构,代码维护很有必要。 重构一般都是对已经写好的项目进行改进,这个过程不修改bug,不增加新功能,但能够提高重用性,可扩展性,使代码更易读。虽然如此,但重构不是必须的。并且重构的代价也比较大,一般过程也比较漫长。...
    回复

    使用道具 举报

    千问 | 2013-6-24 20:26:20 | 显示全部楼层
    我的答案可能跟重构没有任何关系,关于程序开发,我个人认准的两条准则是“迭代”+“DRY”,从这两条准则出发,重构就是通过不断迭代的过程调整程序的结构,消除Repeat Yourself的代码和构建。...
    回复

    使用道具 举报

    千问 | 2013-6-24 20:26:20 | 显示全部楼层
    1.需要重构,看着大量重复的代码、不优雅的设计等等,真的想把他改掉,怕留下来丢人。2.愿意重构,重构需要投入时间和精力,这需要我们的决心。PS:最近做的一个项目就是如此,同时也是自己做的第一个项目,很纠结。...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    主题

    0

    回帖

    4882万

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    48824836
    热门排行