代码之家  ›  专栏  ›  技术社区  ›  Anders Sandvig

如何处理遗留代码(和数据)?

  •  0
  • Anders Sandvig  · 技术社区  · 17 年前

    我目前正在重组我的本地Subversion存储库,方法是添加一些新项目,并将一些旧存储库中的遗留代码和数据合并到其中。

    当我过去这样做时,我通常会将遗留代码放在一个专用的“遗留”文件夹中,以免“干扰”新的和“结构良好”的代码树。然而,本着重构的精神,我觉得这有点错误。理论上,遗留代码将随着时间的推移进行重构并移动到新位置,但在实践中这种情况很少发生。

    如何处理遗留代码?虽然我很想把旧的罪恶藏在“遗留”文件夹中,再也不看它了,但在某种程度上,我希望通过强迫它生活在存储库中更“健康”的居民中,也许遗留代码有一天会有更好的机会康复?

    (是的,我们都知道 we shouldn't rewrite stuff

    使现代化

    我并不担心跟踪各种版本的技术方面。我知道如何使用标签和分支。这更多的是一个心理方面,因为我更喜欢在存储库中有一个“整洁”的结构,这使人类更容易导航。

    5 回复  |  直到 17 年前
        1
  •  4
  •   hollystyles    17 年前

    所有的代码总有一天会成为“遗留”代码,为什么要把它们分开呢?源代码管理是按项目/分支或项目/平台/分支以及该层次结构类型进行的。谁在乎这颗牙有多长?

        2
  •  2
  •   Andrew    17 年前

    在subversion中,标记是一种非常便宜的操作。当您开始重构时,在常规阶段标记代码。这样,仍然可以很容易地访问旧代码(但功能代码),作为您闪亮的新代码(但已损坏的代码)的参考

        3
  •  1
  •   apenwarr    17 年前

    以下是您的免费心理分析:

    不要掩盖混乱;清洁它。否则它迟早会回来咬你的。

        4
  •  1
  •   Ilya Kochetov    17 年前

    这取决于你叫什么 遗产 如果它是您当前项目中的内容,但由其他人编写,或者不符合您当前的标准,请正常处理它,但在您的问题跟踪程序中标记它,以便将来重新分解。

        5
  •  1
  •   bahrep Ahamed    14 年前

    使用 外部定义 ( svn:externals 属性)引用旧代码,就像引用第三方存储库一样。

    然后,您可以将重构工作与依赖项目分开,并(使用固定版本引用,即-r1234)非常明确地说明依赖项目所依赖的遗留代码的版本。