构建转换应用程序的好例子
我正在寻找灵活且解耦的转换架构的建议、最佳实践以及(如果可能)开源示例。
我需要更改一个已经存在的代码库,该代码库基于一些分析能够将一些旧的现有应用程序转换为更新的应用程序。
来龙去脉并不那么有趣,但我确实希望看到实现这一点的好方法。
一些最初的想法是定义场景。 一种场景由多个验证步骤以及对所提供数据的实际操作组成。工作流程将从识别窗口和容器开始,然后进行分组和组织。
你有什么想法?有什么指导或建议吗?
I'm looking for suggestions, best practices, and if possible open-source examples of a transformation architecture that is flexible and decoupled.
I need to change an already existent codebase that based on some analysis is able to convert some old existent apps into something newer.
The ins and outs aren't that interesting, however I do want to see a good way of implementing this.
Some initial thoughts would be to have scenarious defined.
One scenario is composed of multiple validation steps, and actual actions on the data supplied. The workflow would start with identifying windows and containers and moving on to grouping and organizing.
What are your thoughts? Any guidelines or advise?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请参阅我们的 DMS 软件重新工程工具包。这是一个程序转换引擎,旨在接受任意语言定义(您的“旧代码库”),执行任意分析,然后根据这些分析应用转换。 DMS建设于1995年开始,
因此它已经有相当长的时间在实践中得到应用和使用。
DMS 已用于定义 DSL 并将其转换为其他语言。它已被用来“定义”(实现)许多经典编程语言(C、C++、C#、COBOL、Java、PHP、JavaScript...)的规范并对这些语言进行分析,并将代码转换为这些语言提供原始程序的改进版本。它所应用的任务是商业性的、实用性的、使用中的结果。它已被用来将传统语言翻译成更现代的语言。
简而言之,DMS 被设计成完全一个用于构建分析/转换工具的灵活框架。
See our DMS Software Reengineering Toolkit. This is a program transformation engine designed to accept arbitrary language definitions (your "old codebase"), carry out arbitrary analyses, and then apply transformations based on those analyses. Construction of DMS started in 1995,
so it has had considerable time to be applied and used in practice.
DMS has been used to define DSLs and transform them to other languages. It has been used to "define" (implement) the specification of many classic programming languages (C, C++, C#, COBOL, Java, PHP, JavaScript, ....) and carry out analyses of those, and transform the code in those languages to provide improved versions of the original program. The tasks it has been applied to are commercial, practical, and the results in use. It has been used to translate legacy languages into more modern ones.
In short, DMS is designed to be exactly a flexible framework for constructing analysis/transformation tools.