如何向现有组件添加新功能?

时间:2010-01-19 07:14:30

标签: legacy-code

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

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

所以这是我的问题:处理这种情况的最佳(较少痛苦)方法是什么?

3 个答案:

答案 0 :(得分:1)

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

这些测试类似于在施工人员进行重建时用于支撑物理建筑的支撑工作。该支撑工作用于保持现有基础设施的完整性。您需要使用尽可能多的单元和集成测试来保留系统的基础结构。

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

答案 1 :(得分:1)

这个问题不是完全相同的,但这个答案完全相同(你只有一个更改的清单)

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

答案 2 :(得分:1)

你应该阅读这篇非常好的文章Big Ball of Mud。对于你的答案,我们在某些时候都会得到一个很大的漏洞,我们需要为它添加新的功能。重新分解这样的代码并不是一个好主意,因为它需要大量的测试。但添加几条新线不会对它造成伤害。因此,除非您有很多时间,否则测试人员只需将新功能添加到现有代码中。虽然当前的代码看起来很乱,但记住它的工作和测试。阅读文章,了解哪种方法是好的。