计算机软件水平考试:开源框架思索[1]

文章作者 100test 发表时间 2007:03:13 22:19:38
来源 100Test.Com百考试题网


1、空前繁荣的开源世界
  大致2000年以前,Java世界还是Sun一言九鼎,唯我独尊的时代。Sun发布的任何规范和标准都无一例外地被Java社区有意无意的追捧着,Java世界沉浸在一片歌功颂德,前拥后簇的氛围里。IBM,Bea,Oracle这些Java阵营的代表者也都为能最先最快实现Sun的各种规范而弹冠相庆。
  但这三四年来,Java的列车驶进了春秋战国百家争鸣,百花齐放的时代,Apache,JBoss,opensymphony,Eclipse,Codehaus等开源组织个个门庭若市,车水马龙。Java世界似乎天天在过年——张灯结彩,新桃换旧符。打开theserverside.com网站,每天映入眼帘是一条条各种开源项目发布、升级的新闻。虽然嘈杂了些,但却异彩纷呈,惊艳四座。在Java世界里,十室之内必有隐士,十步之内必有芳草,有才华的程序员太多了,抑或怀才的程序员被独裁式的统治压抑太久了,一旦找到了海德公园,庞涓、孙膑、苏秦、张仪式的高手纷纷走出隐居的鬼谷,在开源舞台上劲舞一支,高歌一曲,用一个个开源项目彰显着自己独特的魅力。
  从客户端到数据库,从页面流程控制到业务流程控制,从全文搜索到地图搜索,从论坛到博客,在各种应用领域你都可以方便地找到多个相似的Java开源框架。开源框架的空前繁荣有力的促进了Java技术的交流和分享。一些面向开源的社区,论坛纷纷建立,国内比较著名的就有满江红开源论坛、中文Spring论坛、JavaScud开源平台、JavaEye社区等,宣讲、争论、协作、互动,无数激情和智慧碰撞出耀眼的火花。
  随着开源项目的日益增多,国内甚至出现了象open-open.com Java开源大全的汇总整理网站,它如一个开源项目的大集市,将开源项目分类整理,提供简要的描述说明信息,方便使用者了解、查询和比较。
  开源项目的繁荣还为技术图书业创造了机会,不管是国外的Amazon,还是china-pub或dearbook,开源框架或产品的技术图书,如Spring,Hibernate,Struts,Eclipse等等都成为荣登榜首的畅销先锋。
  这场几乎来源于民间的开源飓风给开发者和CTO们的思路和决策带来了巨大的影响,据Bea的调查,全球排名前2000家软件开发公司中有70%以上在使用一种或多种开源框架——多达28%的公司在开发环境中使用了一种以上的应用服务器。
  同时开源也给走传统路线的Java巨头们带来战略性的影响:Sun去年宣布将其旗舰产品——Solaris开源;去年IBM向第三方厂商开放了其高性能通用并行文件系统(GPFS)的源代码;Unisys也改变企业战略定位投入开源怀抱等等不胜枚举,它们纷纷将营利模式从原来的产品销售调整为支持与服务。
  2、开源框架带来的烦恼
  虽然开源的框架、类库越来越丰富,可供选择的替代者越来越多,但Java程序员却感觉自己慢慢陷入到了技术的漩涡之中:因为他们发现只要一段时间不关注开源社区,就有潮水般陌生的技术框架、专业术语、英文缩略词挟裹着一团团亢奋的热浪将自己淹没,让他们觉得随时都有被Java世界抛弃的危险。许多年纪稍大的程序员甚至觉得职位转换,甩掉技术干管理已经时不我待。
  选择的困惑
  雨后春笋般涌现的开源框架都声称自己是最好的,有过多次因盲从于技术鼓吹而失望伤心的经历后,现在的开发者都变得成熟理智了,他们不会轻易相信某个框架自身的承诺,不会轻易附和他人的宣传,这确实是件好事。为了作出理智的选择,他们往往要自己亲自摸索以做出评判。
  有时,我们会发现向上司推荐一个框架已经变成一件困难的事情,因为上司会冒出各种各样的问题:如Webwork比Struts好在哪里?Hibernate和iBatis有什么区别?OpenWFE比之jBpm有什么优势等等。所以要确定一个框架时,往往需要将相似的框架都研究一遍,以便有充足的理由让上司相信我们的选择是最优的。
  但是,要将同类的框架都做一次研究并比较优劣并非易事,如开源工作流引擎就有Willow,OpenWFE,jBpm,Werkflow,OSWorkflow等不下30余种的框架,炫耀的声音一个比一个响亮。每种框架都有自己的设计思路和实现方案,况且这种技术预研性的工作,又不可能在项目周期内占用太多的时间,而不深入预研又不可能客观地作出评判,所以往往是熬红的双眼依然带着迷茫的目光。
  此外,用人单位为了减少新员工的培训时间,对求职者往往有明确的框架使用技能和经验的要求。求职者为了能找到一个好工作,不得不逼迫自己学习更多的框架,以便让自己拥有更多的求职机会。 来源:www.examda.com
  搭配的困难
  开源的繁荣虽然给各个领域都造就了许多优秀的框架,如Spring,Struts,Hibernate,Lucene、OSCache等等,但却没有出现一个一站式,统管全局的整合开发框架。开发者在享用大餐之前,事先得充当大橱的角色,将这些盐,油、酱、菜按合理的方式调配好。

相关文章


软件架构的相关概念和实践
了解有关DB2数据库优化的几条策略
计算机软件水平考试:开源框架思索[3]
计算机软件水平考试:开源框架思索[2]
计算机软件水平考试:开源框架思索[1]
卡内基梅隆大学软件研究所关于软件架构的定义[2]
卡内基梅隆大学软件研究所关于软件架构的定义[1]
卡内基梅隆大学软件研究所关于软件架构的定义[4]
卡内基梅隆大学软件研究所关于软件架构的定义[5]
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