1
5
很难给出一个包罗万象的答案,但高层次的方法是明确的。至少,这是我使用的方法。确定目标的优先顺序,然后试着确定实现这些目标的成本。您的成本基本上可以归结为“开发人员时间”。
如果您的一些现有代码需要更新才能完成其工作,那么您需要考虑维护成本。此时,您需要确定重写是否会提高维护成本,使其值得。不要忘记减去测试和调试新的bug,因为会有新的bug。不要因为代码太旧就放弃它。 如果您现有的代码具有足够的模块化,您通常可以一次一块地对其进行裁剪。首先重写高维护组件。
|
2
3
VB6代码是否包含COM对象? 您提到代码“不能停止完全重写”。但你不必停下来。一个接一个,你可以用等价的C代码替换VB6的每一项功能。这将允许您一次做一个更改(最好通过自动测试来证明您没有破坏任何东西)。 |
3
3
当存在激励因素时,根据需要重新编写。 我参与的一个旧的Windows项目有一个用C编写的规则引擎,它可以正常工作,所以我们把它作为一个黑盒DLL。 我们构建了一个新的前端,应用程序易于使用的新外观给用户留下了深刻印象。内部没有任何变化。 数据库访问层使用的是SQL Server DBLIB,在升级SQL Server之前没有重新编写。 |
4
1
我们有几种这类系统。这一切中令人不安的部分是 lifecycle support status of VB6 . 存在一种风险(无论多么小),即您无法从Microsoft获得有关showstopper问题的帮助,例如未来的服务器升级,并且无法自行修复(例如,由于VB6 DLL和修补服务器O/s之间的不兼容)。这是一个您的管理层可能感兴趣的风险——但是,如果您现在没有任何支持协议,他们可能会对此感到满意? 我们实际上正在考虑重写和重新设计一些更关键的。我们已经尝试过增量进化,它可以工作,但会产生(让我们说)有趣的操作和维护情况。我强烈建议使用大量可配置的日志记录(如果您还没有)来检测所有内容(旧代码和新代码),以帮助进行故障隔离。 COM听起来像是一个合理的新旧界面。除非组件之间有非常简单的交互,否则我真的不明白为什么要回到更基本的IPC机制。COM有它的复杂性,但它也提供了许多有用的抽象,例如,数据类型和版本控制,你必须重新发明和维护。。。 |
5
0
|
6
0
我现在是几个开发大型遗留系统的开发者之一,它最初是C和C++与Win32的组合,后来又是MFC,在后端C代码中有少量的汇编。我们最近从VC++6跳到了VisualStudio2005(并从那时起升级到2008),以获得我们正在开发的项目的最新版本。自从IDE/编译器升级以来,我们一直在清理一些外观和感觉,并在WiFrm中添加了托管C++,现在使用WCF添加了C。
|
benbotto · 多个网站,单个代码库:git fork? 7 年前 |
Peter · 检测变量是否为模式[重复] 7 年前 |
Andrew McKinley · Swift中无法识别C指针数组 8 年前 |
Patrick · 在框架中包装旧应用程序 9 年前 |