您对所参与的软件进行了哪些成功的转换/重写?该过程涉及哪些语言和框架?相关软件有多大?最后,您从参与该过程中学到的最重要的一两件事是什么。

这与此有关 问题

有帮助吗?

解决方案

我在这里选择“最深奥”:

  • 将8080模拟器移植在Fortran 77中,从DECSYSTEM-10运行tops-10到运行VM/CMS的IBM 4381大型机。

其他提示

我重写20000线的Perl使用中的每个文件“使用严格”。我不得不添加“我的”无处不在它是需要,我不得不修复过程中被发现的错误。

我是从这样学到的最重要的事情是,“它总是需要更长的时间比你想象的。”

我不得不把它做一次全部一夜之间让其他程序员就不会在同一时间被写入新的,不固定的代码。我认为它会很快去,但它没有,我还在上6点钟,第二天早上黑客。

我没有得到它完成,在检查之前所有人都开始工作,但!

我重写一个大Java Web应用到的ASP.Net应用程序对不动产公司根据不同原因。

我学到的最重要的事情是,无论多么微不足道的功能原系统有,如果不是在第二个系统,客户认为重写是失败的。期望管理是一切写入新系统的时候。

这是最大的原因重写是这么难。我觉得自己到客户端(“只是重新做什么,我已经有了,并添加了一些东西”)

我认为对我来说最酷的是 MAME 到 iPod 的端口. 。这是一次很棒的嵌入式硬件学习经历,我与很多优秀的人一起工作。 官方网站.

我做一个项目点播服务同治系统的重写到更标准的MVC模式。其在LAMP堆栈(PHP),我靠近第一里程碑。

我已经从了解到目前该计划是多么简单的感觉一开始,我尝试,直到我必须不增加复杂性的东西。

实施例是,我第一已编程所有功能(如我是管理员用户),然后当被整理出来,添加具有限制的复杂性(用户级别等)

我移植/重新设计/重写30,000线MS-DOS C ++程序转换成类似长度但更全功能和可用的Java Swing程序。

我学会了从来没有承担涉及C ++或其他工作的Java。

我移植客户端服务器的Powerbuilder应用程序,一个值得几百屏幕,到ASP.NET应用程序(C#)。

由于性能和可维护性的问题,我不得不比上年搬到一吨嵌入式SQL的出PowerBuilder的脚本,并为存储过程。

尽管这将使很多你畏缩,有很多业务逻辑在数据库中,它的意思是PowerBuilder的应用程序是相对“轻”,当我们建成了净前端,它可能需要在SQL的好处代码库并具有很多的功能已经建立和测试。

不是说我建议构建应用程序的这种方式,但它在这种情况下肯定是对我们有利。

我们已经在我们的应用程序框架代码生成工具在于使用了基于文本的数据文件的读取,约20其他应用程序利用了它。

我们想利用XML数据文件,而不是结构化的基于文本的文件。原始代码是相当过时,难以维持。我们通过XSLT脚本的组合和实用程序库替换该工具。对于实用程序库,我们可以使老工具使用的一些代码。

其结果是,所有20个应用程序现在可以利用无论是过时的基于文本文件格式或新的基于XML的格式。我们还提供可变换生成工具,转换旧的数据文件到新的XML数据文件。

带出一个或两个版本,现在我们已经决定,我们将不再支持旧的基于文本的格式,每个人都可以将他们的数据转换为XML后。

我们也几乎没有做手工转换,

转换从预标准C ++标准C ++主要公司的应用程序。我们对使它在AIX上运行数百万美元的销售队伍,并看着它之后,我们决定转换为标准的C ++将是一样转换到IBM的传统C ++那样容易。

我不知道的行数,但源代码跑到几百兆字节。

我们使用标准的Unix工具来做到这一点,包括vi和各色的编译器。

我花了几个月的时间。大部分的修复很简单的,由编译器捕获,几乎机械固定。它们中的一些是复杂得多。

我想我的主要收获是:不要在还没有被标准化,又或可能有东西在意想不到的方式更改语言获得与代码太聪明不亦乐乎。我们不得不做一些巧妙的改编挖了很多/ C ++的滥用流。

十年前,我管理一个团队,转换CAD系统从DOS到Windows。使用的DOS版本家庭酿造库的图形绘制, Windows版本中使用MFC。该软件是约70.000行C代码的转换时间。我们在这个过程中学到的最重要的事情是抽象的力量。所有特殊装置的非便携式例程在几个文件中分离。这是因此比较容易替代的基于DOS图书馆将通过直接访问使用Windows API调用的帧缓冲区绘制调用。同样,对于输入我们刚刚取代了事件循环检查键盘和鼠标事件,与相应的Windows事件循环。我们继续隔离非便携式(这一次Windows)代码从系统的其余部分的政策,但我们还没有发现这个特别有用。也许有一天我们会端口系统Mac OS X和感谢一次。

一些。但我提到一个。

它是一个性能建模工具。部分是delphi 1,部分是turbo pascal。它需要重写,否则它就无法生存。所以我们一开始是2人组,但只有我活到了最后。我在截止日期前就准备好了;-)。

