我打算在不久的将来修正WinForms应用程序(.NET 2.0)。通过源代码查看,我发现大量代码文件(超过2000行),其中大部分都是生成大量代码隐藏的对话框。如何重构WinForms应用程序?
有没有给我分享的提示?任何战争故事或bug修复或重构WinForms应用程序的最佳做法?
我打算在不久的将来修正WinForms应用程序(.NET 2.0)。通过源代码查看,我发现大量代码文件(超过2000行),其中大部分都是生成大量代码隐藏的对话框。如何重构WinForms应用程序?
有没有给我分享的提示?任何战争故事或bug修复或重构WinForms应用程序的最佳做法?
我觉得这是基本的东西。很多人在这里必须有很多建议。祝你好运!
我会先写一些单元测试。如果代码相当密集,您将需要这些来保持您的理智。
他们会给你一些信心在你的重构中相当积极。
夫妇的从顶头部的东西:
短的版本:
购买迈克尔羽毛的书,有效地与遗留代码一起工作。
较长的版本:
维护时(改变)这样的应用程序是这样做不打破东西的最大挑战。这意味着您需要了解应用程序的行为,最简单的方法就是获取应用程序的测试。正如你所指出的,起初这可能令人望而生畏,但这并非不可能。它需要纪律和耐心。
您不必从单元测试开始。让一个自动化框架(如NUnitForms或White)首先将应用程序作为黑盒子来驱动通常会更容易。围绕你需要改变的地区建立一套测试,给你足够的信心去改变它,而不会破坏某些东西。然后进入并开始重构单元可测试性。
如果它就像我的工作申请任何东西,它主要包括:
有时,重写代码段而不是重构它们会更容易,但是需要通过测试或通过引用规范(如果存在)来理解行为。
除了任何实际的建议,如果你是一个团队的一部分工作,请确保你是一起工作。它将使工作变得更轻松,更愉快,并确保你今天做出的改变不会由明白你工作的人明天撤销。
我可以整天写这个话题,但Feathers先生的话更好,我很饿。祝你好运!
如果不是不幸的不可测代码设计,我会开始编写单元测试。该代码有不同程度的恶意代码的设计选择(代码生成的文件,神级综合症等),这使得编写单元测试从一开始就不可能。 – Spoike 2009-04-11 08:45:00