插件片段和功能部件
[參考:http://www.uml.org.cn/zjjs/zjjs24.htm]
[參考:http://www-900.ibm.com/developerWorks/cn/linux/opensource/os-ecfeat/index.shtml]
Eclipse 由插件組成,但在開發 Eclipse 的插件時,還要慎重考慮另外兩個級別的組件 — 插件片段和功能部件。
插件片段(如名稱所暗示的)是完整插件的組成部分 —
目標插件。片段提供的功能與目標插件的功能合并。片段可以用于將插件本地化成各種語言;在無需形成一個全新發行版的情況下,以增量形式將功能部件添加到現
有插件,或者提供特定于平臺的功能。在許多方面,片段與插件一樣。主要的區別就是片段沒有插件類 —
片段的生命周期由其目標插件管理。此外,片段的清單文件叫作 fragment.xml,它列出了目標插件的標識和版本號,以及片段的標識和版本號。
另一方面,插件功能部件根本不包含編碼。在 Eclipse 體系結構術語中,功能部件是將一組相關插件打包到完整的產品中。例如,JDT 是包含了象
Java 編輯器、調試器和控制臺這樣的插件的功能部件。名為 feature.xml
的清單文件描述了一個功能部件歸檔文件。在其中,該清單文件包含了對該功能部件所包含的插件和其它資源的引用、關于如何更新該功能部件的信息、版權信息和
許可證信息。
如果沒有功能部件,插件是難以駕馭的,通俗地說,不屬于功能部件的插件是未被管理的插件。Eclipse
平臺的啟動過程包括一個配置的步驟。如果一個新的插件被拷貝到 \plugins 目錄,或者以其他方式使 Eclipse
在啟動的時候可以找到,配置過程會發現它,但只是通過將新插件的 splash 圖標閃爍兩次來通知您。Eclipse
之所以會發現新的插件,是因為存貯在 \.metadate\.config\platform
中的當前工作區的配置校驗和發生了變化;由于您沒有向平臺提供一個可以引導用戶做出配置修改的功能部件,Eclipse 也只能是通過
splash-flash 來提示這一變化。將您的插件打包為一個(或兩個)功能部件,您將獲得如下好處:
* 在 Eclipse 的配置過程中列出您的組件(在 feature.xml 文件中)所要求的先決條件
* 使您的組件可以作為 Eclipse 配置的活動部分來管理
* 創建標記信息,讓使用那些使用運行期環境的用戶可以識別您的組件,并通過一個歡迎頁面來告知用戶您的功能部件所提供的功能(在關聯到您的功能部件的 welcome.xml 文件中)
* 用 Eclipse 更新管理器可以對您的組件進行修改
不要等到您的插件開發完成后再打包為功能部件。反映在功能部件定義中的設計結果會影響您如何構建您的插件。例如,大多數的 Eclipse 組件都有
UI 功能部件和核心(不是
UI)功能部件。如果您的插件沒有按這種方法進行劃分,您可能會馬上考慮重新設計它們。功能部件也可以用來自動編譯處理被引用的插件。
posted @
2005-03-30 18:11 Brian Sun 閱讀(2250) |
評論 (11) |
編輯 收藏
1、 情況不同
一只小豬、一只綿羊和一頭乳牛,被關在同一個畜欄里。有一次,牧人捉住小豬,牠大聲號叫,猛烈地抗拒。綿羊和乳牛討厭牠的號叫,便說:「他常常捉我們,我們并不大呼小叫。小豬聽了回答道:「捉你們和捉我完全是兩回事,他捉你們,只是要你們的毛和乳汁,但是捉住我,卻是要我的命呢!」
立場不同、所處環境不同的人,很難了解對方的感受;因此對別人的失意、挫折、傷痛,不宜幸災樂禍,而應要有關懷、了解的心情。
2、 自己
小蝸牛問媽媽:為什么我們從生下來,就要背負這個又硬又重的殼呢?
媽媽:因為我們的身體沒有骨骼的支撐,只能爬,又爬不快。所以要這個殼的保護!
小蝸牛:毛蟲姊姊沒有骨頭,也爬不快,為什么她卻不用背這個又硬又重的殼呢?
媽媽:因為毛蟲姊姊能變成蝴蝶,天空會保護她啊。
小蝸牛:可是蚯蚓弟弟也沒骨頭爬不快,也不會變成蝴蝶他什么不背這個又硬又重的殼呢?
媽媽:因為蚯蚓弟弟會鉆土, 大地會保護他啊。
小蝸牛哭了起來:我們好可憐,天空不保護,大地也不保護。
蝸牛媽媽安慰他:「所以我們有殼啊!」
我們不靠天,也不靠地,我們靠自己。
3、 鯊魚與魚
曾有人做過實驗,將一只最兇猛的鯊魚和一群熱帶魚放在同一個池子,然后用強化玻璃隔開,最初,鯊魚每天不斷沖撞那塊看不到的玻璃,耐何這只是徒勞,它始終不能過到對面去,而實驗人員每天都有放一些鯽魚在池子里,所以鯊魚也沒缺少獵物,只是它仍想到對面去,想嘗試那美麗的滋味,每天仍是不斷的沖撞那塊玻璃,它試了每個角落,每次都是用盡全力,但每次也總是弄的傷痕累累,有好幾次都渾身破裂出血,持續了好一些日子,每當玻璃一出現裂痕,實驗人員馬上加上一塊更厚的玻璃。后來,鯊魚不再沖撞那塊玻璃了,對那些斑斕的熱帶魚也不再在意,好像他們只是墻上會動的壁畫,它開始等著每天固定會出現的鯽魚,然后用他敏捷的本能進行狩獵,好像回到海中不可一世的兇狠霸氣,但這一切只不過是假像罷了,實驗到了最后的階段,實驗人員將玻璃取走,但鯊魚卻沒有反應,每天仍是在固定的區域游著它不但對那些熱帶魚視若無睹,甚至于當那些鯽魚逃到那邊去,他就立刻放棄追逐,說什么也不愿再過去,實驗結束了,實驗人員譏笑它是海里最懦弱的魚。
可是失戀過的人都知道為什么,它怕痛。
4、 神跡
法國一個偏僻的小鎮,據傳有一個特別靈驗的水泉,常會出現神跡,可以醫治各種疾病。有一天,一個拄著拐杖,少了一條腿的退伍軍人,一跛一跛的走過鎮上的馬路,旁邊的鎮民帶著同情的回吻說:「可憐的家伙,難道他要向上帝祈求再有一條腿嗎?」這一句話被退伍的軍人聽到了,他轉過身對他們說:「我不是要向上帝祈求有一條新的腿,而是要祈求祂幫助我,叫我沒有一條腿后,也知道如何過日子。」
試想:學習為所失去的感恩,也接納失去的事實,不管人生的得與失,總是要讓自已的生命充滿了亮麗與光彩,不再為過去掉淚,努力的活出自己的生命。
5、 釣竿
有個老人在河邊釣魚,一個小孩走過去看他釣魚,老人技巧純熟,所以沒多久就釣上了滿簍的魚,老人見小孩很可愛,要把整簍的魚送給他,小孩搖搖頭,老人驚異的問道:「你為何不要?」小孩回答:「我想要你手中的釣竿。」老人問:「你要釣竿做什么?」小孩說:「這簍魚沒多久就吃完了,要是我有釣竿,我就可以自己釣,一輩子也吃不完。」
我想你一定會說:好聰明的小孩。錯了,他如果只要釣竿,那他一條魚也吃不到。因為,他不懂釣魚的技巧,光有魚竿是沒用的,因為釣魚重要的不在<釣竿>,而在<釣技>有太多人認為自己擁有了人生道上的釣竿,再也無懼于路上的風雨,如此,難免會跌倒于泥濘地上。就如小孩看老人,以為只要有釣竿就有吃不完的魚,像職員看老板,以為只要坐在辦公室,就有滾進的財源。
摘自:Papaya Fly [^] 感謝Papaya!
posted @
2005-03-29 18:07 Brian Sun 閱讀(1673) |
評論 (3) |
編輯 收藏
盡管我已經在不少原創的文章中評點過現代版權制度的是是非非,但是在Blog里說這個話題還是頭一回。提到版權制度,我的觀點就是,我理解那些版權所有者的憤怒,我同情那些版權支持者的執著,但我同樣批評那些版權制度的維護者,他們正在錯誤的道路上越走越遠。
1。軟件版權
自青年才俊Bill
Gates將版權制度引入軟件界以來,盜版軟件一天也沒有停止過。拿國內市場來說吧,自王江民在磁道與磁道之間寫正版信息,到金山紅色風暴瘋狂降價,自聯
邦軟件“我自豪,我用正版”精神激勵法,到各大殺毒軟件網上自動更新,正版軟件與盜版光盤市場的競爭始終是軟件從業人員優先考慮的問題。可是結果呢,這些
策略都以失敗或基本不成功告終,即使正版軟件的銷量的增長速度大于PC使用者的增長速度也不能說明問題,因為盜版光盤仍然占據著大部分的市場。
但是今天,我們已經看到了盜版光盤生產商的末日即將來臨,這不是因為正版軟件采用了什么加密手段,而是得益于互聯網的飛速發展,現在Google+BT就
可以下載到幾乎所有需要的軟件,我們完全有理由相信在不久的將來盜版軟件光盤會把市場占有率降低到10個百分點以內。這種說法聽起來有點搞笑,正版軟件沒
有了老對手,卻不得不面對更強大的新敵人?!是的,問題不在于盜版,而在于正版。一個軟件廠商想寫點代碼,做個可以在PC上跑的好玩好用的東東就可以一夜
暴富的時代一去不復返了,現在,正是軟件廠商好好考慮考慮自己所提供的服務的時候了。我從沒見過Eclipse或Apache或JBoss為盜版頭疼過,
我也沒見過網易或盛大或QQ視盜版為敵人的,原因很簡單,他們不把軟件當成產品賣,或者不把軟件當成盈利點,他們賣的是服務!我并不主張所有的軟件公司都
要放棄產品改賣服務,像用友金碟這樣做ERP的企業照樣賣產品也沒什么問題,別人即使盜版了也沒辦法用。我也不是主張所有的軟件公司都要開源,Java虛
擬機既不開源也不開放,但一樣有上十億美元的業務。為什么?因為他們都沒有把自己和盜版商栓在同一個炸藥包上!
這就是版權制度的問題,憑什么寫代碼就能賺錢?!現在已經不是程序員是稀有動物的年代了。想想吧,AIX和HPUX和MacOSX三種操作系統的盜版加起
來還不到1%o的市場占有率,Linux的正版常常會比盜版賣的更便宜,同樣是操作系統,WindowsXP就慘不忍睹了,國內盜版的品種(光我看見的
就)不下20個。如果這還不能引起Bill
Gates他老人家的注意的話,那么為什么連微軟自己的核心工程師都認為DotNet沒有前途了呢,原因很簡單:一個軟件公司,即使市值幾千億,也斗不過
整個開源社區。
2。書籍版權
書的盜版問題不是一個全球性的問題,也就是說,是個國內問題。國內書籍的盜版主要集中在兩塊,一塊是制度問題,另一塊,還是制度問題。
首先,書籍的銷售渠道沒有為正版鋪平道路。比如說以前中央搞過“百城萬店無假貨”,雖說沒有把假貨斬盡殺絕,但是起碼也樹立起了真貨的形象,讓想買真貨的
消費者知道了它的存在。書籍就不同了,因為很多消費者認為買盜版書沒什么太大問題,所以就沒有人提出“打擊以假亂真”的問題,我在合肥時想表揚一家書店做
的不錯,他們把正版書和盜版書放在不同的書架上出售,并明確告知消費者,這些是盜版,有一種沒有欺負人的感覺。當時我就隨手拿起一本盜版書翻了一下,沒
買。一周后我偶然發現這本書出現在正版的書架上,書簽還留在上次我翻閱時放置的位置!!!:(
其次,書籍的出版發行印刷渠道也有問題。現在的偽書特別多,很多書都寫著“拿破侖·希爾 著”或者“杰克·韋爾奇
著”,其實他們根本沒寫過這些書,中央電視臺告訴我們判別這些偽書的最好方法是去Amazon,搜這本書的書名,如果有再看看作者,如果也有再看看樣章,
Amazon上都有樣章,簡單翻譯兩句對比一下就知道是不是偽書。這種方法很有效,可是太麻煩,如果書店的進貨伙計能夠幫消費者這么做就沒問題了,這就需
要數據庫提供方與書店的合作了,假如某家書店同CIP合作,搞個什么諸如“powered by 中國版本圖書館”一定生意很火爆。
3。音樂版權
Napster早就被打到了,還在<<Italian Job>>上被人羞辱了一番,盡管他的創始人曾經和Bill
Gates、Michael
Dell一并稱為IT三大神童。如果把Napster的倒臺看成是音樂版權商的一次維權行為那就大錯特錯了,那是腐朽的音樂版權商向新興的開放音樂服務供
應商發起的一次猛烈的報復行為,就像封建貴族必然會反對革命一樣。我們希望那是最后一次了。另我們無法忍受的是,Napster僅僅是像ICQ和
Netscape一樣的工具提供商,他沒有從賣軟件的方式上得到過一分錢,卻一直在做正確的事情。另我們更無法忍受的是,Dvorak的數據表明,
Napster出現之后,正版音樂光盤的銷量比Napster出現之前提高了140%!這說明開放音樂市場無意中刺激了很多消費者的購買欲望,而音樂商們
卻對這個數字視而不見。
在我看來,音樂版權最后的歸宿也應該同軟件一樣,從賣產品轉而賣服務。不信我可以給你舉出很多成功的例子來,Real
Networks是不是一個,MTV是不是一個,Channel
V又是不是一個,他們都是不怕盜版的。想想吧,現在哪一首歌能比網絡歌曲的流行速度那么快?又有哪一首歌在網上沒有人把自己的翻唱版交付下載。我可以付責
任的告訴你,不久你就會發現某個新新歌手,剛剛灌第一張唱片,就已經被人翻唱過了,導致很多人不知道這首歌的原唱到底是誰?!此外,演唱會也是一種很好的
方式,就好像盜版DVD再多也不會影響電影制片商的“正常利潤”,因為票房和廣告收入是他們的主要經濟來源。我相信,最終,真正合理的版權制度應該讓歌手
的利益得到保障,至少是讓他們不要為經濟利益而擔憂,這樣他們才能全身心的投入藝術創作中去;對于有明星夢的人,應該降低他們進入演藝圈的門檻;對于消費
者,應該有效保障他們付費是為了質量和服務,而不是什么虛無飄渺的版權;對于版權商和唱片公司,則應該進一步濃縮他們在產品上的利潤率,而促使他們轉向更
合理的商業模式的進化。
聊天的泡泡
posted @
2005-03-27 23:44 Brian Sun 閱讀(2708) |
評論 (19) |
編輯 收藏
這是我在我租的房子里第一次上網,從前天到今天,在經歷了Modem戰役、Modem電源戰役、撥號軟件戰役、電話線戰役、用戶名和密碼戰役、ADSL分頻器戰役、死機戰役等等戰役之后,終于在今天下午14點整登上了分別已久的Blog。
這兩天在讀一本講RUP的書,這本書的所有案例都是圍繞軟件
PSP Tools開發的全過程展開的,(猜對了,就是
<<小型團隊軟件開發>>!),因為已經很久沒聽人講過PSP了,所以倍感親切,一時間免不了多了些感想,記了下來,與大家分享。
PSP者,個體軟件過程也。第一次跟朋友提到PSP時,朋友問“要那玩意有啥用?”我當時就愣住了,半天沒說出個所以然來,我還真不知道該怎樣回答這么突
如其來的問題,或者應該說我還真沒想到回有人問出這樣的問題來。朋友的理由也很坦蕩,講過程就要講團隊如何把握過程,這樣才能減少溝通的成本,降低開發的
風險;講一個人的過程有什么意思,每個人都有每個人的思維方式,尤其是腦力勞動者,更是需要工作形式的個性化和多元化。這樣看來朋友是站在“腦力勞動者”
的立場上說話的,我也完全有理由相信腦力勞動者大多數都是這樣認為的。那我呢?我站在誰的立場上?是“體力勞動者”嗎?朋友說“你是站在管理者的立場上才
那樣說的,因為管理者總是希望每個人都把精力集中在提升自己的工作效率上。”
這一番爭論我至今記憶猶新,真的是朋友所說的那樣嗎?CMM、RUP、XP和PSP是目前軟件過程標準的四個代表,
RUP(Rational統一過程)產自IBM/Rational公司,這個公司的創始人來自電信領域的軟件巨頭;
XP(極限編程)來自Kent Beck和Martin Fowler,他們是軟件設計和軟件工程領域的世界名人;
CMM(能力成熟度模型)與PSP
同一個父親,即美國著名的軟件界人士Humphrey先生,軍方曾希望Humphrey先生能為其選擇軟件供應商制定一套衡量軟件開發能力的標準,SEI
和CMM就誕生了,卡耐基梅隆大學希望Humphrey先生能為軟件系的大一新生寫一本可以規劃其一生職業發展的書,PSP應運而生。四個標準的創始人代
表了四類對過程感興趣的人群:大客戶、管理者、開發高手、職業學者。可見我并不是站在管理者的角度,(雖然我是哈伯德的支持者),大家的立場不同,看到的
軟件過程也就不同,不信,你比較一下。大客戶多數在乎的是規范、透明和穩定性,如果一個人離開了項目,項目能否繼續?如果所有的人都離開了項目,項目能否
繼續?如果一個企業離開了項目,項目能否繼續?管理者看重的是成本、風險和進度的等邊三角形,考慮到質量的管理者就更為出色。開發人員,包括分析人員、設
計人員、實施人員和測試人員,都希望項目的任何工作都好上手,不要紙上談兵,要重視人(自己)而不是過程,要重視產品而不是文檔。唯獨職業學者最不一樣,
他所想的往往是你所發現不到的問題,因為他們常常不在項目中,多數是在項目完成之后的談論和數字中得到啟發,因此他們看到的也可能是你最需要但自己卻不知
道的Best Practise。
為了證明我的觀點,我找了一個很好的例子。我們項目組目前正在使用腦圖相互交流思想,和記錄頭腦風暴的結果。
腦圖(MindMap(R))是
托尼·巴贊的注冊商標,他為什么要注冊這樣一個商標呢?在托尼年輕的時候,他去圖書館找教人如何使用大腦的書,圖書館管理員認為他是個怪人“哪有人不會用
大腦的呢?”于是帶他去了“腦內科”的書架,托尼知道管理員是不會理解他的,于是他決定自己去找。他花費了數年的時間,找遍了全國所有著名的和不著名的圖
書館,(他好像是英國人),都沒有找到一本教人如何使用大腦的書。托尼突然有了一種使命感,既然上帝讓他領悟到大腦的使用是有技巧的,那他就有義務將這個
發現告訴更多的人。這種使命感就像促使奧格曼迪諾寫成
<<世界上最偉大的推銷員>>一樣,促使托尼花費了畢生的精力,經過無數次的調查和研究,終于發明了腦圖,并成立了人類歷史上第一個以研究如何使用大腦為目標的國際性組織。今天,腦圖已經家喻戶曉,它對人類文明的貢獻絕不亞于希爾博士的
<<Think And Grow Rich>>(<<思考致富>>),但與后者不同的是,托尼不僅因此而獲得了崇高的威望,還獲得了驚人的財富,這完全得益于他為腦圖注冊了商標。(想想吧,每份Visio和每本
<<學習的革命>>都付了版權費用!)
幾十年來,托尼幫助過無數的人,幫助他們改掉不良的思維習慣,幫助他們找到最合適自己的工作,幫助他們提高自己的能力和收入,他為人類創造的價值,豈是億
萬可以衡量。這個例子用來證明我的觀點,似乎是用了宰牛刀,既然研究如何使用自己的大腦都如此有價值,那么研究一個自己的開發過程和開發能力又何嘗不必要
呢?
我讀過很多托尼的書,我覺得如果說希爾教人如何完善心態,奧格教人如何培養習慣,卡耐基教人如何溝通交流的話,那么托尼就教人如何使用大腦,他們共同構成
了美國式的成功學最基礎的四步曲。這些不是哈伯德所說的商業道德,而是一套種子如何成長為大樹的指南。回到我們所談論的話題上來,如果以每個人的思維方式
不同為理由,就可以放棄改進自己思維習慣的話,那這個人一定不能成為成功者!事實上,每個人的心態、每個人的習慣、每個人說話的方式、每個人如何使用大
腦、甚至每個人心目中的道德觀念這些都是不同的,且會有很大差異,然而這恰恰是區別一個成功人士與其它人的最重要的差別。
最后,我希望留給中國所有每個開發人員(包括我自己)一個最美好的祝福,希望每個人都能成為成功人士。當然這是不可能的,這個世界上總是失敗平庸者居多,功成名就者居少,其原因,就是沒有注意這些成功人士應該注意的地方。
愛讀書的泡泡
posted @
2005-03-26 22:02 Brian Sun 閱讀(2640) |
評論 (5) |
編輯 收藏
1。Wel-Mart何以做到天天平價呢?答案很簡單——他沒有做到。其實
Wel-Mart里面有很多別的超市沒有的商品,也有很多每個超市都能買到的商品,后者在Wel-Mart里的價格很低,屬于天天平價,所以就給喜歡比較
價格的消費者一點刺激,讓他們以為Wel-Mart所有的東西都很便宜,其實那些別的超市沒有的東西Wel-Mart買的幾乎是天價,利潤全從這里來。
2。Wel-Mart主張利潤分攤,也就是說利潤在消費者、Wel-Mart、生產廠家之間分攤,乍聽起來挺有道理的,可是仔細一想,利潤分攤的本質不就是吃了原告吃被告嘛!先掙廠家的錢,再掙消費者的錢!
3。在Wel-Mart大賣場里擺上自己的商品可不是一件容易的事,因為你
要交大量的管理費、攤位費和雜費,最后還要你拼命壓低價格,Michael
Dell曾經也把自己的電腦放在Wel-Mart里賣,后來實在是交不起費用只能撤出,于是成全了人類歷史上最大規模的直銷體系的誕生。
4。某人去國美,看中一臺彩電,2999,某人嫌貴,跑去蘇寧,蘇寧報
價2899,某人大喜,為了侃價,他謊稱國美報價2799,要求蘇寧打折,蘇寧二話沒說打到部門經理價2700,某人心里盤算:“還能不能再低了”,于是
來到Wel-Mart,Wel-Mart報價2799,某人更喜,心想這回再侃價一定可以更便宜,于是謊稱蘇寧打折2600,Wel-Mart二話沒說打
到部門經理價2500,某人喜出望外,立即掏錢包欲買,誰料小姐立即說出此款電視機之十大毛病,遠遠不如一位競爭對手的一款同價位機型,某人已被說得亂七
八糟、糊里糊涂、昏天黑地、神魂顛倒,三七二十一都不管就掏錢包買了。。。。。價格:2999。
5。某人去五星,看中一款手機,1300,一電一沖,某人經常出差,要
加一塊電池,小姐推薦大禮包200塊,某人嫌貴,來到Wel-Mart,Wel-Mart報價1200,某人大喜,欲買,向小姐要200元大禮包,小姐說
沒有,但有極品電池(國產)禮包,帶電時間是那個大禮包的電池的兩倍,某人立即被侃暈了,掏出錢包買了。。。。。。價格嘛:400塊。
看笑話的泡泡
posted @
2005-03-23 09:26 Brian Sun 閱讀(2037) |
評論 (7) |
編輯 收藏
以前的幾次帖子中,我們都談到了在UI平臺的設計過程中常常會使用的一種設計模式,就是封裝,但是封裝是一種極難把握的模式,而且,單單使用封裝往往也起不到任何設計效果,有時還會畫蛇添足,那么,大師們是怎么使用封裝的呢,我們看看Java領域的例子。
Swing是
由Sun的優秀科學家和Netscape的杰出設計師共同創造出來的卓越的架構。它一生下來就擁有皇族血統,但注定一生都不會取得王位。現在崇拜
Eclipse設計架構的人比較多(包括我),隨之而來的是對Swing的批評聲也很多(不包括我),其實這是一種錯誤的認識,就像
Smalltalk是一種很優秀但使用較少的語言,VB和Foxpro則屬于那種天生拙劣但使用廣泛的語言。Swing比Eclipse架構早出來好幾
年,后者從前者那里吸取了不少的經驗,也借鑒了很多模式,才會有今天的成就。而直到今天Swing仍然有很多值得我們學習的地方。
再說封
裝,打開JButton的源代碼就會發現,JButton沒有往可憐的Windows界面上畫上任何一筆,換句話說,整個類里面一行繪圖代碼都沒有,這是
為什么?因為JButton是一個Controller的變種,繪圖組件由另一個類提供,這個類以UI名字結尾,在內部包中,且繪圖器在不同的界面風格
下、不同的操作系統、甚至不同的語種下面有不同的實現。這使得JButton類四兩撥千斤,憑一個不變的框架同時實現了跨平臺和可插拔風格。至于它的一些
顯示參數,別著急,既然有C有V不可能沒有M啊,ButtonModel類負責維護JButton的參數。
我們再看卓越的Eclipse,Eclipse比其這種封裝來說就要復雜的多了,我們分成六個環節來講。
1。Eclipse將Windows的繪制方法包裝成
SWT,這種包裝很原始,但是很有效,因為Java不好調用Win32API,所以這一步實現了跨平臺。需要注意的是,這種包裝應該屬于簡單的分層,Eclipse編寫了一個操作系統的Facade,OS類,這個類的win32版的源代碼有2734行,顯然是個龐然大物啦。
2。Eclipse把SWT當作它的基本組件來重用,(就好像這是別人寫的東西),它把SWT的組件繼續包裝成
JFace,JFace采用真正意義上的 MVC模式,比起緊湊的SWT來要活潑一點。JFace把SWT當成它的View,把Provider的實現當作它的Model,把自己包里的可控的帶有組件邏輯的Viewer類當成Controller。
3。由于SWT被設計用來繪制窗體組件,按照管理,應該有一個包被用來繪制二維圖形,這個工作就交給
Draw2D來完成,它被放置在GEF包中,和SWT 處在一個層次。需要注意的是,Draw2D與SWT的組織機制不同(見
前面的文章)。
4。Eclipse繼續封裝,因為JFace只解決了高級組件的問題,并不能直接放在Workbench里面用,所以Eclipse制作了
Workbench包,這個包把Viewer封裝成ViewPart,它認為Viewer是繪制器,而ContentProvider是Model,所以,像之前的幾次一樣,ViewPart變成了Controller。
5。有了ViewPart也就有了EditorPart,這兩種Part都有可能要顯示
Form表單(一
種類似HTML的界面),表單上的控件——理所當然,是由
SWT實現的——與一般意義上的控件有很大的不同,這種不同主要體現在展現方式和事件通知上。Eclipse采取的方式是另做一套內部實現,包裝SWT實
現,比如SWT有一個Button,表單包也有一個表單Button,與Button通過一個Toolkit類轉換。這種方式就是設計模式中提到的
Proxy。
6。現在我們再看看需要繪二維圖的EditorPart,這個部分是通過
GEF來實現的,GEF是比JFace和Workbench更嚴格的MVC,它再EditorPart的基礎上再包裝一次,將策略等控件業務與控件繪制分離。
今
天我得到的最重要的一個結論,就是封裝是相對的,MVC也是相對的,因此在JFace看來是Controller的東西在Workbench來看可能是
View,這可能導致在設計時的大量爭議。今天的另一個收獲是發現了封裝也有幾類,我能想到的應該有Facade封裝、Proxy封裝、MVC封裝三種,
你還能想到更多的嗎?
做軟件的泡泡
posted @
2005-03-23 01:26 Brian Sun 閱讀(2161) |
評論 (0) |
編輯 收藏
EclipseCon 2005的余溫還沒有過去,今天僅從一個方面探討一下它的貢獻:
1。Borland Upgrades Position In Eclipse Foundation.
雖然此舉將令Borland付出每年25萬美元的年金,但是這是值得的,這一點從Jolt大獎今年的情況就可以看出。Borland必須作出反映了,是繼
續以JBuilder為武器與Eclipse競爭到底,還是主動投誠,加速Eclipse的進程,并在合適的時機將JBuilder整個端到
Eclipse上面去。還好,Borland選擇了后者,讓人們不必再為兩種不同的標準而煩惱,讓天下歸一。
2。BEA Contributes JRockit To Eclipse Foundation.
這個舉動實在令人佩服,(佩服是說我真的沒有想到)。因為在JDK這一邊,除了Sun之外,還有三個可圈可點的產品:IBM
JDK,曾是性能最好的JDK,出到1.3后就沒聲音了,后來貢獻給了WSAD;IBM
Jikes,曾是第一個支持增量編譯的編譯器,后來貢獻給了Eclipse成了Eclipse
Compiler(很多場合成了標準,比如linux下的java編譯器);JRockit,曾是(現在仍然是)wintel平臺上最快的虛擬機。現在這
三個奇跡全部回歸了Eclipse基金會,再次出現了天下歸一的局面。
3。BEA Contributes BEA Workshop To Eclipse Foundation.
關于Java開發環境的競爭曾經進入過白熱化的階段,當年雄踞一方的Visual
Cafe,如今已經不見了蹤影,開源環境下的Iava也被JCreator取而代之,等等等等。現在,自VisualAge for
Java貢獻給了Eclipse之后,Rational XDE和BEA
workshop也貢獻給了Eclipse,現在只等Borland步其后塵,才能最終實現天下歸一的夢想。
4。Rational SDP Gets Ready For Eclipse 3.0.
RSDP:Rational軟件開發平臺,已經為建立在Eclipse
3.0之上的想法做好了準備,盡管還缺乏一些內部細節的透露。目前我們知道的內容是一對矛盾體:Rational的最高領導已經明確表示Rational
將繼續支持Java和DotNET兩種平臺,但是IBM的有關官員卻表示即將推出的RSDP將全面建立在Eclipse
3.0之上。對于這種矛盾,新聞界有些人認為IBM將推出讓Eclipse支持DotNET開發的插件,是這樣的嗎?我不知道。如果真是這樣的,那已經不
是天下歸一這個詞能夠形容的了。
posted @
2005-03-21 10:04 Brian Sun 閱讀(2981) |
評論 (12) |
編輯 收藏
今天很有興致來思考思考和討論討論這個問題,我對軟件標準是很感興趣的,我也相信有很多人對軟件標準也是很感興趣的,但是是不是每個人都能看到軟件標準發
展的統一規律呢,未必,我也不能,我只是想探討一下一個軟件標準在發展的過程中競爭與合作彼此交替出現的現象,以及這個現象背后的原理。
我們以一種抽象的軟件標準為例。假設這種軟件標準在創立之前,人們只能通過使用其它方法或技巧(technics),
或者某個父領域的標準中的某一段來
解決問題,我們統稱這些解決方案為舊標準,即使它并沒有標準存在,用字母A待指。此時,一種新生的軟件標準——專門用來解決這一問題的解決方案誕生了,我
們稱為B標準。B標準在其創立之初是
非常有潛力的,非常有生命力的,但它必須面對A標準的全面打擊,不過不用擔心,一般情況下第一個吃螃蟹的人不會太慘。
B標準頑強的生存了下來,并逐漸被人們接受。
當B標準正在被人們接受的同時,其它標準也應時代而生,因為與B標準可能采用不同的解決方案,它們不得不制定別的標準。當然也有這種可能,這些標準的制訂
者在考慮問題時并不知道B標準的存在——因為它當時還十分弱小,或根本沒把B放在眼里。于是B2、B3應運而生,在他們的壓力下,B標準不得不澄清與它們
在實現方式上的不同,而轉變為B1。
競爭再度開始,B1、B2、B3之間的競爭是更激烈的,(達爾文稱為種間競爭),因為它們彼此相互排斥,不會有一個大型項目采用其中的兩種或兩種以上。但又由于它們面對同樣的問題域,最后導致的結果只能是相互學習,因為只有這樣才能保證不被擊垮。
事務的發展往往具有戲劇性的效果,正是因為它們選擇了一條不會被取代的道路,它們才注定會被取代!新的標準必將取代群雄逐鹿的局面,才能穩定市場,因為客
戶其實是不希望多個標準同時存在的。于是C標準被建立起來,C標準的建立有兩種渠道,一種是大型廠商如IBM等的介入,它們支持B中的一個以合并其它標
準,另一種情況是其它標準自己將自己貢獻給其中最強大的一個,彌補它在其它方式解決方案上面的不足。在經歷了一段穩定期后,C標準最終成熟起來。
大量商業應用會建立在C標準之上,因為它確實太出色了。但是好景不長,隨著市場的發展,C標準的生命周期也會有終結的時候,此時它又面臨兩種可能的境地。
第一,問題域進一步細分,又出現了很多0解決方案的領域,如果讀者稍加注意,就會發現C標準目前已經處在當初A標準所處的位置了(注意前面紅字的位置)。
第二,可能會存在另一個與C標準競爭的新解決方案誕生,它一誕生就具有強大的生命力,且采用與B標準不可能調和的解決方案,如同Java和DotNet一
樣,(這和前面藍字的部分是有區別的),我們稱為D標準,此時D標準要做的不只一件事,它既要和C標準爭天下,又要盡量平息自己內部的矛盾,在兩線作戰的
情況下,D標準可能曇花一現或者干脆把C干掉,坐到A的位置上去。
做軟件的泡泡
posted @
2005-03-20 23:43 Brian Sun 閱讀(2375) |
評論 (4) |
編輯 收藏
首先要感謝大胃給我們帶來的這個好消息。他說:
第15屆Jolt大獎評選結果已經公布,可以在以下地址下載PDF:
http://www.sdmagazine.com/pressroom/jolt_winners_2005.pdf
其中還是有很多令我們欣喜的作品,也有我們意想不到的結論:
Books: General的得主是
Head First Design Patterns,這個我沒有聽說過,但被我們看好的
Software Factories和
Refactoring to Patterns也得到了生產力獎。
Books: Technical的得主是
Better, Faster, Lighter
Java,這再度證明Jolt大獎對書籍閱讀量的考慮還是很明顯的。生產力獎的得主分別是
C++ Coding Standards: 101
Rules, Guidelines, and Best Practices;O'Reilly的
Hibernate: A Developer's
Notebook和
Java Developer's Guide to Eclipse, Second
Edition,后者應該是本很好的書,可惜作者我不認識。
ILOG的
ILOG Rules for .NET只獲得了
Business Integration and Data Tools的生產力獎,其它幾樣都沒聽說過。
SVN(Subversion 2004)不負眾望,獲得了
Change and Configuration Management Tools的Jolt大獎,希望它能在新的一年、新的一版里表現的更成熟。
IBM/Rational,Borland/Together和MagicDraw UML分獲得
Design
Tools的三個生產力獎,這個項目的桂冠被Visual Paradigm的
Smart Development Environment
2.0奪得。(盜版商快行動啊!)
Eclipse 3.0獲得
Languages and Development
Environments的Jolt大獎應該是。。。。。怎么說呢?終盼所歸?舍它其誰?至少應該是情理之中吧。呵呵。我個人是挺高興的,因為我是
Eclipse的狂熱粉絲(從我的Blog應該能看出來吧)。
IntelliJ IDEA和新版
Python 2.4獲得生產力獎。Borland
JBuilder 2005和NetBeans 4.x/Sun ONE
Studio榜上無名。前者已經擺出積極主動的姿態,似乎想在下一個回合中化敵為友,加入Eclipse的陣營。后者則仍然死不悔改,前些天還有一個
Sun的人在網上揚言“大量”Eclipse的用戶已經轉向NetBeans了,還說NetBeans的性能好于Eclipse,簡直是亂講!這個言論還
引起了國內不小的爭論,這個結果正好殺殺他們的銳氣。該獎的另一位得主是
REALbasic。
Hibernate喜獲
Libraries, Frameworks and
Components的Jolt大獎,EJB3.0笑了;
Tiger獲得了該項的生產力獎,Eclipse笑了。正當大家都急著支持Tiger的時候,
Eclipse不慌不忙的改進了界面和穩定性,“眾人皆醉我獨醒”!但是就我個人的觀點而言,我覺得Tiger能走到這一步已經很不容易了,畢竟是一次大
膽的嘗試,無論人們對Tiger的最終評價會如何,我覺得Tiger能做到這樣已經是我始料未及的了,可以說它已經成功了。還有,明年的這個獎項我希望能
看到融合了AspectWerkz的新版AspectJ 5的身影(最好是Jolt大獎)。
Management Tools的大獎被Borland捧得,作品是
CaliberRM 2005(真沒白花錢),IBM/Rational與其失之交臂。但是我們卻驚訝的看到VersionOne的
V1: Scrum1.5也獲得了生產力大獎,可喜可賀!
當然,Sun也不是一無是處,在
Mobile Development Tools一項下,Sun的
J2ME WTK 2.2就獲得了Jolt大獎,Nokia旗下的
CodeWarrior和Macromedia的
Flash Lite獲得生產力獎。
Macromedia在
Web Development Tools一項下實現了雙豐收,Jolt大獎歸屬了它的
Flex
1.5(百分之百預料之中,確實太強了,是RIA的經典實現)。另有一項生產力獎發給了它的
Contribute
3.0,與Web開發工具的經典
Tomcat 5.0齊名。需要提醒大家注意的是,Tomcat的署名不僅僅是Apache
Jakarta,居然還有JBoss,給JBoss的頭銜居然還是leading Tomcat contributor!!真見鬼!
Websites and Developer Networks的四個得主分別是
The O'Reilly
Network,
DeveloperDotStar.com,
IBM
developerWorks,
Java.net,其中O'Reilly為Jolt大獎得主,這并不奇怪。
其它的獎項我就不太熟悉了,或者是沒有熟面孔。只有Microsoft的
Internet Security & Acceleration
(ISA) Server 2004獲了
Security的生產力獎,而
Quest JProbe 5.2獲得了
Utilities的生產力獎。
其它的就不多說什么了,正如大胃所說:“
能夠入圍的產品都是相當不錯的”!是該花點時候了解它們了!
做軟件的泡泡
posted @
2005-03-18 21:04 Brian Sun 閱讀(3589) |
評論 (9) |
編輯 收藏
1。完善備份和轉移功能。我應該能在blogjava,cnblogs,和cnweblog三個網站之間轉移blog,這一功能包括文章和評論的導入和導出。
2。好友blog,或者支持訂閱別的RSS。
3。blog首頁分頁顯示。
4。自定義模板,或配色方案。
5。更容易被Google搜索到。
6。為團隊提供wiki功能。
7。代碼更規范。以便更好的兼容FireFox。
8。提供更多的blog客戶端,如桌面應用程序、郵件收發blog、移動設備收發blog、web service等等。
9。改善文章管理機制,建立文件夾式的文章和評論管理。
10。采用某種方式鼓勵原創作品,并改善排名機制。具體的方式我還沒有想好,但有一點可以肯定,如果一篇文章在Google上可以很方便的搜到其中的任意一段文字,就應該不屬于原創。
P.S.以上意見純屬學術討論,不是對dudu的要求,現在的BlogJava已經做的很好了。:)
博客泡泡
posted @
2005-03-17 15:32 Brian Sun 閱讀(1938) |
評論 (8) |
編輯 收藏