我正在将一个库从C ++移植到Java。这是我的第一次,我不确定 什么“移植”真的意味着什么?具体来说,如果作者命名变量怎么办 作为'A',我认为一个更好的名字将是'B'。方法,类和命名空间也是如此。 另外,如果我认为可以做得更好的话怎么办?移植意味着我应该尝试 保持尽可能多的原始代码精神,但仍然允许自己自由 改善东西?
由于
答案 0 :(得分:2)
它不一定必须是一对一的翻译(在许多情况下,它不能完成)。移植只是在不同的语言/环境/等中重写一个软件。有时移植会要求你调整一些东西并以完全不同的方式实现它们,所以我认为你帖子的最后一句话几乎抓住了事情的要点。
我认为它与将一本书从英语翻译成另一种语言相当。在某些情况下,需要根据如何表达源材料的意图/功能来进行判断。
答案 1 :(得分:1)
从系统A移植到系统B时,世界就是你的牡蛎。如果您认为这是一项改进,那么您几乎可以改变任何事情。唯一需要注意的是处理接口时。比如,你正在移植一个API,例如,命名外部可用的方法不是一个好主意,因为这会破坏一些事情。跟踪多个类的命名问题是一个主要的痛苦。
作为一个从语言到语言进行了大量移植的人,我建议首先坚持实施细节。一个好的工程原则是随时改变一件事。这样,当事情没有按预期运行时,你会知道这是你的实现应该受到责备,而不是一些愚蠢的命名问题。当你确实重命名时,我想不用说,经常非常小心和备份。这是软件版本控制可以为您节省数小时的一种情况。
答案 2 :(得分:1)
将库从一个平台“移植”到另一个平台时,您正在移植功能。您不移植代码样式。它不像文学中那样,必须保持作品的风格,记住隐喻和抑扬五音或者你有什么。