你会怎么保持的传统应用于:

  1. 没有单元的测试,有很大的方法

  2. 有很多重复的逻辑

  3. 没有分离的关切
  4. 有一个很大的快速攻击和硬编码 字符串
  5. 已经过时的和错误的 文档
  6. 要求是不适当的记录!这实际上已经导致争端之间的测试,开发人员和客户在过去。当然也有一些非功能性要求,诸如不应该是缓慢的,不冲突和其他商业逻辑,是已知的应用程序的用户。但是,除了最常见的感情和最常识的业务工作流程,有小小的指南应该是什么(或不)完成。

???

有帮助吗?

其他提示

尽快编写测试。优选地违反要求(如果存在的话)。从功能测试开始。以小块重构。无论何时触摸代码,都要比开始时更清洁,更好。

两件事。

  1. 在有机会的情况下编写单元测试。
  2. 一旦你有足够的单元测试来自信,就开始重构。
  3. 你完成这个的速度可能很慢......通常,你应该“只是维持它”。不解决它。

    在“学习如何维护它”期间但是,你可以编写很多单元测试。

    然后,当找到错误并请求增强功能时,您可以添加更多测试。

    它是敏捷的,适用于遗产。

我已经看到,工作过并且正在代码库中工作,该代码库满足问题中提到的所有条件: - )

维护此代码库所遵循的方法是不打算。 FWIW,代码工作,最终用户很高兴。没有人会听开发人员的呐喊,即有重复的代码,硬编码的字符串等。我们只是偷了一些时间来修复任何可能的事情并且非常谨慎地不引入新的错误..

我想我能创建一个小组的最新信息:什么样的行动电话的功能等。

从那里,我会看着重构。重复的逻辑似乎有什么东西,可能是重组,但要记住

  • 这可以是一个巨大的任务,当你意识到在许多多的地方,被称为和逻辑
  • 两个功能,似乎类似,可能有微小的差别,即a-,而不是a+

我认为最大敦促抵制的是"只是重建整个该死的东西!",并得到系统的概述第一,以不再神秘的野兽。

sudo rm -rf /

但更严重的是,我认为必须对其进行评估。如果代码不断地是变更请求的来源并且变化很困难,那么不久之后你必须考虑是否值得尝试将系统重构/重新设计成更现代的东西。当然,这并不总是切实可行,因此您最终只需要团队中的一些人负责维护旧部件。尽可能地,团队中的每个人都应该能够维护系统的所有部分......

我认为另外一件重要的事情是跟踪团队在执行维护/功能请求的遗留系统上花费的时间和精力。在评估替换旧系统/组件的新工作的规划时,这些指标可能是令人信服的。

我基本同意Paul C所说的一切。我不是TDD牧师,但无论何时你触及遗留的代码库 - 特别是你不熟悉的代码库 - 你需要有一个坚实的方法来重新测试并确保你跟随希波克拉底:第一, 不要伤害。特别是测试,良好的单元和回归测试是实现这一目标的唯一方法。

我强烈建议您购买一份 逆转:逆向工程的秘密软件 如果它是您不熟悉的代码库。虽然这本书深入到了你当前需求之外的深处(就我而言),它教会了我很多关于如何安全和合理地使用其他人的代码的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top