我正在寻找灵活且解耦的转换架构的建议、最佳实践以及(如果可能的话)开源示例。
我需要更改一个已经存在的代码库,该代码库基于一些分析能够将一些旧的现有应用程序转换为更新的应用程序。
来龙去脉并不那么有趣,但我确实希望看到实现这一点的好方法。
一些最初的想法是定义场景。 一种场景由多个验证步骤以及对所提供数据的实际操作组成。工作流程将从识别窗口和容器开始,然后继续分组和组织。
你有什么想法?有什么指导或建议吗?
最佳答案
查看我们的DMS Software Reengineering Toolkit 。这是一个程序转换引擎,旨在接受任意语言定义(您的“旧代码库”),执行任意分析,然后根据这些分析应用转换。 DMS build 于1995年开始, 因此它已经有相当长的时间在实践中得到应用和使用。
DMS 已用于定义 DSL 并将其转换为其他语言。它已被用来“定义”(实现)许多经典编程语言(C、C++、C#、COBOL、Java、PHP、JavaScript...)的规范并对这些语言进行分析,并将代码转换为这些语言提供原始程序的改进版本。它所应用的任务是商业性的、实用性的、使用中的结果。它已被用来将遗留语言翻译成更现代的语言。
简而言之,DMS 被设计为完全一个用于构建分析/转换工具的灵活框架。
关于architecture - 构建转换应用程序的好例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2199326/