??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲乱码中文论理电影,亚洲成AV人片在WWW,亚洲爆乳AAA无码专区 http://www.tkk7.com/nighthawk/category/2516.html享受JAVAQn受h?/description>zh-cn Tue, 27 Feb 2007 08:46:28 GMT Tue, 27 Feb 2007 08:46:28 GMT 60 与Java相关的四十个名字[转脓(chung)] http://www.tkk7.com/nighthawk/articles/15524.htmlnighthawk nighthawk Fri, 14 Oct 2005 08:12:00 GMT http://www.tkk7.com/nighthawk/articles/15524.html http://www.tkk7.com/nighthawk/comments/15524.html http://www.tkk7.com/nighthawk/articles/15524.html#Feedback 0 http://www.tkk7.com/nighthawk/comments/commentRss/15524.html http://www.tkk7.com/nighthawk/services/trackbacks/15524.html 十大事g 1990Q?994QJava~v ?孟岩 Larry Wall_(d)优秀E序员应有的三个特点:懒惰、急躁和傲慢。Java是诞生在一懒惰、急躁而傲慢的E序天才之中? 1990q?2月,Sun的工E师Patrick Naughton被当时糟p的Sun C++工具折磨的快疯了。他大声抱怨,q威胁要dSun转投当时在Steve Jobs领导之下的NeXT公司。领导层Z留住他,l他一个机?x),启动了一个叫做StealthQ秘密行动)的项目。随着James Gosling{h的加入,q个目更名为Green。其目标是用C++为嵌入式讑֤开发一U新的基q_技术,James Gosling本h负责开发一个SGML~辑器。正如h们事后分析的那样Q这位天才的E序员太懒惰Q所以没有把C++学好Q开发中C一头包;太急躁——所以不愿意停下来读读Scott Meyers的新书《Effective C++?太傲慢——所以轻易地军_开发一中新的编E语a。他把这U语a命名为C++++--Q意思是C++“加上一些好东西Q减M些坏东西”。显然这个糟p的名字不可能长命百岁,很快q种颇受同伴喜爱的小语言被命名ؓ(f)Oak? C1992q?月,Oak语言q同Green OS和一些应用程序一起发布在U做Start 7的小讑֤上,从而之有了第一ơ精彩的亮相。随后,Sun开了一家名为FirstPerson的公司,整个团队被{Udq家公司里研发机盒Q以投标时代华纳公司的一个项目。这帮天才被技术狂热所鼓舞Q开发出了一个高交互性的讑֤Q结果没惛_时代华纳公司和有U电(sh)视服务商q不愿意用户拥有那么大的控制权,从而在竞标之战中|l了SGI。Oak的锋芒之锐,竟然把客户都l吓懵了。Sun沮地关闭了FirstPersonQ召回了整个团队。事实证明,传统行业中那些脑满肥肠的保守M者是腐朽没落的。回去!回到Ȁ情澎湃的IT产业Q抓住互联网的大潮,q才是出路!1994q_(d)Oak被命名ؓ(f)JavaQ针对互联网的新一轮开发如火如|一切已l就l,熔岩在地下奔,火山卛_喷发? 1995: Java香浓世界 ?马伟 1995q_(d)Sun正式对外公布了JavaQƈ且发布了JDK 1.0。这U外形酷似C++Q却包含一颗Smalltalk般纯z的面向对象之心的全新程序设计语a?qing)其q_Q几乎在一夜之间就成ؓ(f)软g产业的新宠儿。Java当时仅仅被用来ؓ(f)|站制作一些动态应?诸如动画囄之类Q但q仍然引起了很多Web开发者们的注意,他们非常渴望有一U安全的语言Q可以在静态的HTML|页上制作动d片。Sun最l把Java集成到NetScape览器。同时因为它h“只写一ơ,随处q行”的Ҏ(gu),而引起了很多开发者的注意Q他们可以再也不用ؓ(f)了ɽE序能够在不同型L(fng)g上运行而耗费大量的时间来~译代码了? 当时的Web览器的出现也ؓ(f)Java的出现vC很好的推动作用,通过Java和W(xu)eb览器的l合Qh们似乎看C什么,有h甚至预言PC在一两年内退出历史的舞台Q取而代之的是基于Java的浏览器应用E序Q通过|络计算讑֤来进行应用。Java的出Cؓ(f)当时的Y件业带来了无限的遐惟? 1996QJava大跃q,盟主C此? ?马伟 SUN?996q一开始首先成立了JavaSoftl织Qƈ??3日正式发布自qJava 1.0Q作?0世纪业界出现的最重要的技术之一QJava引v了编E世界的革命。直到现在,Java仍然是互联网上最行的语a? 在Sun正式发布Java 1.0之后QJavaq门新生的语a拥有了自己的会(x)议——JavaOneQ这ơ会(x)议初试啼韛_吸引?00多名参与者。除了拥有这么多的积极参与者来q行Java的开发之外,各大知名公司也纷U向Sun甌Java的许可。一旉QNetScape、惠普、IBM、Oralce、Sybase甚至当时刚推出Windows 95的微软都是Java的追随者? Java的应用就像是世界上的玩家们组成的一个公开联盟Q告诉全世界我们大家是都在用着Java。也正是因ؓ(f)如此QJava也找C自己的归ѝ现在的J2EE已经成ؓ(f)中大型企业应用的标准,成ؓ(f)承接数据库和W(xu)eb之间的一个重要桥梁? 当年Java的机?x)实在太多了Q以至于很难知道到底该做什么。最lJava在应用服务器市场获得了难以取代的CQ也定了J2EE的发展方向,q且仍将延箋下去? 1997-2001: 微Y与Sun的Java官司 ?孟岩 Java诞生?995q_(d)正是微Y在Y件业地位达到巅峰的时代QW(xu)indows 95发布时的风光场面lh们留下的深刻印象至今隑ֿ。尽如此,作ؓ(f)最卓越的技术领袖,比尔?盖茨仍然敏锐地注意到Java。当他了解了Java的一些细节之后,l予了这L(fng)评h(hun):“Java是很长时间以来最优秀的程序设计语a。”基于此Q微软于1996q?月申请ƈ获得了Java许可证。微软对于Java的这一热情态度在当时大大提高了Z对Java的兴和信心Q但也有不少人担心微软会(x)依靠自己强大的媄响力在标准之外另立标准,从而破坏Java的纯z性? 果然Q从1997q发布Visual J++的第一个版本开始,微Y开始在Java中掺入自qU有扩展。这毫无疑问引vSun的高度重视?997q?0月,Sun向美国加州地Ҏ(gu)院v诉微软公司违反两公司微软用Java技术所{֮的合同,指控微Y公司在自qJava产品中做了“不恰当的修改”,q反了合同中承诺向用h供Java兼容产品的条ƾ。这一官司h持久Q直?001q?月双方达成和解,微Yl提供采用Sun开发的Java技术的现有产品Q包括测试版Q。不q,Sun有限制地仅对包括Java 1.1.4的微软品提供许可。到?001q?月,微Y公布新版的Windows XP不再支持Sun的JVMQƈ且推Z.NETq_与Java分庭抗礼? 现在回过头去看,当时的这一场官司对Java世界产生了深q的影响。如果没有这一场官司,也许很多JavaE序员都在用Visual J++Q基于WFC开发Windows客户端程序,同时不得不面对被两个不同的事实标准所分裂的Java世界? 1998QJava 2q_发布 ?陶文 1998q_(d)Java 2q_正式发布。经q了三年旉的发展、热热闹闹的d宣传、红U火火的众厂商的热情参与QSunl于知道Java适合q什么了。对比Java刚发明时的技术定位,与Java的戏剧性触“网”的那段历史QJava 2q_的发布可真算得上是有的放矢了。根据官方的文档QJava 2是Sun意识到“one size doesn’t fit all”之后,把最初的Java技术打包成三个版本的物,也就是著名的J2ME、J2SE、J2EE? 之所以说Java自从Java 2q_发布之后Q进入了C。那是因Z前的历史怎么看来都和现在E序员日常开发用的技术无什么关p,比如AppletQ已l很有Z用了。Java 2之后的历史就不一样了Q至h们在推崇轻量U开发,猛批EJB时还不时?x)引用J2EEq个词是如何诞生的。而Java 2的三大版本中Q除了J2EE得到了长_展和q泛使用之外QJ2ME也在手机市场上取得了遍地开ql果。相较之下,J2SE隑օ落寞Q只剩SWTq个血l不U的家伙在Rich Client回归的时代吸引着Z的眼球了。无Z天看来当时的Java 2有多么的不成熟,臛_l过市场和时间的验,Java 2规划出来的三大方向把Java技术指向了光明的方向是勿庸|疑的? 1998QJCP成立q正式运作, Java开源社开始蓬勃发? ?黄v? 1998q_(d)JCPl织成立Qƈ且开始把握Java的发展方向。JCPl织的开放性,不但使得所有对Java感兴的商业公司可以参与Java的发展,更重要的是JCP允许个h、非盈利l织、学校等加入Q这qJava带来了巨大的zd。随之兴L(fng)Java开源运动的最大A(ch)献是实现和鼓׃知识׃nQ在众多热情的开源程序员们的努力和分享下Q很多原先只被商业公司掌握的技术、思想和品可以被所有需要的开发h员免Ҏ(gu)者以较低的h(hun)D得用权, q过开放源代码更容易的获得反馈和改q意见从而进一步演化发展。我们知道,所谓知识不是孤立发展认知,而是Z的经验,认识是思考交和U篏的物。而开源运动所带来的开放、反馈、交的风气正是W合人类C会(x)知识形成和发展的规律? 开源运动v源于西方的发辑֛Ӟ有其现实背景和文化根源?990q代可以说是IT产业的一个黄金时代。信息时代的兴v对IT人员Q特别是软g人员有着巨大的需求。而Y件开发又是一U类D术创作的脑力zdQ和所有的艺术家、作家们一P在作品打上自q印记q流传在世界上是每一个创作h员的梦想。互联网时代下的高收入的舒适生z,早九(ji)晚五的编写公司的代码q不能满_多有Ȁ情的软g开发h员的梦想Q再加上西方传统的基督教文化中十分推崇的分n和交,开源的出现和兴起也水到渠成了。今天,开源运动已l不仅仅是一些个人天才程序员们的怹园地Q而是发展成ؓ(f)一开源Y件业? 1998QWebLogic打开J2EE的魔? ?霍泰E? Java语言的出C得互联网l有了良好的交互性能Q但q些很“酷”的技术仅被h们认为是一些小花招Q它q无法消除企业用户对它的怀疑?998q_(d)BEA公司宣布收购WebLogic公司Qƈ接着推出由Sun公司W一个授权用J2EE许可证的WebLogic Server应用服务器,q个Java版的AppServer一推出引起业界极大的兴趣。WebLoigc Server以其Ҏ(gu)准的支持、强(zhn)的q算能力和安全的架构设计{特性也很快征服了那些怀疑J2EE应用的h们。推出市场后不到一q_(d)W(xu)ebLogic Server成Z内第一Java应用服务器? q里我们援引一些当时著名咨询公司的调查数据来说明问题,“在IDC的报告中QBEA在应用服务器和交易服务器领域市场份额W一Q在Gartner的报告中QBEA WebLogic Server拥有业内最q泛的EJB应用安装基础Q在Giga Group的报告中QBEA WebLogic Server市场份额?2%”? 因ؓ(f)应用服务器市场极大的发展潜力Q在WebLogic Server之后Q其它的很多公司也推Z自己的AppServerQ如IBM的WebSphere、Sun公司的iPlanet{,逐渐地应用服务器取代了传l意义上的各cM间gQ成Z业应用的基础q_。应用服务器的出C得Java有了真正意义上的发展? 2002-2004: Sun与微软的法律撞最l以喜剧收场 ?恉 2003q?? 日,Sun与微软达?6亿美元的法律和解。如果不是晚了一天,许多Z(x)以ؓ(f)q是一个在4?日愚开的玩W。尽当时所有h都像是看到“太阳从西边出来了”那样张大了嘴巴Q但q的是事实? Ҏ(gu)两家公司达成的版权协议,双方?x)?f)采用Ҏ(gu)的技术而支付专利费用,微Y向Sun提前支付3.5亿美元用费QSun则承诺,如果Sun集成微Y的某些技术,也会(x)向微软付?gu)ƾ? 毫无疑问Q“私下了l”的方式对双方而言都是最好的l果。就在协议签|的当天Q在国旧金qSun和微软ؓ(f)“抛弃十q恩怨、携手合作“D行的新闻发布?x)上Q尽比?盖茨没有到场Q但qƈ没有防碍现场看v来异常轻杄气氛。麦克尼利和鲍尔默各自穿了一件密歇根州底特律“Red Wings”曲球队的q动服,q谈?qing)了一起在哈佛(jng)大学M的经历,麦克利q说:“当时我们两人是非常要好的朋友,当然我们也有吉|的时候。”h与h当然可能成ؓ(f)l生的知己,但是公司与公怹间有的只能是利益上的分分合合? 2000-2004: JBoss和Eclipse ——Java开源Y件的王? ?莫映 Java和开源几乎就是天生的一对,q可以从无比兴盛J荣的Java开源Y件社区得C证。目前最有媄响力的Java开源Y仉目,要数JBoss和Eclipse。可以说Q几乎所有的Java开发h员都获多或少的听到过或接触和使用q它们。前者是目前最优秀、应用最为广泛的企业U开源J2EE应用服务器,后者是功能完全可以替代商业产品的Java IDE。二者的覆盖功能之全、支持工具之qѝ子目之多Q几乎可以仅凭借它俩来完成企业应用的开发构建到部v实施的全q程Q而Y件开发者和客户也都可以最大程度上享受高质量,高可靠Java开源Y件所带来的低成本优势? JBoss和Eclipse的巨大成功,几乎令各自领域的商用竞争者抓狂,其中BEA的WebLogic和IBM的WebSphere在商业利润上受到JBoss的巨大R蚀Q而Borland的JBuilder、JetBrains的IDEA{诸多优U的商用开发工具也不得不面对Eclipse独大的现实。JBoss的CEO兼创始h Marc Fleury曄a不讳地表C,希望占据市场dC。“我们希望打败IBMQ成Z间g领域里最大的厂商。”JBoss?.0以前q只是以一个Group存在Q盈利手D主要靠服务和销售文档。但在最q,JBoss已经发展成ؓ(f)一个有限公司,q吸U_安险投资,专注于获取利润ؓ(f)目标之一的第二代开源Y件模式(JBoss自己UCؓ(f)“Professional Open Source”)的创新和q营。这区别于以理论研究为爱好的学院型开源或大公ؓ(f)基础的非盈利l织开源,如Linux和Apache。当然JBoss的这U运营方式势必会(x)D更多的代码控制和专有修改权,但按JBoss的说法是q样更能获得企业客户的信赖。JBoss的这U模式是否能获得成功q要我们拭目以待? 不管JBoss和Eclipse的未来发展如何,JBoss和Eclipse的成功已l让我们看到了Java开源Y件的威力Q祝愿它们一路走好? 2004QJava 5.0 ?莫映 2004q??0日,代号为“Tiger”,研发历时q三q的J2SE 5.0发布正式版本Q这是Javaq_历来发布版本中改动面波及(qing)最大的一ơ? U观TigerQ“Ease of development”是其核心主题,q一点着重体C语言Ҏ(gu)上的改q,q在很大E度上,化了开发h员日常的~程dQ以往一些琐的手工力_都代之以L自然Q而又安全可靠的自动化实现。其中的注解功能Q以?qing)随之而来的声明式~程Q还Ҏ(gu){于J2SE 5.0之上的J2EE 5.0产生了巨大媄响。尽Tiger在语aҎ(gu)上做了很大的动作,但作为Java技术的基础支撑Q这些改动都是深思熟虑的l果? Tiger发布至今也有大半q了Q那么Sun又是如何规划J2SE的未来蓝囄呢?据?zhn)QJ2SE的下两个版本分别是代号ؓ(f)“Mustang”的J2SE 6.0和代号ؓ(f)“Dolphin”的J2SE 7.0Q预计Mustang于明年发布。在吸取了Tiger研发周期q长的教训之后,Sun副总裁Graham Hamilton表示QMustang的发布周期将不会(x)那么ѝƈ且,Sunq将“Becoming more open?作ؓ(f)Mustang的主题之一。未来JCP对Java技术的影响会(x)愈加深入Q而整个研发过E也会(x)愈加透明。Mustang在正式发布前的内部版本也?x)陆l见怺众,如此Q广大Java开发者便可以更加?qing)时的了解到Java发展的最新情c在语言层面上的扩展依然?x)比较}慎,比如像AOPq样的当下热门技术,依然不太可能?x)见诸其中。据Hamilton所aQ一个有可能被引入的语法Ҏ(gu)被UC“friends”import机制Q它?yu)由多个包l成的大型项目变得易于管理?BR>十大人物 James Gosling : Java之父 ?陶文 作ؓ(f)Java之父QJames Gosling的名字可谓是耳熟能详。当Z评论一U编E语aӞdƢ捎带着把下蛋的母鸡一起带上。Java做ؓ(f)中国的编E语a学习(fn)者餐桌上有限的那么几样餐点中的流行款式,自然是让James Gosling风光不已。虽然James Gosling现在已经不是领导Java发展潮流的领军h物了Q做为Sun的开发者品组的CTOQ怎么来也是w居高位了,俗事~n吧,但是qƈ不妨其对于Java一如既往的爱护,表达着各式各样鲜明的观点,引发一场又一场的争论? James Gosling是很爱Java的——是啊,哪有当父母的不爱自己的孩子的呢。James Gosling也是很爱Sun的——是啊,哪有当领导的不爱自己的公司的呢。于是我们在批评.NET的安全性的队伍前头Q在褒扬Java性能的队伍前_(d)在抨击SWT开倒R的队伍前_(d)在给NetBeans大唱赞歌的队伍前_(d)我们都看CJames Gosling的n影。无论对错、偏见或者固执,臛_说明了Gosling的鲜明个性丝毫没有受到年龄的影响。也怹只有q种天才而偏执的人物才能创造出Javaq般伟大的语a来吧? Bill Joy : 软g业的p_? ?徐昊 Joy生于1954q_(d)1982q与Vinod Khosla, Scott McNealy和Andy Bechtolsheim一起创ZSun MicrosystemsQƈ从那时v担Q首席U学Ӟ直到2003q离开。他是一位o(h)人崇敬的软g天才Q他在Y件和g的历史上留下了无Co(h)ZԒ止的传奇? 在上个世U?0q代早期QDARPA与BBN达成协议Q准备将Vinton Cerf和Bob Kahn设计的TCP/IP协议d到Berkeley UNIX中。Bill Joy被委z来完成q项dQ然而他却拒l将BBN的TCP/IP协议栈添加到BSD中,因ؓ(f)在他的眼中BBN的TCP/IP实现q远不够好,于是他就写了一个高性能的TCP/IP协议栈。John Gage回忆道,“BBN和DARPA{v了巨额合同来实现TCP/IP协议Q然而他们的员工所~写的代码远没有一个研I生所做的好。于是他们邀请Bill Joy参加他们的一个会(x)议,q位研究生穿着一件T-Shirt出CQ他们询问他Q‘你是如何做到的呢?’Bill回答_(d)‘这是非常简单的一件事Q你M下协议然后就可以~码了’”。除了TCP/IP协议Q基于分늚虚拟内存pȝ最早也是由Bill Joyd到Berkeley UNIX内核当中的。同时他q是vi、csh、早期Pascal~译器的作者? 关于Bill Joy惊h的Y件才能流传最q的一个传奇是Q据说他在上研究生的时候,想看看自p不能写一个操作系l出来,于是在三天里写了一个非常简陋,但是可以使用的Unixpȝ, 传说是BSD的前w。虽然如此夸张的才情令h难以|信Q但是考虑C角是Bill JoyQ还是有一定的可信度的。Bill Joy士毕业之后Q决定到工业界发展,于是到了当时只有一间办公室的Sun, 他作Z要设计者参与了SPARC微处理器的设计,负责设计最为关键的一部分?sh)\。这样兼_Yg的天才实在是让h不得不佩服啊?995q_(d)Sun发布了蘪动世界的Java语言。当ӞBill Joy对Java也作Z不少的A(ch)献,首先是JINI——一U针对分布式服务的基q接技术。Q何可以内嵌JVM的电(sh)子设备都可以通过JINI怺q接QJXTA是基于Java的P2P协议Q允怺联网上的软gq行点对点交和协作? q个其貌不扬的瘦高个Q有着凌ؕ的亚麻色头发Q被《胦富》杂志誉为“网l时代的p_生”的技术狂人,在短短的二十q间Q创造了无数令h心动的Y件。在MIT的BBS上曾有一个帖子,说微软电(sh)话面试有一道题Q问“Who do you think is the best coder, and why?”虽然回复的帖子中大安声明列D的best coder排名不分先后Q然而大多数Z把Bill Joy列在W一位,或许可以从一个侧面验证Bill Joy在广大Programmer心目中的C吧? Joshua Bloch : Java 2 元勋 ?莫映 早在1996q_(d)适逢Java刚刚崭露头角Q年内好事连q。先?月䆾发布JDK 1.0Q然后是5月底在旧金山召开首届JavaOne大会(x)Q年末又是JDK 1.1紧跟其后。正是在Java技术如火如荹{大展拳脚的背景之下QJoshua Bloch来到了SunQ开始了他带领JavaC步入“迦南美地”的漫长历程? 很快Q他被从安全l调入核心^台组Q从事底层API设计。至此以后,每逢JDK的重大版本发布,总能在其中见到Joshua的“妙W”。JDK 1.1中的java.math?.4中的assertionsQ还有大家所熟识的Collections Framework皆是Joshua一手打造。其中的Collections Frameworkq获得了当年的Jolt大奖。到了J2SE 5.0研发阶段Qn为^台组构架师的Joshua接掌了Tiger大旗Q其核心C已然无h可以替代。作为Tiger的代a人和领\人,没有谁比Joshua更清楚Tiger。相信大家一定还记得Joshua当年仿效英国诗hWilliam Blake所做的咏Tiger诗八首,优雅的笔调,透出大师深厚底蕴的同Ӟ也道ZTiger的几大重要特性,q些Ҏ(gu)是自JDK 1.1引入Inner Class以来QJava最大的语法改进? Java风雨十年Q从JDK 1.1到J2SE 5.0QJoshua实在功不可没。难怪有人戏aQ假如将James Gosling比作Java之父Q那么Joshua是一手将Java “哺肜y成人的Java之母。Joshua对Java的A(ch)献还不止于JDKQ提起他的大作《Effective Java》(Addison Wesley, 2001Q,怿Java_丝们一定耳熟能详。该书荣?002q度Jolt大奖Q且备受James Gosling推崇。书?7条颇具实用h(hun)值的l验规则Q来自Joshua多年来在JDK开发工作中Q尤其是Collections Framework设计中的实践心得Q各个有理有据,剖析深入Q也其深厚功力。该书对JavaC的媄响,犹如C++C中的《Effective C++》。Joshua对JCP的A(ch)献也不小。他是JSR201和JSR175的领D,前者包含了Tiger四大语言Ҏ(gu),后者则为Java提供了元数据支持。此外,他还是JSR166的发起h之一Q该JSR由Doug Lea领导Q,q且是许多其他JSR的参与者。Joshua目前是JCP为数不多的几个执行委员会(x)成员之一? Joshua Blochlh的印象是谦逊^和,行事低调而不喜抛头露面,一个典型的技术h员和实干家。不q即便如此,也丝毫不?x)减׃对Java技术的卓越贡献和对JavaC的绝对媄响力。有Q如果他能更彰显一些,很有可能成为Java开发者中的领军h物,有如Don Box之于微YC? 2004q?月初Q就在Tiger发布在即之时Q就在Jusha Bloch刚刚荣获Sun“杰出工E师QDistinguished EngineerQ”的U号之时Q他H然dSun而去了正值发展态势q猛的Google。当他离开Sun的消息在TSS发布之后Q众多拥表达了怀念与不舍之情。一q过MQ我们还没有L(fng)Joshua的Q何近闻,g又是他行事低调的一贯作风所_(d)不知他在Google状况如何。希望Joshua依然能l“摩西未的事业”,以他的媄响力推动JavaCl箋前行。据Uͼ《Effective Java》的下一版会(x)加入Java 5.0的部分,让我们翘首以待吧? Bruce Eckel : 功勋卓著的机?x)主义分? ?孟岩 Bruce Eckel原本是一位普通的汇编E序员。不知道是什么因~际?x),他{行去写计机技术图书,却在此大U大紫。他成功的秘诀不外乎两点:(x)h的表达能力和捕捉Z(x)的能力。他最早的一本书?990q代初期的《C++ Inside & Out》,随后Q在1995q他写出了改变自己命q的《Thinking in C++》。如果说q本书充分表C他作ZU技术作家的一面,那么随后他写作《Thinking in Java》ƈ因此步入技术作家行列,则体C他作ZU的机?x)主义分子善于捕捉机会(x)的另一面。写作中擅长举浅昄接的例子来说明问题Q语a生动Q娓娓道来,特别适合于缺乏实늻验的初学者。因此《Thinking in Java》俨然成为天字第一L(fng)Java教科书,对Java的普?qing)与发展发挥着不可忽略的作用。不q公允地_(d)Bruce Eckel的书Ơ深刅R比如在“Thinking in…”系列中对设计模式的解说有失大师水准。这一斚w是因Z的定位非常清晎ͼ另一斚w也是因ؓ(f)Bruce太过分心赶潮,未能深入之故。TIJ之后Q他预言Python火Q就匆匆跑去写了半本《Thinking in Python》。后来Pythonq未如期而旺Q于是他也就把书E撂在那里不q问了,Z(x)M的一面暴露无遗。我们也可以善意的猜一下,他的下一个投机对象会(x)是什么呢QRubyQ?NETQMDAQMQ是什么我都不奇怪? Rickard Oberg :J2EE奇才 ?熊节 Oberg的作品很多,行的代码生成工具XDoclet和MVC框架WebWork都出自他的手W。这两个框架有一个共同的特点Q即它们的功能虽然简单,但设计都非常优雅灉|Q能够很方便地扩展新功能甚至UL到新环境下用。优雅的设计源自Oberg的过人才华,单的功能则折出他玩世不恭的人生态度。正是这两种特质的融合,才造就了这个不世出的奇才? 1999q_(d)JDK 1.3发布Q其中带来了一个重要的新特性:(x)动态代理(Dynamic ProxyQ。当所有h都还在对q项新技术的用途感到迷惑时QOberg发现用它便可以轻松攻克EJB容器实现中的一些难兟뀂这一发现的物就是一本《Mastering RMI》,以及(qing)大名鼎鼎的JBoss应用服务器。但Oberg很快又让世h见识了他的玩世不恭。由于和ȝ理Marc Fleury在经营理念上不合QOberg抱怨“法国的天空总让我感到压抑”,甩手d了自׃手打造的JBoss。此后的几年里,他和老友Hani Suleiman不断地对JBoss的“专业开源”模式和Marc Fleury的商人味道冷嘲热讽,让众Zؓ(f)他的孩子气扼腕叹息? 2002q?0月,微Y推出PetstoreCZ应用?NET版本Qƈ宣称其性能比Java Petstore高出数倍。正是Oberg深入分析q个CZ应用的源代码Q在W一旉指出它大量运用了SQL Server专有的特性,性能Ҏ(gu)Ҏ(gu)不具参考h(hun)倹{后来Oberg又先后关注了AOP和IoC容器Q两者都成ؓ(f)了J2EE架构的新宠? Doug Lea : 世界上对Java影响力最大的个h ?KIT 如果IT的历Ԍ是以Zؓ(f)M串接h的话Q那么肯定少不了Doug Lea。这个E梁挂着眼镜Q留着L(fng)威廉二世的胡子,怸永远挂着谦逊腼腆笑容,服务于纽U州立大学Oswego分校计算器科学系的老大爗? 说他是这个世界上对Java影响力最大的个hQ一点也不ؓ(f)q。因ZơJava历史上的大变革,他都间接或直接的扮演了D重的脚色。一ơ是由JDK 1.1到JDK 1.2QJDK1.2很重要的一Ҏ(gu)创D是CollectionsQ其Collection的概念可以说承袭自Doug Lea?995q发布的W一个被q泛应用的collectionsQ一ơ是2004q所推出的Tiger。Tigerq纳?5JSRs(Java Specification Requests)的语法及(qing)标准Q其中一便是JSR-166。JSR-166是来自于Doug~写的util.concurrent包? 值得一提的? Doug Lea也是JCP (Java区目)中的一员? Doug是一个无U的人,他深知分享知识和分nҎ(gu)是不一L(fng)Q苹果会(x)分少Q而自q知识q不?x)因为给了别人就减少了,知识的分享更能激荡出不一L(fng)火花。《Effective JAVA》这本Javal典之作的作者Joshua Blosh便在书中特别感谢Doug是此书中许多构想的共鸣板Q感谢Doug大方分n丰富而又宝贵的知识。这位ƈ发编E的大师Uh物的下一步,会(x)带给Java怎样的冲击,不禁令h屏息以待? Scott McNealy :SUN十年来的掌舵? ?KIT McNealyQSun的CEO、总裁D事长。他曄狂傲的说:“摧毁微软是我们每个人的d。”这位英勇的谷英雄Q似乎带头v义,试图l织一个反微Y늺联盟Q以Ҏ(gu)微Yq股庞大的托拉斯恶势力。他时常口出惊h之语Q在公开场合大肆的批评微软,q曾l说微Y?NET?NOT? Scott McNealy先后毕业于哈?jng)大学?qing)史丹?jng)大学,分别持有l济学学士学位及(qing)企管士?982qMBA毕业的他和三个同学共同合伙创ZSunQƈ?984q成为Sun的执行官。“要么吞了别人,不然p别h吞了”是Scott McNealy的名a录之一。他擅长以信念带动员工,鼓舞士气。极富自信的他,对于认定的事QL坚持自己的想法,因此有h形容他是一个刚愎自用的决策者? wؓ(f)Sunq艘船的掌舵者,Scott McNealy能够看多q,Sunp走多q。Scott McNealy认ؓ(f)来软g界是一个只有服务,没有产品的世代。他希望打造出Sun不是一个纯靠硬件赚q公司。从Open Source到Open SolarisQSun希望可以成ؓ(f)提供整合性解x案的服务厂商。Solaris 10 + UltraSPARC是否可以像Scott McNealy希望的是下一匹世U黑马呢QSun是否能以股h(hun)来证明华?dng)街分析师?qing)普罗大众的诽短流长?Scott McNealy是否能带领着Sun成ؓ(f)l微软之后的下一个巨人,一场场IT界的争霸战值得我们拭目以待? Rod Johnson : 用一本书改变了Java世界的h ? 刘铁? Rod在?zhn)大学不仅获得了计算机学位,同时q获得了音乐学位。更令h吃惊的是在回到Y件开发领域之前,他还获得了音乐学的博士学位。有着相当丰富的C/C++技术背景的Rod早在1996q就开始了对Java服务器端技术的研究。他是一个在保险、电(sh)子商务和金融行业有着丰富l验的技术顾问,同时也是JSR-154QServlet 2.4Q和JDO 2.0的规范专家、JCP的积极成员? 真正引v了h们的注意的,是在2002qRod JohnsonҎ(gu)多年l验撰写的《Expert One-on-One J2EE Design and Development》。其中对正统J2EE架构的臃ѝ低效的质疑Q引发了ZҎ(gu)lJ2EE的反思。这本书也体CRod JohnsonҎ(gu)术的态度Q技术的选择应该Z实证或是自n的经验,而不是Q何Ş式的偶像崇拜或者门户之见。正是这本书真正地改变了Java世界。基于这本书的代码,Rod Johnson创徏了轻量的容器Spring。Spring的出玎ͼ使得正统J2EE架构一l天下的局面被打破。基于Struts+Hibernate+Spring的J2EE架构也逐渐得到Z的认可,甚至在大型的目架构中也逐渐开始应用? Rod Johnson的新作《Expert One-on-one J2EE Development without JEB》则更让人吃惊,单单“Without EJB”一词就?x)让大多数J2EE架构师大跌眼镜了。不qRod Johnson可能仅仅是想通过“Without EJB”一词表明应该放开门户之见。这也是Rod Johnson一贯的作风Q。也许正是这U思想Q促使得Rod Johnson创徏了SpringQ真正改变了Java世界? Alan Kay :Java的精先? ?徐昊 Sun的官方Java教材中有一句话Q说Java是“C++的语法与Smalltalk语义的结合”。而Smalltalk的创造者就是Alan Kay? Alan Kay?970q加入Xerox公司的Palo Alto研究中心。早?0q代初期QAlan Kay{h开发了世界上第二个面向对象语言SmalltalkQ因此,Alan Kay被誉为Smalltalk之父?003q_(d)Alan Key因ؓ(f)在面向对象程序设计上的杰A(ch)献,获得了有计算机界的诺贝尔奖之U的ACM Turing Award? Alan Kay成名于Smapltalk和OOPQ而Java虽然在语a上类gCQ但是在语义上非常接qSmalltalkQ很多Java中的设计思想在Alan Kay的文献中扑ֈҎ(gu)Q也有些人将Alan Kayؓ(f)Java思想的先驱。不q遗憄是似乎Alan Kay老先生对Javaq不买̎Q反倒攻击说Java是存在致命缺L(fng)~程语言QJava的成功不是由于Java本n的内在h(hun)|而是其商业化的成功。Alan Kayƣ赏的是LispQ他认ؓ(f)Lisp是Y件的麦克斯韦方程Q其中的许多x是Y件工E和计算机科学的一部分。看来拥有Alan Kayq样一位重量的Java先驱仍是我们Java一厢情愿的单恋吧? Kent Beck : 领导的敏h 文:(x)刘铁? Beck全家g都I漫着技术的味道。生长在谷, 有着一个对无线늗qL(fng)父Q以?qing)一个电(sh)器工E师父亲。从就引导Kent Beck成ؓ(f)了业余无U电(sh)爱好者? 在俄勒冈州大学读本科期间QKent Beck开始研Iv模式。然而在他最l拿到计机学位之前Q他却是在计机和音乐中交替学习(fn)。似乎Java大师都能够有q样的能耐,另一Java大牛Rod Johnson同样也拥有音乐学的博士学位? Kent Beck一直倡导软g开发的模式定义。早?993q_(d)他就和Grady BoochQUML之父Q发起了一个团队进行这个方面的研究。虽然著有了《Smalltalk Best Practice Patterns》一书,但这可能q不是Kent Beck最大的贡献。他?996q在DaimlerChrysler启动的关于Y件开发的目Q才真正地媄响后来的软g开发。这ơ的C是XPQ极限编E)的方法学? 和Y件开发大师Martin Fowler合著的《Planning Extreme Programming》可谓是关于XP的奠Z作。从此,一pd的作品如《Test Driven Development: By Example》,《Extreme Programming Explained: Embrace Change》让更多的h领略C极限~程的精髓,也逐步D了极限编E的行? Kent Beck的A(ch)献远不仅如此。对于众多的JavaE序员来_(d)他和Erich Gamma共同打造的JUnitQ意义更加重大。也许正式这个简单而又强大的工P让众多的E序员更加认可和信赖极限~程Q从而引起了Java敏捷开发的狂潮吧?BR>十大产品 SUN JDK :Java的基? ?莫映 众所周知Q流传于市的JDK不单Sun一Ӟ比如IBM的JDK、BEA的JRocket、GNU的GCJQ以?qing)如Kaffeq样的开源实玎ͼ不一而。但是,Ҏ(gu)苗红的Sun官方JDK一直以来都是备受瞩目的LQ它对JavaC的媄响也是D重? 1996q?月,Sun在成立了JavaSoft部门之后Q推ZJDK 1.0Q这是Sun JDKQJava Development KitQ的首个正式版本;当年12月,JDK1.1出炉。该版除了对前序版本部分Ҏ(gu)做了改q以外,重写了AWTQ采用了新的事g模型?998q?2月,JDK 1.2正式发布。此时的cd日臻完善QAPI已从当初?00个类发展C1600个类。在1.2版本中引入了?00%UJava代码写就的SwingQ同ӞSunJava更名为Java 2? 1999q_(d)Java 技术Ş成了J2SE、J2EE和J2ME三大格局。Sun向世人公布了Java HotSpot性能引擎技术的研究成果。HotSpot旨在q一步改善JVM性能Q提高Java ByteCode的生品质,加快Java应用E序的执行速度。J2SE 1.3发布?000q_(d)2002q?月间QJ2SE 1.4问世Q这是有JCP参与以来首个J2SE的发行版本?004q??0日,代号为“Tiger”的J2SE 5.0l于出笼了,q次发布被誉为Javaq_历来发布中特性变动最大的一ơ。包括泛型在内的若干重大语法改进、元数据支持Q包括多U程、JDBC在内的多类库改q,都o(h)q大JavaE序员激动不巌Ӏ自此,Sun的官方JDKQJ2SE Development KitQ已l步入了一个新的高度? Eclipse :以架构赢天下 ?恉 IBM是在2001q以4000万美元种子基金成立Eclipse联盟Qƈ且捐赠了不少E序代码。如今,该组l有91个会(x)员,包含许多全球最大的软g商。根据Evans Data公司的资料,Eclipse是目前最受欢q的Java开发工兗? Java厂商若要共同Ҏ(gu)微YQ彼此之间就要有共同的开发工h行? 在Eclipseq_上,E序员可使用好几U不同的语言。在前端斚wQ用户可整合多种工具来撰写Plug-inE序或Unit Test。Eclipse最大的特色在于其完全开攄体系l构Q这代表M人都可下载ƈ修改E序代码Q给Eclipse写插Ӟ让它做Q何你能想到的事情Q即所谓“Design for everything but nothing in particular”? Eclipse基金?x)的架构比较特别Q反映出企业C对于开攑֎始码计划也越来越U极d。Eclipse不像一般开放源码Y件容怸人的捐献E序Q该基金?x)是由厂商主对{不论是董事?x)成员或者是E序赞助者几乎都来自于独立Y件开发商(ISVs)的员工? Eclipse首席执行官Mike Milinkovich_(d)q种厂商?x)员制是?gu)设计的;他说Eclispe软g开发快速就是因Z(x)员制的关p,同时又加上开放源码开发模式的临门一脚。这与一般透过标准l织的做法全然不同?q其实正好验证了一句老话:“开攑֍标准”? JUnit/Ant : 让Java自动化的l代双骄 ?刘铁? 在JavaE序员必备的工具中,?同拥有且交口U赞的恐怕就非JUnit、Ant莫属了。一个是单元试的神兵利器,一个是~译部v的不二之选,它们让Java的开发更单? JUnit由XP和TDD的创始h、Y件大师Kent Back以及(qing)Eclipse架构师之一、设计模式之父Erich Gamma共同打造。名家的手笔和理念得JUnit单而强大,它将JavaE序员代入了试驱动开发的时代。JUnitqQ?001?002q“Java World~辑选择奖”以?003q“Java World最x试工具”和2003q“Java Pro最佳Java试工具”等众多奖项Q深受JavaE序员好评? Ant是开源项目的典范Q它让IDE的功能更加强大,从Sun的NetBeans到JBuilder,L的IDE中处处都有它的n影。“Another Neat Tool”原是它的本名,但这已经渐渐不ؓ(f)人知。它d地让部v自动化,而程序员需要做的仅仅是几条单的配置命o(h)。和JUnit一PAnt也荣获了众多的殊?2003qJavaWorld“最有用的JavaC开发的技术编辑选择奖? 2003qJava Pro“最有h(hun)值的Java部v技术读者选择奖”,2003q“JDJ~辑选择奖”,也让Ant受到的多方的认可? Ant对JUnit的全面集?则得一切都变得更加完美。只需单地配置Q从自动试到报告生成,从编译到打包部v均可自动完成。强大的功能Q简单的配置Q让JavaE序员高枕无忧。实可谓让Java自动化的l代双骄? Websphere : zd市场的大? ?jini 1999q_(d) IBM与Novell{订合作协议Q成功地提供?sh)子商务的解x案给予原先用NetWare的用戗同q更是推ZWebSphere Application Server 3.0Qƈ且推出WebSphere Studio与VisualAge for Java让工E师可以快速开发相关的E序?001q_(d)IBM更是宣布?yu)应用服务器、开发工h合在一P与DB2?Tivoli?qing)Lotusl合成ؓ(f)一套共通解x案,如今、IBM更是q入了Rational Rose ( UML tools )让开发流E更是完整化? Sun在Web Services的策略方面远q落后于微Y与IBM, 当他们手拉手在研订Web Services规范, 加上IBM买硬仉Y件或是买WebSphere送DB2的策略让企业大{们纷U{向IBM的阵? Sun才惊觉大势已厅RWebSphere复杂的安装,深奥的设定,难以理解的出错讯息不断地挑战开发者的耐心与毅力? IBM如今已经不是WebSphere定义为单一产品Q它已经是一个^台的代名词。它里面的品目前包含了应用服务器、商业整合、电(sh)子商务?数据讯息理、网l串、Y件开发流E、系l管理、无U语音等{。非常多样化,也让企业界愿意相信WebSphere可以带给他们一套完整的解决Ҏ(gu)。同? IBM也在推广SOA的概? 单来? 利用Web Service的耦合性与工作程的整? Z业内部打造以服务为导向的架构? IBM捐献出Eclipse带给Java开发h员对IDE的重新掌握。未来是否会(x)捐献出WebSphere的哪一个部分成为OpenSources, 或许, 又是改写Java世界的时M? WebLogic : 技术h的最? ?jini 1995q? BEA成立? 初期以Tuxedo数据转换的品ؓ(f)基础, 成长之迅速是历年来最强的企业?1998q? BEA推出以Java为基的网l解x? 提供了完整的中间层架? 更同时支持EJB 1.0 ?qing)微软的COMlg, 方便的管理接口掳掠了工程师的心?在IBM和Oracle未准备好迎ȝ时? BEA已经席卷企业应用q_的市场?WebLogic无论在市场领先度与技术领导性与{略q观性都优于当年的所有应用服务器厂商? 如今WebLogic不仅仅是应用q_服务器的名称, 而是BEA对于整个企业解决Ҏ(gu)的ȝ, 无论是WebLogic Portal或是WebLogic Integration配合着Workshop开发环? 来自微Y的UI开发团队让Workshop几乎辑ֈ所见即所得?接着, 在下一个版本之? BEA的BeeHive开放源代码计划释Z间层控g的开发模? q且与Eclipse合作共同打造新一代的开发环境?如此有力的技术支? 更是让顾客愿意用WebLogicq_的最大原因? 代号为“Diablo”的 WebLogic Server 9.0恶已l出C, 目前虽然仅仅是BETA? 以Portlet 方式打造的理接口与完整且妙的WebServices支持, 实在很难扑ֈ可以挑剔的地? 虽然d被I(xin)BM的技术性推销越了市场占有率, 不过接下来SOA的^台竞争现在才开? BEA的LOGO也加入“Think liquid”ƈ且推出新的AquaLogicq_做ؓ(f)数据服务q_, 可见, Java的应用服务器的战? q会(x)l箋q行着? JBuilder : Java开发工L(fng)王? ?刘铁? Java的开发工具中,最出名的莫q于Borland公司的JBuilder了。对于一些没有弄清楚开发工具与JDK的区别的Java入门者来_(d)JBuilder如同Visual C++之于C++Q以为JBuilder是Java的全部。比hl在服务器上销售的JDeveloperQJBuilder应该是唯一的仅靠自w的实力而占领了大部分市场的Java商用开发工具了。而JBuilder作ؓ(f)Java 开发工L(fng)王者,其夺冠之路ƈ非一帆风。直到Java的天才Blake Stone成ؓ(f)JBuilder的Architect之后QJBuilder 2.0以及(qing)3.0才逐渐推出?000q??4日,JBuilder 3.5的推出别h义,它成Z业界W一个用UJava打造的开发工P也风靡了整个Java开发工具市场。在同年11月䆾推出的JBuilder 4.0乘胜q击Q冲破了50%的市场占有率Q成Z真正Java开发工L(fng)王者? Borland以每半年左右推出一个新版本的速度Q让众多的对手倒在了沙场。而Microsoft因ؓ(f)与Sun的官司,也得一个强大的Ҏ(gu)退Z战争?001q_(d)加入了对企业协作支持的JBuilder 5以及(qing)强化了团队开发工L(fng)JBuilder 6打|了最后一个对手Visual Age For Java?002qJBuilder 7推出之后Q再也没有其他厂商与JBuilder竞争? 孤独的王者ƈ没有停下脚步Q在2003q到2005q间QJBuilder也仍然gl了其半q一个版本的速度Q推Z8??0?005四个版本。强大的功能以及(qing)持箋的改q,也让JavaE序员多了一分对能够在开发工具市Z与Microsoft血拼十数年的Borland的敬仰? Oracle : Java人永q的情结 ?熊节 在林林Lȝ数据库之中,有一U尤其o(h)人又爱又恨、印象深刻,那就是关pd数据库市场的“大佬”——Oracle? 从公司的角度QOracle和Sun有着诸多怼之处Q例如:(x)两家公司都拥有一位个性鲜明的CEO。早在Java诞生之初?995q_(d)Oracleq随NetScape从而第二个获得了Java许可证。从那以后,Oracle对Java的鼎力支持是Java能够在企业应用领域大h功的重要原因之一? 所有J2EEE序员都知道QOracle的JDBC驱动虽然与Oracle数据库配合良好,但在不少地方使用了专有特性。其中最名的是“CLOB/BLOB问题”,诸如此类的问题给开发者带来了很多ȝ。ؓ(f)了同时兼不同的数据库,他们不得不经常把自己的一个DAOQ数据访问对象)写成两䆾版本Q针对Oracle的版本和针对其他数据库的版本。有不少Zؓ(f)了开发便利,舍弃了数据库之间的可UL性,自q产品l定在Oracle的专有特性上? Oracle提供的Java开发工具也与此大同异。不是数据库内|的Java支持q是JDeveloper IDEQ?Oracle的Java工具都和Oracle数据库有着千丝万缕的联pR看hQ只要Oracleq是数据库市Z的“头牌”,了解、学?fn)Oracle的专有特性,周旋于OracleҎ(gu)的问题和解决Ҏ(gu)之中Q就仍旧是J2EEE序员在数据库基和SQL之外的必修功课。对Oracle的爱与恨Q也仍旧是Java人心头一个难解的情结? Struts、Hibernate : 让官Ҏ(gu)架相形失色的产品 ?刘铁? 好的框架能够让项目的开发和l护更加便捷和顺利。相比Sun官方标准的迟钝以?qing)固执,开源框架也更得到JavaE序员的共鸣。Struts以及(qing)Hibernate是q样一cM品,它们单、优雅,更让官方的品相形失艌Ӏ? 谈vStrutsQ不可避免地p提及(qing)MVCQModel-View-ControllerQ的理念。而准地ԌMVC的提出却最早源于JSP的标准。在1998q?0?PSun发布的JSP?.92的规范中提出的Model 2是MVC的原型。在1999q?2月Java World的大?x)中QGavind Seshadri的文章最早阐qCModel 2是一UMVC的架构,同时也提?qing)了MVC架构是一U最好的开发方法?000q?月,由Craig McClanahan发布的Struts成ؓ(f)了最早支持MVC的框架。Struts在设计上虽然存在一些诟病,但是不可否认的是Q它使得Java Web应用的开发更加简z和清晰Q也让更多的E序员爱上了JavaQƈ开始遗忘官方的JSP。时至今日,比v如WebWork、Tapestry以及(qing)Sun官方的JSFQStruts或多或少存在些不I但是众多成功目的实施,仍然使其牢牢占据的Java Web应用框架的首位? Hibernate则在某种E度上改变了ZҎ(gu)建J2EE的思\。相比其EJB的Entity Bean的映技术,Hibernate则显得更加简z和强大。五分钟p把Hibernate跑v来,让更多的JavaE序员n受到了开发的乐趣。第15届Jolt大奖中,最优秀数据库、框架以?qing)组件的奖项中,Hibernate当仁不让获得头筹Q不仅如此, Hibernate甚至q媄响了官方的标准。在众多JavaE序员翘首以待的EJB 3.0的规范中QHibernate得到了支持? Java开源的J荣不仅让众多Java的开发者n受到了更多的便利Q甚臛_响了官方的标准。恐怕这也是作ؓ(f)Java人独有的乐趣之一吧? PetStore : J2EE人的必修? ?陶文 很少有一个例子项目如PetStoreq?般广Zh知,而这很大E度上要归功于Sun很“英明”地把PetStore做成一个只展示架构而在性能调优上留下了大大余地的例子。围l着性能话题Q生了颇ؓ(f)有趣的厂商之间以?qing)^C间的Pet Wars。除去这些关于性能的流a蜚语乃至中伤QPetStore在展CJ2EE1.3q_的架构、演CZ么叫分层斚wq是有着很大的功劳的。而且PetStore在架构方面的丰富性得其成ؓ(f)J2EE的那些轻量兄弟们展示自n的一个必选科目? 不谈那些围绕PetStore的口_(d)那些C的盗版QPetStorel开发新手带来的最重大的媄响,我想应该是架构的观念而不是性能Q也不是业务。做ZU技术的DemoQ这无可非议。但是如果你是一个新手,跟着PetStore亦步亦趋地学?fn)J2EE开发,隑օ?x)陷入过度设计、华而不实之cȝ困境。围l着.NET的PetStore的克隆PetShop展开的架构与性能的大讨论Q是不是也在促我们学习(fn)新技术时应该以解决问题ؓ(f)导向呢?特别是当你想把一个如PetStoreq般的Sample Project的技术照搬到你的现实世界的Real Project来时? 十大l织 SUN : 因ؓ(f)Java而永被荣? ?孟岩 Sun?980q代初期由斯坦福大学三位q轻学生创立的公司。与一般h的印象不同,“SUN”的本意q不是企囑։H天上那颗温暖的恒星的威名,而是“斯坦福大学|络”的意思。Sun在“前Java”时代就因ؓ(f)SPARC芯片、Solaris操作pȝ和“网l就是计机”的口号而ؓ(f)人所知?990q?2月,Sun启动了一个看上去没什么意思的嵌入式Y仉目。然而,ZC++的开发很快遇Cȝ。一个创新型技术公司的特色立刻昄出来Q一天才不是去深入C++Q而是另辟y径Q发明了Java。这个传奇故事已l尽人皆知,但是其中所包含的精却始终令h望空凝思? Java的发明,使得Sun真正有机?x)在软g的历史天IZ攑ְ出太阳的光芒。Sun发明了JavaQƈ且在长达十年的时间里始终走在Java大潮的最前端。Sun是Java的老家Q是Java慈爱的母Ԍq一切Q何h都改变不了。虽然Sung没能够从Java中获得应有的金钱回报Q但q丝毫没有挫伤Sun对于Java的母爱,q有对于Java大潮的舍我其谁的领导气概? 所有h都迷恋富有的感觉Q但是也q早?x)意识到׃是世上最宝贵的东ѝ这个世界ƈ不缺会(x)赚钱的公司,但是能够靠着创新型技术推动整个世界进步的公司却是凤毛麟角。Sun应该感到骄傲Q他们将因ؓ(f)Java而在历史的天I里发射出太阳的光芒? IBM : Javal济的最大受益h ?恉 Sun公司是Java的发明hQ但IBM却是Java最大的受益者。是IBM抢占了利润丰厚的应用服务器市场的头把交椅Q是IBM在Java技术上投入最多的金钱Q拥有最大的影响力和最好的开发者社区。可以毫不夸张地_(d)Java使IBM的Y件体pd到复_(d)在某U意义上Q甚臛_以说Q是Java创造了q种复兴。Java之后又来了LinuxQ这U徏造在不属于自qq_上以获得成功的理忉|是变得非常有影响力。正是这U理念铸׃今天IBM “按需计算Q服务ؓ(f)王”的王者风范? 2004q三月,IBM以Java的解放者的姿态借机向Sun发难。IBM公司负责新兴技术的副总裁史密斯在一公开信中表示QIBM愿意与Sun合作成立一个项目,意在通过开放源代码开发模式管理Java的开发工作? 墙内开花,墙外香。面对IBM的成功,到底是谁妒嫉呢?或许ȝ序的C中逛逛聊聊,明眼人是不难发现事实真相的。也许Sun应该好好向IBM学习(fn)l营之道。尽利润额不如g?qing)服务部门,但IBM软g部门的利润率是最高的——高?5%的利润率以令h惊叹。在最q的一个季度里QIBM软g部的利润率上升了8%Q其中WebSphere产品l的利润率上升了14%? 正是IBM在开源和Java上的全n心地投入又秉承开放性的原则Q今日的Java才能以日q千里的速度许多竞争对手远q抛在后面。Java 10q_(d)IBM功不可没? BEA : 用AppServer影响Java阵营 ?霍泰E? 十年前诞生的Javaq不是一开?那么引人注目的Q虽然用Applet也曾Z联网l带来一抹亮Ԍ但毕竟只是Toy。在企业U应用市ZQJava一直没有什么vԌ虽然Java的支持者一直在鼓吹它有着大型企业U应用的强?zhn)功能。过高的期望与低能的产品Q一旉颇让人怀疑Java的\是否已经走到了尽_(d)可以说是WebLogic Server的出现逐渐打消了h们的虑QBEA公司慧眼独具?001q收购的q个产品h们的目光吸引到电(sh)信、金融、政府等Java企业U应用方面,W(xu)ebLogic Server以其优良的性能让h们看到Java应用qK的未来。虽焉后在Java应用服务器方面出C像IBM公司的WebSpere、开源Y件JBoss{Java应用服务器,但WebLogic Server几乎占领世界?00强所有企业的应用服务器市场地位依然无法撼动? Java现在已经不单U是一个语aQ从另一斚w它也代表着开放与创新。很多以Java产品为基的公司或者从事Java开发的E序员骨子里都有着开放与创新的烙华ͼBEA公司的发展深深地印证了这一炏V与合作伙伴的密切合作向JavaC贡献产品基础源代码、加入权威开源组l参与Java标准的制定等证实着BEA的开放,而其产品从WebLogic Server一U拓展到WebLogic Platform、WebLogic Portal、WebLogic Workshop{其它领域又证实着它的创新能力? Oracle : 早v的鸟儿有虫吃 ?孟岩 Oracle的老板拉里?艑ֈ是有名的世魔王和p公子Q所以尽他也是软g产业成功人士的代表,却绝不是E序员们心目中的英雄Q程序员们毕竟不是央视《对话》节目里众演员Q没必要Z节目需要而对权贵财阀们做Z副贱骨头状。但是,M人都不能不钦佩Oracle在技术上的前L和坚决性。Oracle?996q获得Java许可证的Q紧接着大胆地Java作ؓ(f)战略性的发展方向而予以全面支持。要知道当时Java的前景ƈ不是十分定的,而Oracle的坚x入,使得它在后来的Java世界中抢得一席之地?998q?月发布的Oracle 8i为数据库用户提供了全方位的Java支持。Oracle 8i成ؓ(f)W一个完全整合了本地Javaq行时环境的数据库,开发者用Java可以编写Oracle的存储过E,q意味着可以仅在Oracle数据库中完成几乎全部的应用开发。J2EE兴v后,Oracle更是有心q入开发工具市场,因而购CJBuilder的源码,q在此基上开发出JDeveloper。如今Oracle除了数据库稳居第一之外Q在Java开发工具世界里也自成一z。这一切不能不归功于当初的眼光q大? Apache : 开源Y件的品牌保证 ?陶文 JavaE序员的日常工具׃Q我们可以发现Ant、Tomcat、Log4、Luceneq些鼎鼎大名的开源品。而它们的共同点在于,都是由Apache Software FoundationC中杰出的开发者开发的开源项目。Apacheq个名字在Java的世界中实在太出名了Q以至于“Apache”这六个字母成ؓ(f)开源项目品质保证的代名词。Apache是自由开源的一面旗帜,其Apache License更是成ؓ(f)商业友好的License的首选,只SourceForge上就?000多个以Apache License授权的项目,其流行程度可见一斑? 但是Q如我们所知,Apache最早闻名IT界是靠高性能的Web服务器,其历史甚臛_Java一样长。Apache对于Java的偏爱,以及(qing)其发展的速度也映出了JavaJ荣的一角。现在去它的主页上看看,满目望去全部都是Java的开源项目,早就不光是其C服务器的老本行了。Apache对Java最大的贡献是提供了这么一个精品的开放舞収ͼ让杰出的开发者和成熟的开源项目走CP共同lJava语言提供一个丰富的工具仓库。对于一U语a、一个^台来_(d)其库的丰富程度对于开发者来说的重要性再怎么也不。勿庸置疑,Aapache上会(x)出现来多的Java开源项目,而我们开发者也更多地得益于这令h目不暇接的繁荣? TheServerSide : 论坛的专业精? ?刘天? 成立?000q?月,TSS最初以一本书而广Zh知。它的创始hEd Roman同时也是J2EE名著《Mastering EJB》的作?Romanq营着一个J2EE咨询/培训公司TheMiddlewareCompanyQ简UTMCQ,TSS当时是TMC的下属部门;Z扩大企业的媄响,Roman在TSS|站上免费发布了那本书的?sh)子版。J2EEE序员要吃下q个香饵Q就得在论坛中注?注册的同Ӟ多半也会(x)看一D坛的内容Q一看之下,大部分h都被吸引住,成了C的忠实成员? TSSI竟有什么吸引h的秘诀Q首先,它有一支能力过人的q营团队Q除了Roman本h之外Q其中还有好几h都是J2EE领域的顶专ӞW二QTSS和TMC定期?x)推Z家研讨会(x)/视频访谈、技术白皮书、评报告,通读TSS提供的这些内容,基本上就可以把握技术的当前势。但q还不是全部。最可贵的还是TSS的社区风|(x)他们p技术,但不盛气凌hQ思想敏锐Q但不因此缺乏审慎和大局感。其中大多数人都已在自己的开发领域颇有徏?wi),在TSS上的zd既给他们提供了与同行q行深度交流的机?x)。一个新成员q入CQ就像参加了一个v点很高的专业׃部,q不是一个求解“怎样讄JAVA_HOME环境变量”之c问题的地方。事实上Q在J2EE技术发展的若干转折点上QTSS都vC关键的推动作用? 几经易主之后QJ2EE咨询培训公司TMC?004q关闭;TSS则被I(xin)T媒体集团TechTarget收购。我们期待着它更加繁荣的未来? JBoss : 职业开源Y件组l? ?刘天? J2EE的婴儿期Q“应用服务器”原本是“昂贵”的代名词。但?999qvQMarc Fleury和Rickard Oberg{h已l着手改变这U状c他们开发的开源EJB容器当时叫做“EJBoss”,在Sun公司的干预下Q注意,“EJB”是注册商标Q,JBoss获得了今天的名字。虽然从问世起就一直受到关注,但JBossW一个达C品化标准的版本可能是它的2.2版。它的易用让Z见难忘:(x)除了标准部v描述W,无需~写专用的xml配置文g。Oberg自豪地说Q“我们的架构q不是按照EJB规范指定的\U设计的Q因此也没有走大多数应用服务器走q的弯\。? Jboss 3.x版本保持了一贯的创新_Q在用户中间获得了更q泛的认可。但是,文档要收费下载、在邮g列表上提问常怼(x)遭到Fleury{h的斥责。无疑,JBoss的创始者也意识C自己的幼E:(x)开源Y件只能靠服务盈利Q卖文档赚钱有限、骂用户当然更损害企业Ş象? 虽然以Oberg为首的许多程序员退Z开发队伍(其中很多人成了JBoss的死敌)Q在开源Y仉域也面(f)JOnAS Geronimo{新老对手的竞争Q但JBossq是以不断推出的新版本站E了脚跟。在技术上Q它是策动J2EE演进的重要力量:(x)拟议中的EJB 3也要q随Jboss 4倡导的开发范式,以至于二者的代码h之间的差别几乎难以分辨;在商业上QJBoss与Sun公司a和修好,甚至q获得了数量可观的风险投资。JBoss已经像拥护者预期的那样Q成Z应用服务器领域的Linux? Borland : 深度介入Java ?左轻? 除了Sun以外Q也许没有一家公?像Borlandq样深层C入Java。Borland开发了最早的Java~译器之一QBorland的工E师参与了早期JDK的设计,Borland的JBCL(JavaBeans Component Library) 技术也成ؓ(f)后来Java Bean规范的基。但是Borland对Java世界最大的影响q是JBuilder? 1997q?1月,Borland JBuilder 1.0发布。虽然第一个版本相对于竞争Ҏ(gu)q没有表现出明显的优势,但是Borland凭借深厚的技术实力和正确的市场策略,不断地超了Ҏ(gu)。JBuilder 3.5成ؓ(f)业界W一?00%ZJava架构的开发工Pq且市场份额很快过?0%。在随后的版本中QJBuilder持箋改进对团队开发、J2EE架构、Mobile技术等斚w的支持,最l成ZJava开发工具市场,特别是大型企业Java开发市Z的霸丅RJBuilder的成功,很大一个原因来自于Borland坚持的^C立性,卛_不同厂商的解x案提供一视同仁的支持? 2005q初Q随着EclipseC的迅速崛PBorlandq入了Eclipse的董事会(x)Q成为战略开发?Strategy Developer) Qƈ宣布?yu)推动Borland的其它品与Eclipse的集成。在随后发布的一份文件中QBorland宣称JBuilder的未来版本将攑ּ原有的PrimeTime架构Q而基于Eclipse架构。这个代号ؓ(f)“Peloton”的版本预计?006q下半年发布? Borland对Java的另外两个主要A(ch)献来自Together和BES(Borland Enterprise Server)。Together是著名的建模工具Q能够与包括JBuilder在内的许多开发工兯行集成,全球市场份额占有率排名第二。BES AppServer是一UJ2EE服务器,在全球市Z额占有率上次于WebLogic和W(xu)ebSphereQ排名第三? JCP : Java世界的联合国 ?黄v? 当联合国正在为安理会(x)攚w问题 吵得如火如荼ӞJava世界的“联合国安理?x)”已l成功地q作了七个年头。JCPQJava Community ProcessQ在1998q由Sun发v成立Q目标是通过一个开放、合作和鼓励参与的非盈利l织来发展和推进Java和相关的技术。正是由于JCP计划的推出可以让所有对Java感兴的软硬件厂商,个h和组l都能参与到技术规范的制定和发展过E中Q协调各方的兴趣和利益、集思广益,才可以让Java在短短的几年内异军突P成ؓ(f)可以和微软开发^台抗衡的一个主开发语a。JCP计划既然是一个组l,自然也有一定的架构。JCPl织架构主要包括PMO(Program Management Office)、JCP成员、EC、EG。事实上QJCP的架构就好像一个Java世界的联合国。虽然也有不h批评JCP成ؓ(f)各派利益的角力场Q因而效率低下;但是Q它毕竟为Java的顺利发展很好地掌握了方向? 微Y与Java : 不得不说的故? ?孟岩 微Y跟Java不对付,地球人都?道。跟Sun和解了又怎么P .NET跟Java是竞争Ҏ(gu)Q没什么说的。但是有点IT掌故的h都知道,微Yq一开始就跟Javaq不厅R当q比?盖茨盛赞Java是“长期以来最好的E序设计语言”,而且很早pCJava许可证。但是微软作为村里的老大Q看着人家的儿子茁壮呈长,不由得生了私心杂念,搞v了小动作Q在Visual J++中加入了一些破坏纯z性的东西。单独来看,Visual J++是COM时代微Y最的开发工P用WFC写Windows应用E序和COMlg实在是一Un受。但是放在Java大家庭里Q这个家伙就昑־多少有点不怀好意。一场官怸来,微Y被逐出Java大家庭,Visual J++无疾而终。以后的事情h皆知Q?NET出笼Q利齿直指JavaQ几q撕咬下来,没占着便宜也没吃大亏,如今也算是南北朝对峙Q二分天下有其一。设惛_果当时微软能够摒弃帝国主义心态,正确对待JavaQ与其他Z起共建美好的Java“共产主义社?x)”,那么今天我们的Y件开发世界应该会(x)好得多。可惜黄_׃梦,l究是蚂蚁的喜事?004q_(d)微Y与Sun实现了和解,但愿到Java 20周年的时候,我们能更正面地描q微软对Java发挥的作用?/SPAN> ]]> 怎样成ؓ(f)优秀的Y件模型设计? http://www.tkk7.com/nighthawk/articles/10141.htmlnighthawk nighthawk Mon, 15 Aug 2005 05:51:00 GMT http://www.tkk7.com/nighthawk/articles/10141.html http://www.tkk7.com/nighthawk/comments/10141.html http://www.tkk7.com/nighthawk/articles/10141.html#Feedback 0 http://www.tkk7.com/nighthawk/comments/commentRss/10141.html http://www.tkk7.com/nighthawk/services/trackbacks/10141.html 下列原则应用到你的软g工程中,你会(x)获得立杆见媄的成果?nbsp; 1. 比技术重?nbsp; 你开发Y件是Z供别Z用,没有Z用的软g只是没有意义的数据的集合而已。许多在软g斚w很有成就的行家在他们事业的初期却表现q_^Q因Z们那时侯主要精力都集中在技术上。显Ӟ构gQcomponentsQ,EJBQEnterprise Java BeansQ和代理QagentQ是很有的东西。但是对于用h_(d)如果你设计的软g很难使用或者不能满他们的需求,后台用再好的技术也于事无补。多q旉到Y仉求和设计一个用户能很Ҏ(gu)理解的界面上?nbsp; 2. 理解你要实现的东?nbsp; 好的软g设计人员把大多数旉p在徏立系l模型上Q偶?dng)写一些源代码Q但那只不过是ؓ(f)了验证设计过E中所遇到的问题。这他们的设计方案更加可行?nbsp; 3. 谦虚是必ȝ品格 你不可能知道一切,你甚臌很努力才能获得够用的知识。Y件开发是一复杂而艰巨的工作Q因Y件开发所用到的工具和技术是在不断更新的。而且Q一个h也不可能了解软g开发的所有过E。在日常生活中你每天接触到的新鲜事物可能不会(x)太多。但是对于从事Y件开发的人来_(d)每天可以学习(fn)很多C西(如果愿意的话Q?nbsp; 4. 需求就是需?nbsp; 如果你没有Q何需求,你就不要动手开发Q何Y件。成功的软g取决于时_(d)在用戯求的旉内完成)、预和是否满用户的需求。如果你不能切知道用户需要的是什么,或者Y件的需求定义,那么你的工程注定?x)失败?nbsp; 5. 需求其实很改变,改变的是你对需求的理解 Object ToolSmiths公司Qwww.objecttoolsmiths.comQ的Doug Smith常喜Ƣ说Q“分析是一门科学,设计是一门艺术”。他的意思是说在众多的“正”分析模型中只存在一个最“正”分析模型可以完全满x个具体问题的需要(我理解的意思是需求分析需要一丝不苟、精的完成,而设计的时候反而可以发挥创造力和想象力 - 译者注Q?nbsp; 如果需求经常改动,很可能是你没有作好需求分析,q不是需求真的改变了?nbsp; 你可以抱怨用户不能告诉你他们惛_C么,但是不要忘记Q收集需求信息是你工作?nbsp; 你可以说是新来的开发h员把事情搞得一团糟Q但是,你应该确定在工程的第一天就告诉他们应该做什么和怎样d?nbsp; 如果你觉得公怸让你与用户充分接触,那只能说明公司的理层ƈ不是真正支持你的目?nbsp; 你可以抱怨公司有兌Y件工E的理制度不合理,但你必须了解大多同行公司是怎么做的?nbsp; 你可以借口说你们的竞争Ҏ(gu)的成功是因ؓ(f)他们有了一个新的理念,但是Z么你没先惛_呢? 需求真正改变的情况很少Q但是没有做好需求分析工作的理由却很多?nbsp; 6. l常阅读 在这个每日都在发生变化的产业中,你不可能在已取得的成׃陉太久?nbsp; 每个月至读2?本专业杂志或?本专业书c。保持不落伍需要付出很多的旉和金钱,但会(x)使你成ؓ(f)一个很有实力的竞争者?nbsp; 7. 降低软g模块间的耦合?nbsp; 高耦合度的pȝ是很隄护的。一处的修改引v另一处甚x多处的变动?nbsp; 你可以通过以下Ҏ(gu)降低E序的耦合度:(x)隐藏实现l节Q强制构件接口定义,不用公用数据结构,不让应用E序直接操作数据库(我的l验法则是:(x)当应用程序员在写SQL代码的时候,你的E序的耦合度就已经很高了)?nbsp; 耦合度低的Y件可以很Ҏ(gu)被重用、维护和扩充?nbsp; 8. 提高软g的内聚?nbsp; 如果一个Y件的模块只实C个功能,那么该模块具有高内聚性。高内聚性的软g更容易维护和改进?nbsp; 判断一个模块是否有高的内聚性,看一看你是否能够用一个简单的句子描述它的功能p了。如果你用了一D话或者你需要用类似“和”、“或”等q词Q则说明你需要将该模块细化?nbsp; 只有高内聚性的模块才可能被重用?nbsp; 9. 考虑软g的移植?nbsp; UL是Y件开发中一具体而又实际的工作,不要怿某些软g工具的广告宣传(比如java 的宣传口号write once run many ? 译者注Q?nbsp; 即仅仅对Y件进行常规升U,也要把这看得和向另一个操作系l或数据库移植一样重要?nbsp; 记得?6位WindowsUL?2位windows的“乐”吗 Q当你用了某个操作pȝ的特性,如它的进E间通信(IPC){略Q或用某数据库专有语a写了存储q程。你的Y件和那个特定的品结合度已l很高了?nbsp; 好的软g设计者把那些Ҏ(gu)的实现细节打包隐藏v来,所以,当那些特性该变的时候,你的仅仅需要更新那个包可以了?nbsp; 10. 接受变化 q是一句老话了:(x)唯一不变的只有变化?nbsp; 你应该将所有系l将可能发生的变化以?qing)潜在需求记录下?以便来能够实现Q参见“Architecting for Change”,Thinking Objectively, May 1999Q?nbsp; 通过在徏模期间考虑q些假设的情况,你就有可能开发出_强壮且容易维护的软g。设计强壮的软g是你最基本的目标?nbsp; 11. 不要低估对Y件规模的需?nbsp; Internet 带给我们的最大的教训是你必须在Y件开发的最初阶D就考虑软g规模的可扩充性?nbsp; 今天只有100人的部门使用的应用程序,明天可能?x)被有好几万人的l织使用Q下月,通过因特|可能会(x)有几百万Z用它?nbsp; 在Y件设计的初期Q根据在用例模型中定义的必须支持的基本事务处理,定软g的基本功能。然后,在徏造系l的时候再逐步加入比较常用的功能?nbsp; 在设计的开始考虑软g的规模需求,避免在用L(fng)H然增大的情况下Q重写Y件?nbsp; 12. 性能仅仅是很多设计因素之一 x软g设计中的一个重要因?-性能Q这好象也是用户最兛_的事情。一个性能不佳的Y件将不可避免被重写?nbsp; 但是你的设计q必d有可靠性,可用性,便携性和可扩展性。你应该在工E开始就应该定义q区分好q些因素Q以便在工作中恰当用。性能可以是,也可以不是优先最高的因素Q我的观Ҏ(gu)Q给每个设计因素应有的考虑?nbsp; 13. 理接口 “UML User Guide”(Grady BoochQIvar Jacobson和Jim Rumbaugh ,Addison Wesley, 1999Q中指出Q你应该在开发阶D늚早期定义Y件模块之间的接口?nbsp; q有助于你的开发h员全面理解Y件的设计l构q取得一致意见,让各模块开发小l相对独立的工作。一旦模块的接口定之后Q模块怎样实现׃是很重要了?nbsp; 从根本上_(d)如果你不能够定义你的模块“从外部看上M(x)是什么样子”,你肯定也不清楚模块内要实C么?nbsp; 14. 走近路需要更长的旉 在Y件开发中没有捷径可以走?nbsp; ~短你的在需求分析上q旉Q结果只能是开发出来的软g不能满用户的需求,必须被重写?nbsp; 在Y件徏模上每节省一周,在将来的~码阶段可能?x)多花几周时_(d)因ؓ(f)你在全面思考之前就动手写程序?nbsp; 你ؓ(f)了节省一天的试旉而漏掉了一个bugQ在来的维护阶D,可能需要花几周甚至几个月的旉M复。与其如此,q不如重新安排一下项目计划?nbsp; 避免走捷径,只做一ơ但要做对(do it once by doing it rightQ?nbsp; 15. 别信赖Q何h 产品和服务销售公怸是你的朋友,你的大部分员工和高层理人员也不是?nbsp; 大部分品供应商希望把你牢牢l在他们的品上Q可能是操作pȝQ数据库或者某个开发工兗?nbsp; 大部分的N和承包商只关心你的钱q不是你的工E(停止向他们付?gu)ƾ,看一看他们会(x)在周围呆多长旉Q?nbsp; 大部分程序员认ؓ(f)他们自己比其他h更优UQ他们可能抛弃你设计的模型而用自己认ؓ(f)更好的?nbsp; 只有良好的沟通才能解册些问题?nbsp; 要明的是,不要只依靠一家品或服务提供商,即你的公司Q或l织Q已l在建模、文档和q程{方面向那个公司投入了很多钱?nbsp; 16. 证明你的设计在实践中可行 在设计的时候应当先建立一个技术原型, 或者称为“端到端”原型。以证明你的设计是能够工作的?nbsp; 你应该在开发工作的早期做这些事情,因ؓ(f)Q如果Y件的设计Ҏ(gu)是不可行的,在编码实现阶D|论采取什么措施都于事无补。技术原型将证明你的设计的可行性,从而,你的设计更Ҏ(gu)获得支持?nbsp; 17. 应用已知的模?nbsp; 目前Q我们有大量现成的分析和设计模式以及(qing)问题的解x案可以用?nbsp; 一般来_(d)好的模型设计和开发h员,都会(x)避免重新设计已经成熟的ƈ被广泛应用的东西?nbsp; http://www.ambysoft.com/processPatternsPage.html 收藏了许多开发模式的信息?nbsp; 18. 研究每个模型的长处和q 目前有很多种cȝ模型可以使用,如下图所C。用例捕L(fng)是系l行为需求,数据模型则描q支持一个系l运行所需要的数据构成。你可能?x)试囑֜用例中加入实际数据描qͼ但是Q这对开发者不是非常有用。同P数据模型Ҏ(gu)qY仉求来说是无用的。每个模型在你徏模过E中有其相应的位|,但是Q你需要明白在什么地方,什么时候用它们?nbsp; 19. 在现有Q务中应用多个模型 当你攉需求的时候,考虑使用用例模型Q用L(fng)面模型和领域U的cL型?nbsp; 当你设计软g的时候,应该考虑制作cL型,序图、状态图、协作图和最l的软g实际物理模型?nbsp; E序设计人员应该慢慢意识刎ͼ仅仅使用一个模型而实现的软g要么不能够很好地满用户的需求,要么很难扩展?nbsp; 20. 教育你的听众 你花了很大力气徏立一个很成熟的系l模型,而你的听众却不能理解它们Q甚xp-qؓ(f)什么要先徏立模型都不知道。那么你的工作是毫无意义的?nbsp; 教给你开发h员基本的建模知识Q否则,他们?x)只看看你画的漂亮图表,然后l箋~写不规范的E序?nbsp; 另外Q?nbsp;你还需要告诉你的用户一些需求徏模的基础知识。给他们解释你的用例(uses case)和用L(fng)面模型,以他们能够明白你要表达Cѝ当每个人都能用一个通用的设计语a的时候(比如UML-译者注Q,你的团队才能实现真正的合作?nbsp; 21. 带工L(fng)?c)q是?c)?nbsp; 你给我CAD/CAM工具Q请我设计一座桥。但是,如果那桥徏成的话,我肯定不惛_W一个从桥上q的人,因ؓ(f)我对建筑一H不通?nbsp; 使用一个很优秀的CASE工具q不能你成Z个徏模专Ӟ只能使你成ؓ(f)一个优UCASE工具的用者。成Z个优U的徏模专安要多q的U篏Q不?x)是一周针Ҏ(gu)个h(hun)值几千美元工L(fng)培训。一个优U的CASE工具是很重要Q但你必d?fn)用它Qƈ能够使用它设计它支持的模型?nbsp; 22. 理解完整的过E?nbsp; 好的设计人员应该理解整个软gq程Q尽他们可能不是精通全部实现细节?nbsp; 软g开发是一个很复杂的过E,q记得《object-oriented software process》第36늚内容吗?除了~程、徏模、测试等你擅长工作外Q还有很多工作要做?nbsp; 好的设计者需要考虑全局。必M长远考虑如何使Y件满用户需要,如何提供l护和技术支持等?nbsp; 23. 常做试Q早做测?nbsp; 如果试对你的Y件来说是无所谓的Q那么你的Y件多半也没什么必要被开发出来?nbsp; 建立一个技术原型供技术评审用,以检验你的Y件模型?nbsp; 在Y件生命周期中Q越晚发现的错误难修改Q修Ҏ(gu)本越昂贵。尽可能早的做测试是很值得的?nbsp; 24. 把你的工作归?nbsp; 不值得归档的工作往往也不值得做。归档你的设惻I以及(qing)Ҏ(gu)设想做出的决定;归档软g模型中很重要但不很明昄部分?nbsp;l每个模型一些概要描qC使别人很快明白模型所表达的内宏V?nbsp; 25. 技术会(x)变,基本原理不会(x) 如果有h说“用某U开发语a、某个工h某某技术,我们׃需要再做需求分析,建模Q编码或试”。不要相信,q只说明他还~Zl验。抛开技术和人的因素Q实际上软g开发的基本原理?0世纪70q代以来没有改变过。你必须q定义需求,建模Q编码,试Q配|,面对风险Q发布品,理工作人员{等?nbsp; 软g建模技术是需要多q的实际工作才能完全掌握的。好在你可以从我的徏议开始,完善你们自己的Y件开发经验?nbsp; 以鸡汤开始,加入自己的蔬菜。然后,开始n受你自己的丰盛晚吧?nbsp; 转自 方舟 ]]>故事,大道?/title> http://www.tkk7.com/nighthawk/articles/9206.htmlnighthawk nighthawk Thu, 04 Aug 2005 06:42:00 GMT http://www.tkk7.com/nighthawk/articles/9206.html http://www.tkk7.com/nighthawk/comments/9206.html http://www.tkk7.com/nighthawk/articles/9206.html#Feedback 0 http://www.tkk7.com/nighthawk/comments/commentRss/9206.html http://www.tkk7.com/nighthawk/services/trackbacks/9206.html Q你对事情的看法Q是不是也反映出你内心真正的态度Q) 2、晚饭后Q母亲和奛_一块儿z碗盘,父亲和儿子在客厅看电(sh)视。突Ӟ厨房里传来打破盘子的响声Q然后一片沉寂。是儿子望着他父Ԍ说道Q「一定是妈妈打破的。」「你怎么知道Q」「她没有骂h。? Q我们习(fn)惯以不同的标准来看h看己Q以致往往是责Z严,待己以宽。) 3、有两个台湾观光团到rib伊豆半岛旅游Q\况很坏,到处都是坑洞。其中一位导游连声抱歉,说\面简直像d一栗说而另一个导游却诗意盎然地对游客_(d)(x)怽先生奛_Q我们现在走的这条道路,正是赫赫有名的伊豆迷人酒H大道。? Q虽是同L(fng)情况Q然而不同的意念Q就?x)生不同的态度。思想是何{奇妙的事,如何LQ决定权在你。) 4、同h学三年U的学生Q在作文中说他们来的志愿是当小丑。中国的老师斥之为:(x)「胸无大志,孺子不可教也Q」带外国的老师则会(x)_(d)(x)「愿你把Ƣ笑带给全世界!? Qn为长辈的我们Q不但容易要求多于鼓励,更狭H的界定了成功的定义。) 5、在故宫博物院中Q有一个太太不耐烦地对她先生说Q「我说你为甚么走得这么慢。原来你老是停下来看q些东西。? Q有人只知道在h生的道\上狂奔,l果失去了观看两旁美丽花늚Z(x)。) 6、妻子正在厨房炒菜。丈夫在Ҏ(gu)边一直唠叨不停:(x)慢些。小心!火太大了。赶快把鱼翻q来。快铲v来,Ҏ(gu)太多了!把豆腐整q一下!「哎u」妻子脱口而出Q「我懂得怎样炒菜。」「你当然懂,太太Q」丈夫^静地{道Q「我只是要让你知道,我在开车时Q你在旁边喋喋不休,我的感觉如何。? Q学?x)体谅他人ƈ不困难,只要你愿意认真地站在?gu)的角度和立场看问题。) 7、一辆蝲满乘客的公共汽R沿着下坡路快速前q着Q有一个h後面紧紧地追赶着q辆车子。一个乘客从车窗中出头来对qR子的Q?老兄Q算啦,你追不上的!""我必追上它Q?qh气喘吁吁地说Q?我是q辆车的司机Q? Q有些h必须非常认真努力Q因Zq样的话Q後果就十分(zhn)惨了!然而也正因为必d力以_(d)潜在的本能和不ؓ(f)人知的特质终充份展现出来。) 8、甲Q「新搬来的邻居好可恶Q昨天晚上三更半夜、夜׃h静之时然跑来猛按我家的门铃。? 乙:(x)「的可Ӟ你有没有马上报警Q? Ԍ(x)「没有。我当他们是疯子Ql吹我的喇叭。? Q事出必有因Q如果能先看到自q不是Q答案就?x)不一样在你面对冲H和争执Ӟ先想一x否心中有亏,或许很快p释怀了) 9、某日,张三在山间小路开车,正当他?zhn)哉地ƣ赏丽风景ӞH然q面开来一辆货车,而且满囗黑牙的司摇下H户对他大骂一壎ͼ(x)"猪!" 张三想纳P也越惌气,於是他也摇下车窗回头大骂Q?你才是猪Q? 才刚骂完Q他便迎头撞上一过马\的猪? Q不要错误的诠释别h的好意,那只?x)让自己吃亏Qƈ且别h受i。在不明所以之前,先学?x)按捺情l,耐心观察Q以免事後生发?zhn)意。) 10、小男孩问爸爸:(x)"是不是做父亲的L做儿子的知道得多Q? 爸爸回答Q?当然啦!" 男孩问Q?늁是谁发明的?" 爸爸Q?是爱q生? 男孩又问:(x)"那爱q生的爸爸怎麽没有发明늁Q? Q很奇怪,喜欢倚老卖老的人,特别Ҏ(gu)栽跟斗。权威往往只是一个经不v考验的空壛_Q尤其在Cq个多元开攄时代。) 11、小明洗澡时不小心吞下一块肥皂Q他的妈妈慌慌张张地打电(sh)话向家庭ȝ?助。医生说Q?我现在还有几个病人在Q可能要半小时後才能赶过厅R? 明妈妈_(d)(x)"在你来之前,我该做甚麽?" ȝ_(d)(x)"l小明喝一杯白开_(d)然後用力跳一跻I你就可以让小明用嘴巴Ҏ(gu)泡消时间了? Qtake it easyQ放L放轻松些Q生zM必太紧张Q事情既然已l发生了Q何不坦然自在的面对。担心不如宽心,IL(fng)张不如穷开心。) 12、一把坚实的大锁挂在大门上,一栚w杆费了九(ji)牛二虎之力,q是无法它撬开。钥匙来了,他瘦的w子钻进锁孔Q只轻轻一转,大锁??C声打开了? 铁杆奇怪地问:(x)"Z麽我费了那麽大力气也打不开Q而你却轻而易丑֜把它打开了呢Q? 钥匙_(d)(x)"因ؓ(f)我最了解他的心? Q每个h的心Q都像上了锁的大门,M再粗的铁也撬不开。唯有关怀Q才能把自己变成一只细ȝ钥匙Q进入别人的心中Q了解别人。) ]]>
վ֩ģ壺
þóѲ |
ŷxxxxx |
˳ӰԺ |
AVվ |
ȫAһëƬ |
Ƶ߹ۿƵ |
ŮڵƵ |
ĻëƬѿ |
պۺϾþþƷ |
ɫַ |
ѹۿվ |
뾫Ʒһ |
˿Ƶ |
ƷƷ
|
۵Ƶѹۿ |
VAĻëƬ |
պѿ |
һѲ |
ŷպƷһ
|
ƷСƵ |
þùƷ2020m3u8 |
ëƬ |
Ʒþҹ |
AVƬ߹ۿ |
ҹƵ |
91ȳ˾Ʒ |
aaaƬѿ |
պƷާѡ |
þۺɫһ |
žƷ |
žƷƵվ |
ձ˳Ƶ߹ۿ |
һƵѹۿ |
ݺۺϾþѿ |
վwwwwww |
ަv߾Ʒ |
AVƬ߹ۿ
|
ƷaƬ߹ۿ |
Ƶ |
һƵѿ |
ŮƵվ |