我们做了几件事:

  • 使其成为多模型。原版有很多全局变量。我把它们全部删除了,多模型很容易适应。
  • 扩展错误消息。单击消息并获取帮助。
  • 很多图表和图表。全部可点击进行深入分析。
  • 模拟。随着时间的推移更改参数并查看当前配置足够多长时间。

我们确实把这个清理干净了,最终得到了丰厚的回报。这么大的学习经历。

重新写了一个系统,该处理合法发票公司 - 原来的系统是一个VB怪物,没有良好的面向对象的原则理念 - 一切都混合在一起。该HTML做SQL和SQL写HTML。它的很大一部分是一个自定义规则引擎,使用类似XML的规则。

两队做了重新编写,历时约9个月。一个团队做web前端和后端工作流程,而其他球队(我是上)重新写了规则引擎。新系统是用C#编写,并已完成测试先行。添加新的规则,当我们做了该系统的污垢简单,它是所有测试。一路上我们做的事情,如公司从VSS转换为SVN,实施持续集成,自动化部署,并教导其他开发商如何做到TDD和其他的Scrum / XP的做法。

管理的期望是通过该项目的关键。有一个客户,这是精明的有关软件是非常有益的。

具有大规模(端至端)提供全面的单元和集成测试沿着测试帮助吨。的混合

转换这是写在PHP到C#/ Asp.NET vBulletin。我很熟悉这两种语言,但PHP是倒手的赢家用于构建软件。在后方最大的疼痛需要为调用模板做一个C#相当于PHP的eval()的。

这是在试图做一个转换我的第一个挑战。我知道我需要用C#更多的经验和从头开始编写它仅仅是图省事的时候。

我使用同事开发的工作流引擎(仍处于测试阶段 - 所以我必须做一些改进)将完全用 Perl 编写的动态构建过程转换为 C#/.Net 解决方案。这使我有机会在构建过程中添加故障安全和故障转移功能。

在您询问之前 - 不 - 无法使用微软工作流基础,因为您无法在运行时动态更改流程。

我学到的是:

  • 讨厌 Perl 开发者
  • 使用 wf-engine 进行流程优化
  • 故障安全和故障转移策略
  • 一些 C# 调整;)

最后它覆盖了来自 3 200 个 LoC Perl 文件的大约 5k - 6k(包括 wf-engine)LoC 源。但这很有趣——而且最终更好;)

转换理论上可移植的C代码到理论上可移植的C代码不同的体系结构,以支持节省公司的X元单位硬件变化。

在尺寸变化 - 这是一个共同的需要,我已经做了小型和大型项目

我学会编写更便携的C代码。优雅是伟大的,但是当涉及权力下放给它的编译器会表现关怀,代码应该是简单和便携成为可能。

移植了写在Fortran 77的一个模拟(尽管被写在90年代),以C /爪哇因为原来仅在较小的数据集的工作。我学会后解释为什么只是移动整个数据表到内存在程序的开始并没有打算扩展的几次爱大O表示法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top