经过多年将Delphi程序编码为表单和数据模块中不可测试的代码(包括全局变量),唯一的类是表单本身,包含表单UI本身所需的所有代码.
我如何将代码转换为一组执行实际工作的类?我是否需要停止使用数据源/数据集并在类中执行所有操作?我需要ORM吗?
通常没有必要在表单中重用代码,所以将逻辑转换为类是否有意义?
你以前都听说过经典的Delphi应用程序.
对于第三方库,我们有150万行代码,可能是我们自己的200,000行(Dev Express,NexusDB等)
一个巨大的数据模块,我已经慢慢分成5(可能需要更多).将一些业务逻辑缓慢地移动到这些数据模块,但肯定是作为模块的方法.
一切都在"按钮下"编码,没有我们自己的类.一些表单有20k行代码.
我需要一个合理的计划才能让它变得更好.现在你无法真正测试它的任何一个,微小的变化可能会引入大量的bug等.
我想,首先,为每个主要表单获取一个单元,并将表单中的业务逻辑提取到此类/单元.像TMyForm这样的东西有一个TMyFormClass.pas,所以TmyForm最终只有UI.继续模块化数据模块,尽快编写测试.只有我们正在努力的重构.
声音健全,另外建议,有人请发给我liqour ....
如果所有业务逻辑都存在于数据模块(TSQLDataSets和TDataSetProviders)中,您将如何重构代码以使应用程序更适合单元测试?