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

如何向现有组件添加新功能?[关闭]

  •  0
  • Beatles1692  · 技术社区  · 16 年前

    我们的项目中有一个传统的图像查看器组件工作正常,但它的源代码实在是一团糟。我必须向这个组件添加一个新功能,这样人们就可以使用光笔向图像添加注释,这本身不是一项复杂的任务,但在处理现有代码时可能是一场噩梦。

    我现在真的很困惑,我不知道从哪里开始。是否必须重构现有代码?如果没有,我还能做什么?

    所以我的问题是:在处理这种情况时,最好的(不那么痛苦的)方法是什么?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    这个问题不是完全重复的,但是这个完全相同的答案也适用(您只需要列出一个更改)

    https://stackoverflow.com/questions/1386824/hired-as-a-developer-to-maintain-and-update-current-code-base-no-docs/1386844#1386844

        2
  •  1
  •   Andrew Hare    16 年前

    编写大量的测试,以验证对系统所做的更改不会更改或破坏现有功能。

    这些测试就像是支撑建筑工人进行重建时用于支撑物理建筑的支撑工作。支撑工作用于保持现有基础设施的完整性。您需要使用尽可能多的单元测试和集成测试来保存系统的基础结构,因为您有时间编写这些测试。

    这些测试将允许您对系统进行小的、迭代的更改,并轻松地验证这些更改是否仍然保持预期的行为。

        3
  •  1
  •   particle    16 年前

    你应该读这篇很好的文章 Big Ball of Mud .对于您的答案,我们在某个时刻都会遇到一个大麻烦,我们需要为它添加新的功能。重新分解这样的代码不是一个好主意,因为它需要大量的测试。但是增加一些新行不会对它造成伤害。因此,除非您有足够的时间,而且测试人员也会将新功能添加到现有代码中。虽然当前的代码看起来很糟糕,但请记住它是有效的,并且经过了测试。阅读这篇文章,并对哪一种方法是好的进行思考。