【问题标题】:Which one suits better UI or DSL?哪一个更适合 UI 或 DSL?
【发布时间】:2011-12-10 17:53:34
【问题描述】:

我们有一个系统,它的行为由许多 XML 文件定义。(大约 50 个不同的 XML 文件,每个文件控制子系统的行为。)

由于遗留原因,XML 文件采用自定义格式,便于系统中的各种组件使用。

自定义格式对人类来说不是很直观和可读。(这也是我们的一个重要考虑因素)。

那么我们如何解决这个可读性问题呢?

我觉得在这些 XML 文件之上编写的直观 UI 应该可以完成这项工作。

但是我的同事认为用 DSL 替换 XML 文件是一个更好的主意,因为它们既直观又机器可读。

这是个好主意还是矫枉过正?与说 UI 相比,我觉得让 DSL 正确是非常困难的。但我可能是错的。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: dsl


    【解决方案1】:

    XML 到 XML 的转换是一种半途而废的解决方案,可能是我会使用的方法。

    在替代基于文本的行为描述之前,UI 必须非常完整,而常见的基于文本的惯用语(例如复制和粘贴、搜索和替换等)很难在 UI 中以良好的可用性实现.

    但是,使用自定义解析器的成熟 DSL 可能有点过头了,尤其是在团队的多个成员都没有解析器或编译器经验的情况下。不要误会我的意思——我认为人们不应该害怕解析器,我自己也是一名编译器工程师——但事实上有些人很害怕,如果解析器做得不对,它可能会得到很快就乱七八糟了。

    因此,我主张设计一种理想化的 XML 格式,并编写一个工具,使用 XSLT 将该格式转换为您的真实 XML 格式(如果这很容易 - 我不会深入研究 XSLT 函数等)或一个简单的翻译应用程序。

    为规范提供可读的文本格式有很多优点:即席编辑很容易(您只需要记事本),源代码管理的差异是可读的,sn-ps 可以通过电子邮件发送,等等。具有与文本格式相同的可用性和功能并非易事。

    【讨论】:

    • 感谢巴里提供的信息。您所说的理想化 XML 格式是指一种更易读的 XML 格式,可以由程序员直接手写或调整吗?我们团队中的几个人有一些使用 lex/yacc 的经验。然而,他们都没有编写过编译器编写的完整经验。
    • 另外,您如何确保编辑文件的用户正确且不会无意中犯错误?这难道不意味着自定义编辑器具有一些自动完成功能和编辑后的验证手段吗? (我们希望尽快标记不合格的数据)
    • Prashanth - 你如何保证人们不会签入无法编译的源代码?答案通常是持续集成的一些变体,自动构建在出现错误时向团队发送电子邮件,并羞辱人们不破坏构建。语义错误通常是比句法错误更严重的问题。
    • 是的,你说的很有道理。
    【解决方案2】:

    您应该查看http://www.eclipse.org/Xtext/ - 它非常适合您正在寻找的东西!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 2016-09-05
      相关资源
      最近更新 更多