您参与了哪些失败的转换/重写?过程中涉及哪些语言和框架?有问题的软件有多大?最后,您从参与该过程中学到的最重要的一两件事是什么。
这与这个问题有关。
您参与了哪些失败的转换/重写?过程中涉及哪些语言和框架?有问题的软件有多大?最后,您从参与该过程中学到的最重要的一两件事是什么。
这与这个问题有关。
我最喜欢的一个项目是在 Sun OS 3 上开发服务器应用程序的固定价格项目,最终需要在运行某些(当时)当前版本的 Unix 的旧 Data General 机器上运行。
现在,我们提前知道将 C 代码移植到 Data General 会很痛苦,因为它有 9 位字节/36 位字,但没有意识到……缺少……Unix 实现。
从移植任务开始大约 5 小时后,明智的执行决定是简单地为客户购买一个闪亮的新 Sun 盒子。
我最近有一个很大程度上失败了,因为我无法彻底说服管理层从长远来看重写应用程序比保持原样维护它更便宜。如果我早点阅读技术债务,它可能会成功。Jeff 关于该主题的最新文章对我来说已经晚了大约 8 个月!
总而言之,该应用程序大约有 75K 行 C# 代码,但它是维护的噩梦(内部应用程序)。少数神类,其余的就是我所说的木偶类(仅按名称的类,神类为他们所做的一切“拉线”)。几乎没有任何东西是用户可配置的,因此开发人员负责一切。
事后看来,成功的最大障碍是应用程序本身。保持它运行是我们三个人的全职工作。我认为我们能做的最好的事情就是继续重构。“版本 2”应用程序有一些真正好的概念,我们应该继续尝试将它们集成而不是重新开始......如果我们这样做了,我们可以在稳定原始应用程序后构建大型组件。
我曾经尝试将我用 DarkBasic 编写的游戏移植到 C。
我遇到的问题是,DarkBasic 是一种有限的语言(例如,没有通过引用传递的参数)当我移植它时我试图做一个直接移植...... IE,我试图不为我的语言适当地重构它正在使用...
结果大乱了……
我可能已经让它工作了,但我在大约 2 天后停止了,因为我意识到它需要的不仅仅是翻译才能转移到 C ......
我以前用 C 和 Allegro 编写了一个 Pacman 克隆,我试图重写它以在 Dreamcast 上运行。
那是一些可怕的代码。我无法真正从代码库中挽救多少,并放弃了这个想法。
我了解到,不管我当时怎么想,我当时都是一个非常糟糕的程序员,在过去的几年里我学到了很多东西。这也让我意识到,几年后,我应该学到足够多的东西来回顾我今天写的代码并思考同样的事情。基本上,我应该一直努力变得更好。
我曾经被要求将一个驱动 DEC-System10 上的照片打字机的程序转换为 IBM 4381。查看代码,我发现原始开发人员无缘无故地在以下不同的地方编写了程序的各个位语言:
这很好地证明了 DEC 对多语言编程的支持,但这是我唯一一次不得不对用户说“不可以”。