代码之家  ›  专栏  ›  技术社区  ›  lomaxx

在决定是否应该重新开发系统时,我应该问什么问题?

  •  6
  • lomaxx  · 技术社区  · 16 年前

    我参与了评估我们的一些系统是否需要从头重写,或者是否应该部分重写,或者是否应该继续使用顶部的补丁。

    为了更好地评估情况,我想知道我应该问自己和其他人什么问题来帮助决定采取适当的行动?

    6 回复  |  直到 9 年前
        1
  •  8
  •   Ken Browning    16 年前

    Things You Should Never Do, Part I . 他极力主张不重新开发。

    货币报价:

    重要的是要记住,当你从头开始时,绝对没有理由相信你会比第一次做得更好。首先,您可能甚至没有与第一版相同的编程团队,因此您实际上没有“更多经验”。您只需要再次犯下大部分旧错误,并引入一些原始版本中没有的新问题。

    也许你应该问问自己,你是否足够了解这个系统,不需要重新编写它就可以解决问题。如果你不知道,可以说你对这个系统还不够了解,不足以从头开始重新开发它。

        2
  •  3
  •   Lawrence P. Kelley    16 年前

    也就是说,这里有几个问题要问:

    1. 核心重构就足够了吗?通过评估系统,您将知道核心问题是否比代码更深入。如果问题在于代码库(而不是技术本身),我更喜欢重构。

    2. 当前系统在多大程度上是可测试的?可测试性对于延长任何系统模块的使用寿命有很大帮助,因为可测试代码通常更易于扩展和维护。这也与#1有关。

    在我遇到的大多数情况下,答案都是否定的。

        3
  •  1
  •   paweloque    16 年前

    最后,当您从头开始重写系统时,您希望实现一些目标。你应该问问自己,你想要实现什么?您想:

    • 降低使用旧技术构建系统的风险
    • ?

    你可以做一个盈亏平衡分析,看看你的新系统何时开始发挥作用。在我看来,您应该能够降低重写系统的成本,并且能够看到新系统的成本比旧系统低。

        4
  •  1
  •   peterchen    16 年前
    1. 你低估了以前的项目多少时间?在最坏的情况下,你能承受多少时间?

    2. 目前投入了多少人力 现行制度? 你们有这些人手吗 给开发新系统的人?

    3. 如何确保不重新创建具有相同问题的相同系统?避免明显的架构错误通常是不够的。


    即使从长远来看,“重构和修复”意味着替换大部分现有系统,也意味着将所有资源放在一个系统中,而不是两个系统中。

        5
  •  1
  •   dkretz    16 年前

        6
  •  0
  •   SilentGhost    16 年前

    • 它能正确地完成工作吗?
    • 它快吗?
    • 扩展容易吗?