关于DSL、MDA、UML、TDD的一些思考

这是计划中的一篇Blog,原来设想的题目是《MDA与DSL》 ,只是因为和徐昊聊天时产生了一些想法,想谈谈对MDA和DSL的新认识。现在这段时间又出现了很多关于DSL的讨论。

马大叔的两篇:领域专用语言(DSL)、界定DSL
还有在JavaEye的不少相关的讨论:DSL的讨论、规则系统or脚本系统,自然语言,DSL or Java语言、Ruby DSL
还有一篇不错的入门文章:用Ruby 创建领域特定语言(DSL)

因此自己又思考了不少东西。联想到以前说过的两句话:
“框架是弱语言,语言是强框架”
由此我们可以这么定义,DSL就是尽可能写得像语言的框架。

再接着追问,为什么框架还不够,还要发展为DSL呢?初步的看法是:语言是一种更加方便的使用方式。

前段时间徐昊一直在写一篇关于Antlr和DSL的文章,我也不断的看着文章的进展,跟他讨论着。有这么一些想法,还远不成型。

1、 DSL一般来说,是Domain Specific Language的缩写,而我以为,更加实用的,应该是Domain Scripting Language,这种DSL。也就是说,DSL应该足够简单,一根筋,过程化,三分钟学会。否则,太过复杂的DSL,就不会有人喜欢了。

2、DSL的简单,是他的优点、特点、也是他的弱点和局限所在。

3、DSL与MDA最大的区别是,DSL是自底向上简化劳动的实践,而MDA则是企图自顶向下搞定一切的妄想。

4、我当初设计的DJ(Dynamic Java),应该被称之为DML(Domian Modeling Language)——领域建模语言。相对于UML,DML是更加适合的领域建模工具,毕竟,UML受限于OO的思维模式,无法超越。

另外还有一些议论,也附在下面:
UML,是思考工具,不是开发工具。
TDD,是开发手段,不是设计手段。

UML作为开发工具,就会出现MDA那样的书呆子遐想
TDD作为设计工具,就会导致设计惰性与跳不出最初的心理暗示(隐喻)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值