其實(shí)我最初的目的只是研究一下MDA,看看能否找個一個技術(shù)的縫隙可以讓我畢業(yè)而已。可是,我遭遇了那么多躲不開的技術(shù),不過它們最終也躲不開MDA。
MDA之路始于和師兄的一次談話,在Corba、Component和MDA之中我要選一條路走。由于Corba和Component都是那么成熟的技術(shù),所以MDA稚嫩的面孔讓我覺得還是大有可為的。
最初的資料當(dāng)然來自于OMG網(wǎng)站上的那篇著名的MDA GUIDE,現(xiàn)在覺得,看了其實(shí)和沒看一樣,不過當(dāng)時還是頗為興奮的,PIM和PSM這些新名詞的出現(xiàn)讓我覺得似乎那條縫隙就展現(xiàn)在我面前,兩年之后我才發(fā)現(xiàn)其實(shí)我當(dāng)時連門在哪兒都沒有找到。
倉促上路的我徘徊在OMG的縮寫語洪水之中,有些我曾經(jīng)見過,有些則完全是新的面孔。MDA之下是由MOF,UML,XMI,CWM等等技術(shù)支撐的,每一個標(biāo)準(zhǔn)都有了若干個版本了,每個版本的規(guī)范可以把最有耐心的學(xué)生看得發(fā)瘋,更別說我的母語還不是英語。至今為止,我也只看過UML和XMI的規(guī)范,UML還沒有完全看完。不過很快我就知道死看規(guī)范的話等于自殺,馬上琢磨著去體驗(yàn)一下MDA的工具,接著就體驗(yàn)了ArcStyler,不過對于一個不懂Web Application,不懂J2EE和不懂XML的人來說,很快就難有寸進(jìn)了。只好從底子打起了。
UML的底子還算不錯,畢竟Java還是用了好久的,寫了幾個從Rose到j(luò)ava的例子,翻來覆去的從模型到代碼,從代碼到模型也有點(diǎn)體會了,可是沒有做過大型工程的人還是很難體會的UML真正的好處的。XMI我開始死活琢磨不懂這個東西到底用來干什么的,因?yàn)閷ML就不熟,更別提DTD和XML Schema了,學(xué)習(xí)XML系列技術(shù)又花去了幾個月的時間,從XML->DTD->XML Schema->XSLT->DOM/SAX,還拋棄了和MDA關(guān)系不大的XPath,XLink和XQuery等技術(shù)。XML的工具一直使用的是XMLSPY,真的很好用,其實(shí)XML真是一門簡潔有用的技術(shù),學(xué)起來用起來一點(diǎn)也不難。現(xiàn)在再來看XMI,覺得終于有所領(lǐng)悟了。
在學(xué)習(xí)XML的期間接觸了Eclipse,從此放棄了JBuilder,因?yàn)镸DA的幾大技術(shù)都能在Eclipse上得到很好的支持,因此從頭開始學(xué)用Eclipse。它的總體架構(gòu),它的插件體系結(jié)構(gòu),插件的開發(fā)等等。在建模領(lǐng)域,它有Omondo可以代替Rose,在代碼生成方面,有EMF,它比Rose的生成能力更強(qiáng),在代碼開發(fā)環(huán)境方面,有集成的JDT環(huán)境,這只是我當(dāng)時接觸到的幾個少數(shù)的Eclipse插件,當(dāng)然還有后話了。
技術(shù)永遠(yuǎn)都是無限的,而精力是有限的,SWT這個很好的java界面庫我就只能匆匆一覽,做完一個例子后就沒有怎么碰了。MDA不僅僅是從模型到代碼就完了,沒有網(wǎng)絡(luò)功能,沒有數(shù)據(jù)庫那簡直就不是二十一世紀(jì)的程序。研究MDA,Web和數(shù)據(jù)庫你必須至少選一樣,不過往往是同時都要選。既然已經(jīng)跟隨了J2EE,Servlet/JSP也就隨之而來。隨之而來的不僅僅是這些理論啊,Web容器也是技術(shù),也要花時間啊,幸好Tomcat在Eclipse上也有相關(guān)插件。有了Web容器似乎一定要搭上一個J2EE容器JBoss,隨之而來的就是javabean和EJB,當(dāng)然還有Eclipse上的開發(fā)插件Lomboz。
MDA是一個自頂向下的技術(shù),高屋建瓴,順流而下,應(yīng)該是一個讓人心曠神怡的旅程。可惜,我不得不說這個技術(shù)的門檻太高,不是屬于我們這種還沒有出茅廬的人做的。研究MDA的人,應(yīng)該是有深厚的軟件工程理論背景和長期大量的工程經(jīng)驗(yàn)的人。可惜我還不是那樣的人,最近急著提高自己的工程經(jīng)驗(yàn)恨不得白幫人做項(xiàng)目,只是時不我待,時不我待。
MDA之路始于和師兄的一次談話,在Corba、Component和MDA之中我要選一條路走。由于Corba和Component都是那么成熟的技術(shù),所以MDA稚嫩的面孔讓我覺得還是大有可為的。
最初的資料當(dāng)然來自于OMG網(wǎng)站上的那篇著名的MDA GUIDE,現(xiàn)在覺得,看了其實(shí)和沒看一樣,不過當(dāng)時還是頗為興奮的,PIM和PSM這些新名詞的出現(xiàn)讓我覺得似乎那條縫隙就展現(xiàn)在我面前,兩年之后我才發(fā)現(xiàn)其實(shí)我當(dāng)時連門在哪兒都沒有找到。
倉促上路的我徘徊在OMG的縮寫語洪水之中,有些我曾經(jīng)見過,有些則完全是新的面孔。MDA之下是由MOF,UML,XMI,CWM等等技術(shù)支撐的,每一個標(biāo)準(zhǔn)都有了若干個版本了,每個版本的規(guī)范可以把最有耐心的學(xué)生看得發(fā)瘋,更別說我的母語還不是英語。至今為止,我也只看過UML和XMI的規(guī)范,UML還沒有完全看完。不過很快我就知道死看規(guī)范的話等于自殺,馬上琢磨著去體驗(yàn)一下MDA的工具,接著就體驗(yàn)了ArcStyler,不過對于一個不懂Web Application,不懂J2EE和不懂XML的人來說,很快就難有寸進(jìn)了。只好從底子打起了。
UML的底子還算不錯,畢竟Java還是用了好久的,寫了幾個從Rose到j(luò)ava的例子,翻來覆去的從模型到代碼,從代碼到模型也有點(diǎn)體會了,可是沒有做過大型工程的人還是很難體會的UML真正的好處的。XMI我開始死活琢磨不懂這個東西到底用來干什么的,因?yàn)閷ML就不熟,更別提DTD和XML Schema了,學(xué)習(xí)XML系列技術(shù)又花去了幾個月的時間,從XML->DTD->XML Schema->XSLT->DOM/SAX,還拋棄了和MDA關(guān)系不大的XPath,XLink和XQuery等技術(shù)。XML的工具一直使用的是XMLSPY,真的很好用,其實(shí)XML真是一門簡潔有用的技術(shù),學(xué)起來用起來一點(diǎn)也不難。現(xiàn)在再來看XMI,覺得終于有所領(lǐng)悟了。
在學(xué)習(xí)XML的期間接觸了Eclipse,從此放棄了JBuilder,因?yàn)镸DA的幾大技術(shù)都能在Eclipse上得到很好的支持,因此從頭開始學(xué)用Eclipse。它的總體架構(gòu),它的插件體系結(jié)構(gòu),插件的開發(fā)等等。在建模領(lǐng)域,它有Omondo可以代替Rose,在代碼生成方面,有EMF,它比Rose的生成能力更強(qiáng),在代碼開發(fā)環(huán)境方面,有集成的JDT環(huán)境,這只是我當(dāng)時接觸到的幾個少數(shù)的Eclipse插件,當(dāng)然還有后話了。
技術(shù)永遠(yuǎn)都是無限的,而精力是有限的,SWT這個很好的java界面庫我就只能匆匆一覽,做完一個例子后就沒有怎么碰了。MDA不僅僅是從模型到代碼就完了,沒有網(wǎng)絡(luò)功能,沒有數(shù)據(jù)庫那簡直就不是二十一世紀(jì)的程序。研究MDA,Web和數(shù)據(jù)庫你必須至少選一樣,不過往往是同時都要選。既然已經(jīng)跟隨了J2EE,Servlet/JSP也就隨之而來。隨之而來的不僅僅是這些理論啊,Web容器也是技術(shù),也要花時間啊,幸好Tomcat在Eclipse上也有相關(guān)插件。有了Web容器似乎一定要搭上一個J2EE容器JBoss,隨之而來的就是javabean和EJB,當(dāng)然還有Eclipse上的開發(fā)插件Lomboz。
MDA是一個自頂向下的技術(shù),高屋建瓴,順流而下,應(yīng)該是一個讓人心曠神怡的旅程。可惜,我不得不說這個技術(shù)的門檻太高,不是屬于我們這種還沒有出茅廬的人做的。研究MDA的人,應(yīng)該是有深厚的軟件工程理論背景和長期大量的工程經(jīng)驗(yàn)的人。可惜我還不是那樣的人,最近急著提高自己的工程經(jīng)驗(yàn)恨不得白幫人做項(xiàng)目,只是時不我待,時不我待。