小编Rew*_*tor的帖子

这是"十分之一"的时间重写吗?

如果可以避免,我非常反对重写应用程序.我理解10次中9次的规则,重构更好,但是我可能是10次中的一次,而我正在寻找那条线.

目前的情况是:

  • 我接手了VB6/SQL应用程序的维护.
  • 代码总行数为75-100k(代码隐藏,模块和类).
  • 最初的开发人员离开了,所以这只是我,并且没有机会扩展团队,至少在几年内.
  • 程序没有架构(只是在代码隐藏形式的纯文本中直接进行SQL调用).
  • 不试图遵循DRY或OAOO原则.
  • 数据库有一些主键,但没有外键.
  • 在这个系统到位之前,所有东西都是用大型电子表格管理的,所以这个系统确实比他们拥有的东西有了很大的改进,但却没有做到他们想象的那样.
  • 我能够自己编写一些工具来用常量和查找替换表名和列名的所有文字实例,并且我编写了一个快速代码生成脚本来从数据库中生成这些常量和查找,所以现在我可以安全地进行数据库更改并查看破坏的所有地方 我已经开始将数据库"边缘化"规范化,但它就像3%的方式.
  • 没有单元测试,所以每次我更改数据库时,我基本上都要重写其上的任何逻辑,我使用这两个版本来比较功能并确保它们是相同的.到现在为止还挺好.
  • 我开始只是试图修复关键的错误来阻止流血,我可以肯定地说,这大部分已经完成了,所以现在我踩了一会儿来看看大局.
  • 管理层对他们的期望是支持和合理的.
  • 长期目标是将其转换为.NET无论如何......

所以,我正在权衡这些选择:

  1. 继续规范化数据库并在我去的时候修改VB6应用程序(最终是一块一块地重写)
  2. 将VB6置于仅维护状态(无新功能),一次选择一个功能模块,并在规范化数据库结构之上重写.NET中的该部分.

我的想法是,如果我选择选项1,那么最后我只有一个VB6应用程序,他们仍然想要升级到.NET,我已经研究过它,这是昂贵和耗时的,甚至使用你的工具我还会得到一些有点像弗兰肯斯坦的东西.如果我选择选项2,我相信我可以尽快完成,我会直接跳到目标技术.

在我的规范化过程中我已经重写的小规模部分中,结果是已经存在的改进模块,因此在重写期间会添加值.

现有的应用程序,除了它的所有缺陷,是一个很好的讨论点.使用它的人可以告诉我什么对他们起作用,什么不起作用,所以那里肯定有很多价值.

那么,这是否有资格成为"十分之一"时间之一?

.net vb6 rewrite

13
推荐指数
3
解决办法
587
查看次数

标签 统计

.net ×1

rewrite ×1

vb6 ×1