Eclipse走向MDA,到达Rational Architect
在 Rational Architect 中, MDA 过程是:
通过工具本身建立设计 Model ,中间可以用 pattern 来优化设计。
然后,根据自己的架构,开发符合 Rational Architect 要求的转换插件,把模型转换为代码模型;也可以把模型转换为代码。
可以反向。
而在 open source 里:
通过 ArgoUml 设计模型。
通过 Argo2Ecore 转换为 xmi 。
基于 Merlin 开发自己的代码模板或插件。
把模型转换为符合自己框架的代码。
如果自定义 @Generator 可能可以反向,但比较麻烦。
之前,一般通过 xDoclet 之类来生成代码;但是很难反向。也不能从模型生成。
现在,也用 Java 1.5 的 Annoation 。一样不好反向。
最好的方式,应该是根据模型,按照代码模板,生成代码;并且可以反向。
Rational Architect 和 Eclipse 是同源的,基础结构一样。 Rational Architect 多一些插件。
其 MDA 部分,极其接近。核心的是 EMF 、 uml2 、 JDT 、 plug-in ;共同的是 xmi 。不同的是具体代码生成, Architect 有 xtool 的 api ;而 eclipse 中,可以用 open souce 的插件,如 Merlin , Argo2Ecore 。
所以,基本的 MDA 理论必须的。 Eclpise 开发平台的 Framework 和 plug-in 是必须掌握的。 Emf,uml2 等也必定要。然后,分开在 Rational Architect 中和 Melrin 等实现转换( m2m,m2c )。只是一难一易。
所以, Eclpise 和 Jbuilder ; IBM 和 Sun ,比的不是别的,是工具和语言。
Eclipse 的野心,是基础性开发平台,然后可以开发丰富的插件。是一个 open 的世界,人人可参与。
而 sun 的 java 是语言,是一个标准。本身也是因为开放性,所以集全世界的自由开发人员的意志发展。
而微软,则是自成体系。虽然强大,但人们少了自由,就有了抱怨。虽然操作系统是成功垄断,但应用系统,人们会选择 java 来平衡。
现在, java 的世界,多了 Eclpise ,从工具的角度,又多了 open 和人们的自由和创造。
相比, Jbuilder 就像微软,我很全也很好,但是没有更多的自由,激发不了更多的创意。
Java 世界和微软比,是:独裁和民主;约束和自由;遵守和创造;的区别。
就象一个世界,一个社会,民主和自由,导致更多追随着进步。