【问题标题】:How to manage code conversion? [closed]如何管理代码转换? [关闭]
【发布时间】:2013-09-13 21:59:12
【问题描述】:

我必须将包含大约 100k 行代码的应用程序从一种编程语言转换为另一种编程语言(java 到 c++)。

我正在寻找一种解决方案来跟踪我的进度并确保没有任何东西漏掉。

到目前为止,我已经考虑了两种方法,但似乎都不是最佳的:

  • 将旧代码作为 cmets 复制到新的源文件中,并删除转换的部分(这会变得混乱)

  • 打印出旧代码,并使用荧光笔标记转换后的代码(效率不高)

最好的解决方案可能是一些文本编辑器,我可以在其中保留旧代码库并以数字方式突出显示/标记已经转换的代码。是否存在这样的实用程序?或者有没有更好的管理代码转换的解决方案?

【问题讨论】:

  • 强烈依赖于被转换的语言。
  • 这两个都是好主意吗?为什么不直接翻译它并测试所有输出是否相同?
  • 是否会努力重构或重新设计代码库的任何部分?这也可能导致跟踪您所在位置的一些问题。
  • 从 java 转换为 c++(信息已添加到问题中)。
  • @Brian:是的,有些领域可以使用一些重构/改进。它确实使它更具挑战性。

标签: code-conversion


【解决方案1】:

您可以将旧代码签入 VCS(例如 Git、SVN 等),然后开始删除已转换的部分。 VCS diff 工具会清楚地告诉您哪些部分已被删除,就像这种“数字突出显示”方法但更简单(因为旧代码库会随着您的转换而缩小)。

最实用的方法是首先转换测试(如果您有任何测试......)。然后您可以针对测试编写新代码。如果你没有测试,强烈考虑做一些。在没有测试的情况下转换 100KLOC 是几个月后出现细微错误的秘诀。

【讨论】:

  • 无论如何转换这么多代码都会变得一团糟:>我同意测试和构建方法。
  • 非常感谢您的建议!这是一个很好的解决方案。不,旧代码没有测试,是的,我需要做一些。
猜你喜欢
  • 2010-10-18
  • 1970-01-01
  • 2018-08-12
  • 2014-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2021-03-01
相关资源
最近更新 更多