第一件事:祝你好运,你会需要它。这可能是你遇到的一项巨大的工作。这对我来说听起来很熟悉;我过去做过类似的事情。
需要考虑的一件事;在你开始重构之前,我真的强烈考虑建立一个广泛的测试框架。原因是这样的:通过良好的单元测试和回归测试,您可以开始进行更改,而不必过多担心破坏现有功能。(也就是说,总是有一个问题,但是......)
也就是说:我会考虑切掉不同的“垂直”功能切片,看看你是否可以为它们编写不同的单元和集成测试;完成后,我会加入并开始进行重构。虽然一开始它可能非常小,但是仅仅隔离垂直部分的功能,然后为它编写集成和单元测试代码的过程会让你对现有的代码库有很多经验。如果你一开始设法让它变得更好一点,那么你就领先了那么多。
完成之后,开始查看可能更大的功能块进行重构。如果无法获得干净的功能块来重构,我会开始研究小块;如果你能找到一小块(有时非常小)的代码来提取、单元测试和重构,那么你就在前进。有时这可能看起来非常非常缓慢,如果你有一个非常大的项目,它会,但你会有所作为。
但总的来说,首先考虑进行测试以确认预期的功能。一旦这些测试到位,你就可以自信地重构(不是完全自信,但总比没有好)你没有破坏任何东西。从小处着手,并建立在现有代码库之外的技术之上。这是一个漫长的过程,但你最终会到达那里,并且代码库会更好。