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 世界和微軟比,是:獨裁和民主;約束和自由;遵守和創造;的區別。
就象一個世界,一個社會,民主和自由,導致更多追隨著進步。