gpt4 book ai didi

.net - 如何重构 WinForms 应用程序?

转载 作者:行者123 更新时间:2023-12-04 15:59:52 25 4
gpt4 key购买 nike

我打算在不久的将来修复 WinForms 应用程序 (.NET 2.0) 的错误。通过查看源代码,我发现了很大的代码文件(超过 2000 行),其中大部分是带有大量代码隐藏的生成对话框。

有任何提示可以分享吗?是否有关于错误修复或重构 WinForms 应用程序的 war 故事或最佳实践?

最佳答案

简短版本:

购买 Michael Feathers 的书,有效地使用遗留代码。

较长的版本:

维护(更改)此类应用程序的最大挑战是在不破坏任何东西的情况下进行操作。这意味着您需要了解应用程序的行为,而最简单的方法是围绕它进行测试。正如您所指出的,一开始这可能令人望而生畏,但这并非不可能。这需要纪律和耐心。

您不必从单元测试开始。通常更容易获得一个自动化框架,例如 NUnitForms 或 White,首先将应用程序作为黑盒来驱动。围绕您需要更改的区域构建一套测试,让您有足够的信心在不破坏任何东西的情况下进行更改。然后进入并开始重构以实现单元可测试性。

如果像我正在做的应用,主要包括:

  • 删除未使用的代码(这是一种干扰)。
  • 删除公共(public)静态方法调用并用接口(interface)替换它们(依赖注入(inject)是这里的关键技术)。
  • 将重复的代码提取到类中。
  • 将文件处理、网络 IO 和用户界面代码隐藏在适配器后面(这些最初可以是非常薄的包装器,刚好足以让您在测试时用 stub 替换它们)。
  • 寻找机会将行为提取到小类(class)中。

有时重写部分代码比重构它们更容易,但这需要通过测试或引用规范(如果存在)来理解行为。

除了任何实用的建议外,如果您是从事此工作的团队的一员,请确保您一起工作。这将使工作更轻松、更愉快,并确保您今天所做的更改明天不会被不了解您所做工作的人撤消。

我可以就这个主题写一整天,但 Feathers 先生在这方面做得更好,而且我很饿。祝你好运!

关于.net - 如何重构 WinForms 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/739749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com