我们的项目中有这个遗留的图像查看器组件,它工作正常,但它的源代码实在是一团糟。我必须向这个组件添加一个新功能,以便人们可以使用光笔为图像添加注释,这本身并不是一项复杂的任务,但可能是处理我们现有代码的噩梦。
我现在真的很困惑,我不知道我应该从哪里开始。我必须重构现有代码吗?如果不是我还能做什么?
所以这是我的问题:处理这种情况的最好(不那么痛苦)的方法是什么?
我们的项目中有这个遗留的图像查看器组件,它工作正常,但它的源代码实在是一团糟。我必须向这个组件添加一个新功能,以便人们可以使用光笔为图像添加注释,这本身并不是一项复杂的任务,但可能是处理我们现有代码的噩梦。
我现在真的很困惑,我不知道我应该从哪里开始。我必须重构现有代码吗?如果不是我还能做什么?
所以这是我的问题:处理这种情况的最好(不那么痛苦)的方法是什么?
编写大量测试,让您验证您对系统所做的更改不会更改或破坏现有功能。
这些测试就像施工人员进行重建时用来支撑实体建筑物的支架。该支架用于保持现有基础设施完好无损。您需要使用尽可能多的单元和集成测试来保留系统的基础设施,只要您有时间编写。
这些测试将允许您对系统进行小的迭代更改,并轻松验证这些更改是否仍保持预期行为。
这个问题不是完全重复的,但这个完全相同的答案适用(你只有一个更改的列表)
您应该阅读这篇非常好的文章Big Ball of Mud。对于您的回答,我们都会在某个时候得到一大堆泥浆,我们需要为其添加新功能。重构这样的代码不是一个好主意,因为它需要大量的测试。但是添加一些新行不会对其造成伤害。因此,除非您有很多时间,否则测试人员只会将新功能添加到现有代码中。尽管当前代码看起来很乱,但请记住它可以工作并经过测试。阅读这篇文章并确定哪种方法是好的。