我将在不久的将来修复 WinForms 应用程序 (.NET 2.0)。通过查看源代码,我发现大型代码文件(超过 2000 行)其中大多数是生成的对话框,其中包含大量代码隐藏。
有没有人可以分享我的建议?任何关于错误修复或重构 WinForms 应用程序的战争故事或最佳实践?
我将在不久的将来修复 WinForms 应用程序 (.NET 2.0)。通过查看源代码,我发现大型代码文件(超过 2000 行)其中大多数是生成的对话框,其中包含大量代码隐藏。
有没有人可以分享我的建议?任何关于错误修复或重构 WinForms 应用程序的战争故事或最佳实践?
简短版本:
购买 Michael Feathers 的书,有效地使用旧代码。
更长的版本:
维护(更改)此类应用程序的最大挑战是在不破坏某些内容的情况下进行。这意味着您需要了解应用程序的行为,最简单的方法是围绕它进行测试。正如您所指出的,起初这可能令人生畏,但并非不可能。它需要纪律和耐心。
您不必从单元测试开始。获得自动化框架(例如 NUnitForms 或 White)通常更容易首先将应用程序作为黑盒来驱动。在你需要改变的区域周围建立一套测试,让你有足够的信心在不破坏任何东西的情况下改变它。然后进入并开始针对单元可测试性进行重构。
如果它类似于我正在开发的应用程序,它主要涉及:
有时重写代码部分比重构它们更容易,但这需要通过测试或参考规范(如果存在)来理解行为。
除了任何实用建议外,如果您是从事此工作的团队的一员,请确保您在一起工作。这将使工作更轻松、更愉快,并确保您今天所做的更改明天不会被不了解您正在做什么的人撤消。
我可以在这个话题上写一整天,但羽毛先生在这方面做得更好,而且我很饿。祝你好运!
我认为这是基本的东西。这里很多人一定有很多建议。祝你好运!
我会先写一些单元测试。如果代码相当密集,您将需要这些来保持理智。
它们会给你一些信心,让你在重构中相当积极。
从头到尾的几件事: