posts - 80,comments - 749,trackbacks - 2
插件片段和功能部件

[参考: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 阅读(2088) | 评论 (11)编辑 收藏
1、 情况不同

一只小猪、一只绵羊和一头乳牛,被关在同一个畜栏里。有一次,牧人捉住小猪,牠大声号叫,猛烈地抗拒。绵羊和乳牛讨厌牠的号叫,便说:「他常常捉我们,我们并不大呼小叫。小猪听了回答道:「捉你们和捉我完全是两回事,他捉你们,只是要你们的毛和乳汁,但是捉住我,却是要我的命呢!」
立场不同、所处环境不同的人,很难了解对方的感受;因此对别人的失意、挫折、伤痛,不宜幸灾乐祸,而应要有关怀、了解的心情。

2、 自己

小蜗牛问妈妈:为什么我们从生下来,就要背负这个又硬又重的壳呢?
妈妈:因为我们的身体没有骨骼的支撑,只能爬,又爬不快。所以要这个壳的保护!
小蜗牛:毛虫姊姊没有骨头,也爬不快,为什么她却不用背这个又硬又重的壳呢?
妈妈:因为毛虫姊姊能变成蝴蝶,天空会保护她啊。
小蜗牛:可是蚯蚓弟弟也没骨头爬不快,也不会变成蝴蝶他什么不背这个又硬又重的壳呢?
妈妈:因为蚯蚓弟弟会钻土, 大地会保护他啊。
小蜗牛哭了起来:我们好可怜,天空不保护,大地也不保护。
蜗牛妈妈安慰他:「所以我们有壳啊!」
我们不靠天,也不靠地,我们靠自己。

3、 鲨鱼与鱼

曾有人做过实验,将一只最凶猛的鲨鱼和一群热带鱼放在同一个池子,然后用强化玻璃隔开,最初,鲨鱼每天不断冲撞那块看不到的玻璃,耐何这只是徒劳,它始终不能过到对面去,而实验人员每天都有放一些鲫鱼在池子里,所以鲨鱼也没缺少猎物,只是它仍想到对面去,想尝试那美丽的滋味,每天仍是不断的冲撞那块玻璃,它试了每个角落,每次都是用尽全力,但每次也总是弄的伤痕累累,有好几次都浑身破裂出血,持续了好一些日子,每当玻璃一出现裂痕,实验人员马上加上一块更厚的玻璃。后来,鲨鱼不再冲撞那块玻璃了,对那些斑斓的热带鱼也不再在意,好像他们只是墙上会动的壁画,它开始等着每天固定会出现的鲫鱼,然后用他敏捷的本能进行狩猎,好像回到海中不可一世的凶狠霸气,但这一切只不过是假像罢了,实验到了最后的阶段,实验人员将玻璃取走,但鲨鱼却没有反应,每天仍是在固定的区域游着它不但对那些热带鱼视若无睹,甚至于当那些鲫鱼逃到那边去,他就立刻放弃追逐,说什么也不愿再过去,实验结束了,实验人员讥笑它是海里最懦弱的鱼。
可是失恋过的人都知道为什么,它怕痛。

4、 神迹

法国一个偏僻的小镇,据传有一个特别灵验的水泉,常会出现神迹,可以医治各种疾病。有一天,一个拄着拐杖,少了一条腿的退伍军人,一跛一跛的走过镇上的马路,旁边的镇民带着同情的回吻说:「可怜的家伙,难道他要向上帝祈求再有一条腿吗?」这一句话被退伍的军人听到了,他转过身对他们说:「我不是要向上帝祈求有一条新的腿,而是要祈求祂帮助我,叫我没有一条腿后,也知道如何过日子。」
试想:学习为所失去的感恩,也接纳失去的事实,不管人生的得与失,总是要让自已的生命充满了亮丽与光彩,不再为过去掉泪,努力的活出自己的生命。

5、 钓竿
有个老人在河边钓鱼,一个小孩走过去看他钓鱼,老人技巧纯熟,所以没多久就钓上了满篓的鱼,老人见小孩很可爱,要把整篓的鱼送给他,小孩摇摇头,老人惊异的问道:「你为何不要?」小孩回答:「我想要你手中的钓竿。」老人问:「你要钓竿做什么?」小孩说:「这篓鱼没多久就吃完了,要是我有钓竿,我就可以自己钓,一辈子也吃不完。」
我想你一定会说:好聪明的小孩。错了,他如果只要钓竿,那他一条鱼也吃不到。因为,他不懂钓鱼的技巧,光有鱼竿是没用的,因为钓鱼重要的不在<钓竿>,而在<钓技>有太多人认为自己拥有了人生道上的钓竿,再也无惧于路上的风雨,如此,难免会跌倒于泥泞地上。就如小孩看老人,以为只要有钓竿就有吃不完的鱼,像职员看老板,以为只要坐在办公室,就有滚进的财源。

摘自:Papaya Fly [^] 感谢Papaya!

posted @ 2005-03-29 18:07 Brian Sun 阅读(1559) | 评论 (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 阅读(2546) | 评论 (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 阅读(2494) | 评论 (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 阅读(1920) | 评论 (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 阅读(2041) | 评论 (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 阅读(2779) | 评论 (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 阅读(2233) | 评论 (4)编辑 收藏
首先要感谢大胃给我们带来的这个好消息。他说:

第15届Jolt大奖评选结果已经公布,可以在以下地址下载PDF:

http://www.sdmagazine.com/pressroom/jolt_winners_2005.pdf


其中还是有很多令我们欣喜的作品,也有我们意想不到的结论:

Books: General的得主是Head First Design Patterns,这个我没有听说过,但被我们看好的Software FactoriesRefactoring to Patterns也得到了生产力奖。

Books: Technical的得主是Better, Faster, Lighter Java,这再度证明Jolt大奖对书籍阅读量的考虑还是很明显的。生产力奖的得主分别是C++ Coding Standards: 101 Rules, Guidelines, and Best Practices;O'Reilly的Hibernate: A Developer's NotebookJava 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 NetworkDeveloperDotStar.comIBM developerWorksJava.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 阅读(3428) | 评论 (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 阅读(1824) | 评论 (8)编辑 收藏
仅列出标题
共8页: 上一页 1 2 3 4 5 6 7 8 下一页