当前位置:主页 > 澳门威尼l斯人网址正文

澳门威尼l斯人网址_一起听吧网进入

03月18日作者:黑曼巴


哪个是最佳选择

有两种风格的说话设计:一种主张大年夜说话,用一个类支持许多不合的领域观点.别的一种主张小说话,应用一些小然则强大年夜的原始的特性,大年夜一些的特性由库的要领组装构建澳门威尼l斯人网址.

在构建DSL的时刻必要不停记着的是:确认你的说话设计始终维持同等.你维持上面两种措施思惟中的一个.应用第二个措施会更繁杂,并且必要花费对照大年夜的努力发明这些基础的原始特性.尤其对付营业领域DSL,第二种措施基础会掉败,由于营业用户并不习气于应用新的,强大年夜的,正交观点.

用轻易确认地,众所周知的观点定位DSL,必然要包管这些观点是最佳的选择,并且应用相宜的符号,例如,在移着手机开拓澳门威尼l斯人网址的DSL中,确信你的最基础的都是可输入的原子(左键,右键,0..9数字键,操纵杆).不要考试测验抽象成通用的”输入设备”.

你也可以组合这两种措施,然而,确认你的说话维持同等性和完备性。

库 Libraries

前面的最佳实践提到的一个观点便是Libraries的应用。Libraries是你的DSL的一些实例的聚拢,主要用于重用,一样平常存储在零丁的模型分区中.

Libraries很显着有助于重用模型数据。例如,在一个用于描述数据布局的DSL里,常常就会把一些重用的数据布局放到一个Libraries里供给给其它应用(比如date,time,address,别的Libraries便是分区的一种形式).

Libraries也用于低落说话的繁杂性,斟酌上面提到的数据布局DSL:代替直接硬编码原始类型int,string,bool,你可以实现一个原始类型构造器天生int,string,bool类型实例。这样也能够容许用户添加直接经由过程改动模型添加新的原始类型,而不是直接改动说话,这能够削减不少麻烦.

假如你应用library措施,包管模型处置惩罚器没有假设更高层次的布局构造,取代的是真正的基于基础的原始特性。在我们的例子里,映射的原始类型对应着目标说话(比如java),这必要作为模型的一部分,否则当你经由过程类库添加一个新的原始类型的时刻,还必要改动代码天生器。

团队支持

DSL对象很紧张的一个方面是支持版本,标签,分支,锁定,对照和合并,帮忙操作模型的所有方面。确保你应用的对象支持所有这些,应用说话的详细语法,没有人乐意用抽象的 语法/元模型/树 层次来处置惩罚这些问题。

当面对营业专家,基于资料库的系统是异常有能力办理这些问题的,然而,当你直接面对开拓者时,模型必须与其它的开拓对象进行互操作。尤其是你必要与现有的源代码节制系统集成时(CVS,SVN,Gitt等)。再者,假如你的系统是模型澳门威尼l斯人网址特定的或者是手写的3GL代码,必须能够加标记,对两个文件进行对照和版本节制来防止带来劫难.一个明确资料库的对象在这种场景下假如它并不供给集成资料库代码的措施的话,会有对照大年夜的问题.

文本DSL在这方面有显着的上风, 讲到这里为止,模型还只是文本(至少他们存储为文本文件,并且文本符号是潜在的数据存储布局).

就商业用户而言,消极锁定(没有需要进行对照和合并)可能更轻易理解.平日在消极和乐不雅措施之间做选择的时刻,应该基于处置惩罚的历程和网络的用例.

好的分区能够使团队支持加倍轻易, 分区实际上成为对照,合并,锁的基础单位.

对象细节

定义说话和符号本身是不敷的,你还必须为他们供给优越的对象支持.

DSL的编辑必要能够支持团队事情(见上文),导航,全局查看,搜索,快速查找,查找引用,显示被应用场,以致重构。对付文本的DSL,你的编辑器必须供给代码完成,语法高亮等,以确保成长职员(应用强大年夜的集成开拓情况开拓”正规”说话的人)乐意应用DSL事情。

对付“元数据开拓者”也是一样。请确保您的情况供给好的用户体验, 比如编写转换和代码天生,为这些供给了元模型感知编辑器。

为了前进可用性,DSL的编辑器必须能够敷衍由用户输入导致的非常或不完备的模型。抱负环境下,呈现这种环境后,可能还必要持续。不澳门威尼l斯人网址过,只要模型是差错的或不完备,他们无法处置惩罚任何进一步。对付文本说话的情况下,这可能意味着你设计一个有点“疏松”,更宽容的语法,经由过程约束来包管履行的精确性。

您还必须确保该模型处置惩罚器能够运行在不间断天生(外部的编辑器或对象的一部分)来集成到现有的根基情况中。

[翻译] DSL和模型驱动开拓的最佳实践(1/4)

[翻译] DSL和模型驱动开拓的最佳实践(2/4)

原文: http://www.jot.fm/issues/issue_2009_09/column6/index.html

因为篇幅太长,以是分几部分翻译。翻译水平有限,假如英语不错,最好直接涉猎原文.

向模型驱动开拓的同砚们强烈保举此文!

转自:http://www.cnblogs.com/lonely7345/澳门威尼l斯人网址archive/2010/04/06/1705170.html

最近关注

热点内容

更多