2

我遇到过一种情况,出现了关于是否使用某个 SDK 的工具的讨论。

目标:在已经存在的 IDL 之上开发 OPCUA 提供程序(需要合规),以更好地支持第三方开发。

选项:

  • 使用随 SDK 提供的建模工具 (GUI)(据说可以生成符合性测试的代码)。模型创建得非常快(工具不是用户友好的,但至少有一些工具)。但是,如果不非常谨慎地使用此工具,它似乎很容易出错。(很多陷阱,例如,camelCase 中的错误因此无法编译,但可以使用 find+replace 修复,如果在描述中使用 TABS(如果从文档中复制粘贴),则行为很奇怪,如果删除使用的数据类型,则类型定义为空等等第四 - 我花了一两天时间找到所有这些文件并修复生成的代码。)输出是 170 个 .C 和 .H 文件 - 我不想手动编写和链接。

问题:无论何时更改模型,代码都会完全重新生成(当然包括错误和覆盖调整和修复)。

  • 使用 Xtext 生成我自己的模型描述语言并将其编译为有效的、兼容的、可编译的 C 代码,创建一个选项以仅生成自上次导出状态以来实际更改的文件。

问题:两者的维护:生成器和生成的产品是一项持续的任务,通常被认为是一场噩梦。

  • 仅自动生成最基本的文件(使用 A 中提到的工具)并手动完成其余部分。如果不是 100% 必要,切勿触摸生成的文件,因此覆盖不会造成任何伤害。

问题:在 A 中提到,仍然存在,但可能要小一个数量级。

我真的很想知道,幕后发生了什么,但是自己编写所有代码比生成它(几十万行代码)更容易出错。我真正觉得我需要的是某种内部版本控制系统,以便在每次模型更改时将它们合并在一起,但不会出现错误。所以一个非常强大的合并工具,使用正则表达式来排除某些段落会很棒......

有没有人遇到过类似的问题,你是怎么解决的?在这种情况下,我如何确保第三方可以安全地重用我的代码?我是否应该为其他开发人员编写“最佳实践”手册?

有什么好的方法可以向我的老板表达我的担忧吗?放弃不是一种选择。

4

1 回答 1

0

因此,经过长时间的讨论和大量评估,我们决定提取一些文件,我们必须更改这些文件并将适配器注入这些文件。这些文件将在每次迭代中新生成并手动合并,但据我们观察,合并的行数很少。

(适配器指的是“适配器模式”)

于 2013-09-17T06:43:09.010 回答