??xml version="1.0" encoding="utf-8" standalone="yes"?>精品亚洲AV无码一区二区三区,亚洲午夜国产精品,久久精品国产亚洲av高清漫画
http://www.tkk7.com/bingle/category/14555.html最大的喜?zhn)Q莫q于技术的q步 Q?
坚定梦想Q毕生追?zh-cnTue, 27 Feb 2007 12:43:57 GMTTue, 27 Feb 2007 12:43:57 GMT60- [原]ANT学习(fn)体会(x)http://www.tkk7.com/bingle/archive/2007/01/23/95479.html冰浪冰浪Tue, 23 Jan 2007 02:52:00 GMThttp://www.tkk7.com/bingle/archive/2007/01/23/95479.htmlhttp://www.tkk7.com/bingle/comments/95479.htmlhttp://www.tkk7.com/bingle/archive/2007/01/23/95479.html#Feedback6http://www.tkk7.com/bingle/comments/commentRss/95479.htmlhttp://www.tkk7.com/bingle/services/trackbacks/95479.html阅读全文

]]> - Java标准受到挑战 未来pdhttp://www.tkk7.com/bingle/archive/2007/01/18/94687.html冰浪冰浪Thu, 18 Jan 2007 08:06:00 GMThttp://www.tkk7.com/bingle/archive/2007/01/18/94687.htmlhttp://www.tkk7.com/bingle/comments/94687.htmlhttp://www.tkk7.com/bingle/archive/2007/01/18/94687.html#Feedback1http://www.tkk7.com/bingle/comments/commentRss/94687.htmlhttp://www.tkk7.com/bingle/services/trackbacks/94687.html阅读全文

]]> - 再次转脓(chung)Q《我的Java学习(fn)之\?/title>http://www.tkk7.com/bingle/archive/2006/08/28/66064.html冰浪冰浪Sun, 27 Aug 2006 18:03:00 GMThttp://www.tkk7.com/bingle/archive/2006/08/28/66064.htmlhttp://www.tkk7.com/bingle/comments/66064.htmlhttp://www.tkk7.com/bingle/archive/2006/08/28/66064.html#Feedback0http://www.tkk7.com/bingle/comments/commentRss/66064.htmlhttp://www.tkk7.com/bingle/services/trackbacks/66064.htmlq篇文章是我至今最喜欢文章之一Q有点类g《一个程序员的奋斗历E》,相比之下Q我更喜Ƣ此。因为本文章是关于javaE序员的l历Q对于自己有太多可借鉴的东ѝ这文章我重读?jin)N遍,是我Java学习(fn)路上的指引。深深感谢文章的作者!
q里说说我的l历吧。大学前以及(qing)大学前面三年的经历就不说?jin),因?f)大学前的高中是好好学习(fn)Q大学前三年是淯来的?br /> 我上的学校还可以,虽然不是北大清华q样W一名牌大学,但至也中国的W二名牌大学了(jin)。大学中前面三年都陪伴着游戏q去Q所学到的只是些计算机基知识。到大四后我H然发现׃的问题就在眼前,而自׃乎什么也不会(x)Q于是开始看书。最一开始重点看的是C++Q可是后来自从看?jin)一本J2ME的书以后被Java所吸引。当时虽然学校上qJava评Q但是自׃只是学了(jin)很少的皮毛,也就只会(x)写写Hello World和什么加减法之类很简单的E序Q连API都知道没有几个,比如说字W串长度的API我都不知道。所以刚开始自己学J2ME的时候屡屡受挫,自己也明白自q~点Q决定从J2SE开始好好补上?br /> 刚开始ؓ(f)?jin)熟?zhn)Java开发环境,C(jin)本JBuilder开发的教程Qƈ且在自己的本本上安装?jin)JBuilderq行演练。当时的我连JavaDoc都不知道Q每ơ究竟什么API能做什么事情一点头l都没有Q还不知道哪里去查,后来同学告诉我有个JavaDocq个东西Q我q兴奋不Ԍ觉得自己被从黑暗中拉回来?jin)。一开始用JBuilder的时候,马上Z所吸引Q有两个原因Q第一是因为它自动标出语法错误Q边写代码边提示你什么地方语法出错,记得以前使用VC++的时候,每次E序写好后先~译Q然后再BuildQ再q行Q这其中每个步骤都会(x)Z错误。特别是在编译的时候,写个200多行的程序一ơ编译下来就?00多个错误Q结果每ơ花在这上面的工夫都要好长时间。而JBuilder使用?jin)即时语法分析,所以基本上E序写完Q就可以省略调试语法错误的步骤了(jin)。第二个原因是可以自动提CZ码,q个功能可以让你q速熟(zhn)APIQ免得每ơ去查帮助文档那么麻?ch),我就是这么很快掌握?jin)许多API的?br />可能大家?x)问我?f)什么一开始不学习(fn)《Java~程思想》,的确q本书我们宿舍就有好几本Q不q大家普遍反映效果不好,到最后都不知道说的是什么,所以我也没敢看?br /> l过20天左右的学习(fn)Q对Java有了(jin)更进一步的?jin)解Q熟(zhn)了(jin)不少API函数Q由于在那本书上写开发SWING占了(jin)不少幅Q所以也对Swing的开发了(jin)解了(jin)不少。看完以后因为同学说Java的灵就是多U程~程Q所以开始看Oreilly的《JavaU程》。记得在大学中操作系l这门课我们提到过U程的知识。ƈ且课本上是用Java实现的,当时有了(jin)一点点概念Q但q次看这本专门说U程的书后才发现我原来了(jin)解的那些Ҏ(gu)是什么都不算Q当?dng)现在回想hQ我那时看书学到的也只是很简单的皮毛而已Q。看完这本书后我自己学会(x)在我的JBuilder下开发很单的多线E程序,q且模拟U程冲突Q等待等情况。当时看着自己写的一两百行程序可以顺利执行,那种兴奋劲就别提?jin)。这本书我看得也很快Q大概就׃(jin)3个星期看完?br /> l过上面的学?fn),自己相比以前来说提升了(jin)不,q时候自׃扑ֈ?jin)工作,是做J2EEҎ(gu)外包的,所以更加坚定了(jin)努力学习(fn)Java的信?j)?br /> 在上面写的程序中Q我自己写程序没有规范性,在代码编写的时候自q盲点特别多,q容易犯低p。同学有一个《Effective Java》中文版Q可是我看了(jin)几页发现自己Ҏ(gu)看不懂,里面什么静(rn)态工厂啊Q什么单例模式什么的Ҏ(gu)不知道什么东东。我知道自己目前的水q不够Q所以决定放下这本书Q去L别的适合我的书看。这个时候我看到?jin)候捷先生译的《Practical Java》一书,当时是刚刚上的书架。这本书我在书店M(jin)下目录后感觉如莯宝,马上买回Ӟ在回家的公R上就贪婪地读h。这本书不算很厚Q但是自q得却很认真很仔细Q也明白?jin)不东西,比如Java中等号和equals()Ҏ(gu)的区别,I竟什么时候用什么。还有Exception处理机制Q以前不知道什么叫ExceptionQ只是JBuilder提示我要我抛出Exception我再抛出ExceptionQ自p得这东西基本没什么用呢。但是看?jin)这本书后我改变了(jin)看法,我发现Exception是个很好的东西,可以q速把E序从正常状态和异常状态区分开来,即而准地在指定位|得到处理。那时自׃有了(jin)以后写程序的时候注意编写异常处理部分的x。《Practical Java》这本书虽然不厚Q但是我却非总l地ȝ?jin),大概׃?jin)1个月旉Q我把这本书完全消化?jin)下厅R?br /> 当时听说Java在网l上的应用非常广Q我也不知道I竟是什么应用,我于是买?jin)Oreilly的《Java|络~程》这本书。这本书虽然很厚Q其实前半部分内容不是很复杂Q后半部分写什么RMI的东西我也看不大懂,只能理解个概c(din)通过q本书,我了(jin)解了(jin)HTTP协议I竟是什么一个东西,在它上面利用Java传输数据该如何做Q知道了(jin)什么是RequestQ什么是Response。这也ؓ(f)以后开始我的J2EE之旅打下?jin)很好的基础。当时自׃然是边看书边自己写代码来验证Q自己写?jin)个服务器端Socket和客L(fng)SocketQ成功进行了(jin)通信Q又在上面加上了(jin)安全Socket内容Q实C(jin)SSL通信。当时我把写的这个又套上?jin)Swing的外壻Iq和同学拿这个传文g呢。不q当时也没有考虑q什么校验码之类的东西,所以传传小文gq是可以的,文gE微一大一点,传过ȝ文gL不对_(d)和我原来的文件经怼(x)Z些差异,D文g打不开?br /> 《Java|络~程》这本书看了(jin)不少旉Q因Z比较厚,东西也比较多Q不q除?jin)后面的一些知识以外,其他的还是容易理解的。大概花?个月左右的时间看完。看完后Q时间也C(jin)2004q的3月。我也轮到开始我毕业设计的时候了(jin)。我们的毕业设计导师都还不错Q给你自己选个NQ我选的是一个B/Sl构的在U简历处理系l,正好和我所学和下面所工作的东西是一条\上的?jin)。这时我觉得我应该往B/Sl构上{?jin),当时在选择先看Servletq是先看JSP上犹豫不冟뀂最l决定先看ServletQ后来也证明?jin)我的决定是对的Q我在熟(zhn)了(jin)Servlet后再学JSP是非常容易的Q基本上Ҏ(gu)没有遇到什么难炏V?br /> 可能有h?x)觉得我看?jin)好多Oreilly的书Q虽然我不能说Oreilly本本都是好书Q不q相Ҏ(gu)_(d)好书的概率总超q许多其他的出版C,而且体系比较齐全。我看得几本书我都觉得还不错。现说说下面q本我学Servlet时候看的《Java Servlet~程》来说吧Q很不错的一本书Q让我迅速知道了(jin)什么是ServletQ然后通过最单的实例Q让你知道了(jin)Servlet如何q行的,跟HTTP协议是如何配合的Q如何返回HTML形式的文本,XML配置W该如何写,I竟每个元素是什么意思等{。由于我原来有一定的XML基础Q知道XML语法各种格式的含义而已Q,所以掌握v来还比较快。通过q本书,我知道了(jin)如何动态生成HTML文档Q知道如何把一个Servlet映射C个虚拟的地址。在后半部分写到?jin)数据库操作部分Q我Ҏ(gu)据库的了(jin)解其实也仅限于原来大学课本上的《数据库pȝ原理》,如何从程序和数据库交互是一H不通。通过数据库操作这章,我知道了(jin)如何使用JDBC语句如何~写Q大家不要笑Q对于当初一个新手来_(d)q个真是一个全新的领域Q做什么事情都需要Sample来对照,跟着依葫芦画瓢吧Q其实现在的软g开发也是这P我想现在大家谁能直接手写Struts或者Hibernate的配|文仉很难吧。闲话少_(d)大概q个时候,我对毕业设计的雏形有?jin)点思想上的概念。看完了(jin)《Java Servlet~程》后紧接着又看Oreilly的《JSP设计》,׃有了(jin)Servlet的基Q学起JSP特别快。当时没有着重看Tag的自定义设计Q光看了(jin)JSP的其他东西,l于在五一节后把毕业设计都写完?jin),当时M码量?000多行Q第一ơ写q么多代码的E序觉得很有成就感。现在看h那时做的是标准垃圾,但是当时觉得q是很不错。用?jin)Servlet + JSP。其实Servlet也不是用来当控制器的Q而是和JSP做的差不多功能,都是作view的功能的。很快,毕业设计交差q去?jin),写写毕业论文Q准备答辩。在q个q程中,我又一ơ考虑自己下面该看什么书?br /> q次我又看中?jin)侯L(fng)译的一本巨著,也就是鼎鼎大名的Martin Fowler写的《重构——改善既有代码的设计》这本书。刚开始听见重构这个名字,总觉得非帔R深,加上都评重构是和设计模式齐名的东东,感觉更加高深恐怖了(jin)。大概在6月初我开始看?jin)重构,刚开始看的时候虽然抱着试试看的?j)态,不过q是非常认真的。但是,让我颇感意外的是重构q不是很难,臛_q本书中说的非常通俗易懂Q通过大量的实例让你觉得重构是U很单很基本的技术。虽然我看完?jin)重构以后在真实的代码编写中很少直接按照上面代码所说的Ҏ(gu)q行重构代码Q基本上都是通过IDE来重构代码,但是却大大提升了(jin)自己~程思维Q从此以后写代码很瞻前顾后了(jin)Q因为我拥有?jin)重构这个工兗这本书有点厚,再加上中间有{辩Q拍毕业照,以及(qing)毕业手箋{等Q这本书我花?jin)一个半月看完。我看书的速度也不快Q不q我看书比较有恒?j),不像有部分h看几天就不想看了(jin)Q我能坚持天天看Q所以ȝ来说q是不慢的。我计算q,如果我每天看10书Q坚持下去,那一q就?650书Q^均一本书365|,1q就?0本。如果这10本书中有8本不属于垃圾书籍Q那么你q年p有非常大的提高了(jin)?br /> 看重构这本书中间我也抽了(jin)一D|间看?jin)两本其他的书,W一本是《Java夜未眠》,Z错的一本书Q虽然是散文Q但是还是能让你明白不少道理Q受益匪。另外一本就是李l的《Borland传奇》,׃自己当时最喜欢用的工具是JBuilderQ所以也对Borland公司非常敬ԒQ特别对安d,直就礼膜拜啊,哈哈。这本书写得很精彩,写了(jin)Borland公司二十q来的血泪史Q写?jin)如何跟微Y斗争Q如何在微Y和IBM的夹~中生存。当?dng)也有很多的对于技术方面作者李l自q见解Q看?jin)?x)有不同感的。就q样Q磨蹭y地把重构看完了(jin)?br /> 当看完了(jin)《重构》这本书之后Q我也开始去公司报到上班?jin)。可以看出来Q我当时工作的时候水q也很有限,但L一q前要好不少Q至很多东襉K已经知道?jin)。那时外面极限编E听的比较多Q自׃M店买?jin)本《Java极限~程》回来看Q现在想想算是我看得W一本垃圾书c了(jin)。不q也是有收获的,q本书极限编E也p?jin)点概念Q然后就写了(jin)不少工具的用方法。在看《重构》中对JUnit有了(jin)点认识,不过只是皮毛中的皮毛。看?jin)这本《Java极限~程》后对JUnit的用又?jin)解了(jin)不皮毛,对于Cactus有了(jin)点了(jin)解,对Ant?jin)解了(jin)不,臛_可以自己写出自己需要的配置文g?jin),q且可以l合JUnit生成试Report。由于我ȝ是日企,做对日外包的Q所以公司开始培训日本语Q用的是《标准日本语》这套教材。我于是边学日语边看技术,大概2个星期左x把那本《Java极限~程》初步看完后扔在了(jin)安。这时的我已l开始会(x)用Ant?jin),觉得是步入J2EE的重要一步?br /> 很快啃掉那本垃圾书以后又看了(jin)本和Java不是非常有关的书Q《程序员修炼之道——从工C家》,原因其实很简单,大学同学都说q本书是l典书,看书q东西,别h的评仯是能起不作用的。这本书字数不是很多Q不q排版的时候比较分散,D书本有点厚,呵呵Q可能也出版社赚钱的一U方法吧。不qȝ来说Q我觉得出版C张质量最好的是电(sh)子工业出版社Q其ơ是中国?sh)力出版C,最烂的恐怕就是机械工业出版社?jin),机械工业出版C有量书纸张还能说q去Q但有不简直让Z得不有脾气啊Q纸张薄得感觉和写毛W字的宣UR差不多了(jin)。这本电(sh)子工业出版社的书U张质量的确不错Q不q也许是因ؓ(f)我功力尚,所以这本书虽然都看懂了(jin)Q但是深有感触ƈ且铭C?j)的没有几个Q现在再回想Q也只记得Y件模块设计时要正交等{少数几点了(jin)。这本书׃内容不是非常多,所以我q?jin)半个月不到搞定。这时的我开发IDE已经转移C(jin)Eclipse上,毕竟商业开发用D版有点说不过去,而且公司也怕查Q所以不允许用JBuilderQ鼓励大家用Eclipse。我用了(jin)一D|间的Eclipse后,从一开始的不适应到后来觉得Eclipse很方便用,JBuilder比Eclipse多的是一些根据不同类型开发的模版而已Q而这些可以由Eclipse的插件来弥补。到?jin)这Ӟ我觉得我的Java基础应该还可以的了(jin)QAPI也熟(zhn)了(jin)非常多。我觉得看《Effective Java》的时机成熟?jin)?br /> ׃大学已经毕业?jin),所以也不会(x)有同学的《Effective Java》放在边上让我看q样的好事出玎ͼ老老实实地M(jin)书店C(jin)本《Effective Java》中文版回来研读。呵呵,大家也许?x)问我?f)什么不买本E文的看,虽然我大学早早也把英?U过?jin),而且大学中不计机专业评教材也是E文的Q当时ؓ(f)?jin)考试也认真读?jin)。但是毕竟英语不是我们的母语Q看h速度上明显比中文版的慢一截。当?dng)如果是那U垃圄译者用机器译出来的中文版Q看那些垃圾中文版速度肯定比不上直接看英文原版的。这时的我看《Effective Java》已l不再是当初的那么感觉很陌生?jin),觉得上面说的那些要点自己xq都是可以理解的。我个h觉得提高自n~程?fn)惯以?qing)水^最多的q是看类g《Practical Java》和《Effective Java》的q种按照条目来进行说明的书,能把你自己^时容易忽略的地方按照重点一个个揪出来进行修正。比如《Effective Java》中的第一条,使用?rn)态工厂来代替构造函敎ͼ自己原来在进行开发的时候,从来不怎么?x)主动想到徏立一个静(rn)态工厂,总觉得用构造函数来新徏一个对象是天经C的事情。但看完q个条目后,我的看法也随之改变,发现?rn)态工厂还是非常好的,当然Q也不是什么地方用?rn)态工厂都很好。上面也写到?jin)?rn)态工厂的优缺点,比如在什么地斚w合使用Q什么场合最好不要用等{。这本书我觉得翻译的也不错,l对|强烈向有一定开发经验的人推荐。我大概看了(jin)3周半的样子把q本书看完,q时的时间也C(jin)2004q的9月初Q新员工入司培训也不再是W一个月Ua(b)的日语培训,而是技术培训和日语培训一起开展,技术上培训JavaQW(xu)eb开发,数据库开发这三门评Q日语则开始进行日本语国际三的培训。公司的日语培训和技术培训都q不错,技术培训纯_Ҏ(gu)大家当作什么都不懂的hQ在Java上从最原始的Hello World开始培训,W(xu)eb开发上从HTML面开始培训,数据库开发则从Oracle的安装,SQL语句的编写开始培训。当?dng)在培训的q程中我也不?x)闲着Q而是又开始寻找自p啃的书本Q这ơ,我选中?jin)Oreilly新出版不久的《Java与XML》第二版?br /> ׃XML表达数据的自由性以?qing)强大型Q所以XML特别适合于做配置文g以及(qing)数据信息文gQ在Java中XML的用可谓是多如牛毛。在J2EE中,从Web Application的web.xml开始就是XML文gQ到下面的Framework配置{等Q没有一个没有XML的n影,而且XML都vC(jin)举轻重的作用。虽然我原来也懂一点XMLQ不q也仅限于XML的语法以?qing)结构等{,那些深入下去的东西基本还是盲点,关于Java中如何处理XML更是一H不通。ؓ(f)?jin)更好的学?fn)J2EEQXML是必d服得一座山峰。这ơ,我依然又再一ơ信M(jin)Oreilly出版C,C(jin)本当时出版不久的《Java与XML》中文第二版。这本书刚开始ƈ没有q多介绍XML本nq多的东西,只是Z(jin)怕某些读者ƈ不了(jin)解XML而对XML语法l构{做?jin)非常简要的介绍Q不q也非常C的介l。介l完?jin)这些XML基础知识后就开始了(jin)SAX——〉DOM——〉JDOM——〉JAXP——〉Web Service的历E。不q我现在觉得如果能介lDOM4J更好了(jin)Q因为我现在觉得DOM4J是Java中最好用而且性能也不错的XML处理工具。刚开始的我其实什么是SAXQ什么是DOM都不知道Q对JAXP更是一无所知。这本书英文版据说很受好评,中文版我只能说一般,因ؓ(f)有些地方估计译者ƈ不擅长这一块,所以翻译得很生,以至于部分段落难于理解。M来说Q书的绝大多数内容还是可以看懂,׃没有具体实际操作的经验,所以很多也是把概느解了(jin)Q直到几个月后做正式目开始应用这些XML处理工具q行开发的时候才辑ֈ?jin)熟l运用的能力。在q本书中学会(x)?jin)JDOM的用方法,JDOM也还是比较好用的Q学?x)?jin)JDOMQ以后操UXML也方便了(jin)许多。这本书我的是Q可以一口气dW十章JAXP部分Q后面的Cocoon以及(qing)SOAP{等部分那本书介l的q不是很好。Cocoon我是看了(jin)官方专门的帮助文档以后才感觉入了(jin)门。而SOAP是经q别的书c加上项目中的实际运用才真正学会(x)的?br /> q时到我刚进公司已经两个月过M(jin)Q时间已l到?月中旬的样子Q还有一个月我们公司新员工入司培训就要结束,也意味着q有一个多月我们就要开始接触正式项目。这时的我写B/SE序仅仅是JSP + JavaBean的水qIqJSP中的TAG都不?x)自定义Q看见别人网上的E序自己q自己定义Tag很是慕Q于是决定把那本《JSP设计》认真看完,把自定义Tag的功能实现。后来看?jin)以后发现原来那本《JSP设计》的_֍都在最后的150内Q最后那部分先是介绍?jin)自定义Tag的定义方法以?qing)Tag定义所带来的一些好处。自从学?x)?jin)如何自定义TagQ在后来公司的项目中自己也根据项目的特点定义?jin)一些共通的TagQ大大方便了(jin)不少目中的开发h员,提高?jin)生产力。这本书而且也说?jin)一下B/S开发的两种Web Module。在q里Q我W一ơ知道了(jin)Web开发可以用一个Servlet作ؓ(f)控制器,用JSP仅仅作用于表现层Q这也ؓ(f)以后掌握MVC打下?jin)很好的基础?br /> 9月中下旬扫完?jin)《JSP设计》的ַ后,有一ơ跟公司l我们培训的老师在闲聊时谈到?jin)项目开发,我询问他目是不是用JSP和JavaBean来开发,他笑着和我说不是这L(fng)Q而是ZFramework来进行开发。比如Struts是公司的常用Framework。Strutsq东西以前也好像听说q,不过从来也只是听说而已Qƈ没有看过。得到这个信息的我,Z(jin)能尽快熟(zhn)实际项目的开发环境,便决?j)尽快学会(x)Struts。当时的?jng)场上讲解Struts的书只有一本,也就是Oreilly的《Jakarta Struts~程》,不像现在q《Struts in Action》的中文版也有了(jin)。我M(jin)书店买来开始回家看Q刚开始看的时候觉得如同云里雾里一般,因ؓ(f)q本书归Uxȝ性的东西很多Q比较适合当参考手册,而真正带领新手入门这一块做的ƈ不好。所以当我把q本书都看完?jin)以后,q是不会(x)用Struts~写一个程序,只是感觉自己朦朦胧胧懂了(jin)一些概念,比如MVC什么的。在公司我们的培训也l束?jin),通知在国?jin)节q来以后的第一个星期——大概是10?0日左双行考试Q最后根据培训考核情况来调整薪水。当时跟我一起培训的新员工基本上没有Z(x)StrutsQ其实这个时候连?x)用JSP + JavaBean写一个最单的d画面的h也没有多个Q大部分是模模糊p懂一点,但是具体做东西还是做不来的那U水q뀂国?jin)节大?0?L(fng)我去?jin)趟书店Q突然发C架上C?jin)一本书Q就是孙卫琴~写的《精通Struts》这本书。孙卫琴的书我倒是听说q,是在这之前出的一本关于Tomcat以及(qing)Web App开发的书,据说挺容易上手的。我ȝ?jin)这本书的目录结构,觉得可以值得一读,于是虽然h不菲Q仍然买回家当天q读v来。凭我的d感觉来说Q这本书也许学术价值ƈ不高Q说得深入的东西基本没有Q但是特别适合初学者,通过Hello Worldq种例子q速让你手把手~写出第一个StrutsE序。就q样Q在q本书买回来的第二天Q我自己qStruts写了(jin)一个很单的d画面E序Q当时的感觉别提多兴奋了(jin)Q就感觉自己入了(jin)门,以后的道路一片光明。在q里Q我要由衷地感谢孙卫琴女士,写了(jin)q么一本适合初学者的书,同时也徏议没有学qStruts但又x握Struts的JavaE序员们买这本书回来看(不知道我是不是有书托之嫌Q我只是说我自己的心(j)里想法)(j)?br /> 国庆(jin)的假期放完了(jin)Q我也回C(jin)公司准备考核Q上午是W试Q下午是上机考试。笔试分Z(jin)4块,分别是JavaQW(xu)eb开发,Oracle数据库,以及(qing)CMMI规约。这四门除了(jin)Oracle数据库我一向不是很擅长Q只考了(jin)个中{分C外,其他三门分数都名列前茅。不qCMMI规约老实说我也不怎么?x),不过y考的很多都是我知道的东西。下午是上机考试Q题目给出来?jin),我一看题目,原来是一个最易的成W查询pȝQ也是数据库里面已l有一些学生成l,我们写一个检索页面,可以输入或者选择(g)索条Ӟ把符合我们检索条件的数据输出q显C在画面中。我于是拿刚学会(x)不久的Strutsq行~写Q在3个小时内把整个页面都写好?jin),q且q自定义?jin)一个Tag来显C数据信息。考完以后我才知道d也就五六个hE序可以q行Q而且只有我一个h用的是StrutsQ其他h基本都是最单的JSP + JavaBeanQ有的hqJavaBean都没有,数据库操作全部写在了(jin)JSP面中。毫无疑问,q次上机考试我得C(jin)好评Q给?jin)最高分。在全部的培训成l中我也居前两名Q我们部门新员工我排W一名。带着q个成WQ我们的入司培训基本l束Q开始进入部门做实习(fn)目?br /> 虽然说我们正式进?jin)部门,不过试用期还没有l束Q我们试用期最后一个月的Q务就是做一个实?fn)项目,当然Q每天还是要q行日语培训Q因参加12月䆾的国际日语三U考试。公怹象征性得l大家培训了(jin)三节评技术,W一节是Struts培训Q第二节是Web App的MVCl构的培训,W三节是Log4j培训Q这几次培训下来Q大部分人感觉好象云里雾里一P基本什么都没听懂,不过我由于有?jin)点Struts的基本知识,所以感觉收h较大Q特别是MVC的培训中我真正明白了(jin)视图——控制器——模型这三层每层应该怎么处理Q知道了(jin)一个Web App中如何分Java Package比较好,明白?jin)专门有一个DAO层来处理数据库所带来的便P明白?jin)Log在Web开发中的重要地位,qؓ(f)以后的开发带来了(jin)很大的好处。实?fn)项目的N很快׃来了(jin)Q要我们做一个电(sh)子相册的B/SpȝQ要求有囄上传Q图片检索,囄昄以及(qing)要用Struts来构建,q些是基本的要求Q其他功能可以自由扩张。我们部门的新员工分Z个小GroupQ都是一L(fng)NQ互怿(j)q和学习(fn)Q每个Groupq配备了(jin)一个老员工,作ؓ(f)督促(j)我们的进度,防止我们有过大的偏差{等Q不q具体做东西上原则上要求是不?x)给我们什么帮助。首先每个小Group要选出一个LeaderQ结果我被大家一致选ؓ(f)我们Group的Leader。在组讨论中我们先q行需求分析,大家的讨论很是热烈,L也很多,不过基本上组员们也都是点子多Q具体实C面还都没有想q。对于他们的那些Q绝大多数我军_都作为我们要实现的目标,但也有少部分我觉得目前以我们的水q无法实现的,先否决?jin)。会(x)议开完后Q当天回家以后我开始排开发计划和个h的进度,W二天写画面的基本设计,W三天把l员拉过来开始Review基本设计Q我们组的速度q算比较快。从星期二公布课题,到星期五和几个l员一hDEMO画面设计出来?jin)。原来的计划是第二个星期一开始CodingQ大概花一个星期完成。不q其余组员似乎还是不怎么?x)StrutsQ于是我回家星期六星期天基本全天都在看书写代码学?fn),׃?jin)两天把项目基本Coding完毕。其中Web面部分也不再用一开始用Frame的做法,而是采用?jin)Tiles框架。Tiles的用过后我感觉是非常好的东西,l过单的配置可以完成大批|页中类似部分的构徏Q而且生成的属于一个页面,q样qM(jin)以前写Frame时提交页面L要考虑讄Target以及(qing)在引用对象的时候大批Parent或者top对象使用的麻?ch)事了(jin)。在开发过E中我用了(jin)Log4jQ这为我的调试程序带来了(jin)极大的方便,呵呵Q可以想象,没有Log来调试一个WebE序真是不可惌的?br /> q段旉我是边开发边L那本《精通Struts》的Q这Pq速把Struts中提供的许多Tag弄熟l了(jin)Qؓ(f)以后具体的项目开发带来了(jin)便捷。也许是一向以来公司的实习(fn)目完成效果都不是很理想吧,q次我们的迅速完成比较出乎Leader的意料,l合三个月的试用培训Q由于我在日语和技术以?qing)实习(fn)项目中表现都还不错Q所以定工资U别时也是同一批进公司的新员工中最高的Q随着转正?x)议的结束,我也?0月底成ؓ(f)?jin)公司的正式员工。大概刚刚进?1月䆾Q我们Group便开动一个项目,目不是很大。当时老员工们许多都在做项目的详细设计Q我便跟着公司一位技术专Ӟ也是当初l我们入司培训的其中一位老师Q做起项目的Framework构徏工作。当时的我才q公司,W一资历浅Q第二我的确也ƈ不是很会(x)什么东西,所以给我的d很多都是一些模块的Utility的设计。比如通用的CheckҎ(gu)啊,CSV以及(qing)定长文g的读取解析什么的啊,q有某些在IE中可以实现的效果如何在Netscape中也能实现同L(fng)效果{等。虽然这些东西在现在看来q不是很复杂Q但是当时自q随着做这些东西而学C(jin)很多很多。比如用JDOM对XML文g的解析啊Q很多CheckҎ(gu)的小技巧啊QIE和NetscapeI竟有什么地方不一_(d)该如何解决等{,q些都在q几天内?jin)解了(jin)很多。在q几天中Q我通过|上查找资料Q(f)速学?fn)?jin)Java反射的用方法,q且自己边学边写实例Q实C(jin)各种情况下的反射案例。我个h觉得掌握Java反射技术是非常重要的,q让你可以写一些通用的工兗如果不?x)反技术的话,也许你永q只能写一些针对特定情况下的解x法。而会(x)使用反射以后Q你可以写一些代码,q些代码可以用在许多地方Q达到自己扩展甚x建Framework的效果。在q个目中,我用了(jin)自定义Tag和Java反射技术,定义?jin)些目中比较需要的通用的TagQ方便了(jin)大家?br /> 后来听老员工说新员工进公司开始做Framework是以前从来都没有q的事情Q因为我们LeaderҎ(gu)希望比较大,所以想可能培LQ让我早Ҏ(gu)起项目大梁,所以给我的成长提供?jin)一ơ又一ơ的机遇?1月中旬以后,目开始进入编码阶D,我也W一ơ看C(jin)正式的项目设计书。第一ơ看到设计书的时候我都觉得自p子有Ҏ(gu)Q一大堆日语什么含义自׃是很清楚Q而且感觉Ҏ(gu)无从下手Q不知道从哪里开始看比较好。项目担当耐心(j)得和我说?jin)设计书的格式以及(qing)究竟什么地Ҏ(gu)什么一个含义,以及(qing)Coding的时候按照什么个思\来看设计书。再加上目中有老员工先写了(jin)个SampleQ让大家看了(jin)标准的一个流E,所以我们就依葫芦画瓢,慢慢得把一个画面一个画面Coding完毕。当然了(jin)Q后来也有测试员来测试我们的画面Q发现bug后就发B(ti)ug Reportl我Q那一个月是在CodingQ修正Bug中渡q的Q这个项目是用Struts做的Q因Z大。所以也没有再用其他的FrameworkQ数据库操作那里只有个非常简单的单表操作DAO层,其余的DB操作都是自己通过JDBC操作语句来完成的。在q第一个自己接触的真正目中,我自己学C(jin)很多B/S设计的技巧,感觉很充实。不q书本学?fn)方面我也没有闲着Q我Z(jin)能够深入?jin)解JavaQ大概在11月中旬左叛_始看《深入Java虚拟机》这本书Q由于内Ҏ(gu)较深入,所以看得也有点吃力。书译得和写得都还不错Q值得一看,我一直看?jin)前八章Q看到JavaE序q行l节后就没再看了(jin)Q大概看C(jin)12月底的样子吧Q呵呵,有时间的话决定把后面的部分也看完。这本书看完后收获就是了(jin)解了(jin)Class文g的实质,Java的安全模型,虚拟机是如何工作的。这些知识对后来调试E序Bug或者Exception的时候非常有好处Q可以把以前自己觉得莫名其妙的错误的原因扑և来,不像以前遇到很古怪的Exception的时候怎么ȝ都不知道Q从dq本书以后,在以后的调试异常中很再有不知所以然的感觉了(jin)?br /> 2004q?2月底的时候,我的W一个项目也做完?jin),׃我空闲着QLeader便在星期三的时候把一个公司内部开发的Sourcel计的小工具让我q行修改Q得添加一个比较有用的功能。东西给我的时候基本没有Q何文档,在我手上的就是一堆源代码而已Q界面是用Swing制作的,因ؓ(f)没有专门在UI上进行精?j)设计,所以说不上好看Q典型的Java~写的图形界面的E序的样子。Y件不是非常大Q估计在1万行源代码以内,不过对于只有一个h修改来说Q也比较够呛?jin)。还好我在刚学Java的时候用JBuilder写了(jin)一些Swing的程序,现在q是对Swing有概늚Q所以拿到手上以后经q仔l分析,逐渐理清?jin)头l。经q修改和自己试完毕后,觉得q比较满意,辑ֈ?jin)预期的目标Q于是在星期五的时候提交给?jin)Leader。通过q次Q对Swing的开发又加深?jin)印象,自然Q在有的l节技巧方面受益匪?br /> 元旦很快来(f)?jin),在年底以前,公司觉得有必要学习(fn)下HibernateQ虽然我们目前的目中还没有用过HibernateQ而是用另外一个公司内部开发的ORM工具Q不q几名技术专家初步对Hibernate感觉后觉得Hibernate的功能要强大的多Q而且是开源的Q不断有人在推动Q升U,所以有必要我们要学Hibernate。这ơ的学习(fn)采用学习(fn)组的Ş式,也就是公司内部先抽几名员工(主要是技术部门的Q当?dng)开发部门如果有兴趣的话也可以考虑Q来q行深入学习(fn)Q然后定期开?x)交互相学习(fn),辑ֈ短时间内先行的几名成员迅速深入掌握Hibernate的Ş式。由于我W一处于I闲状态,W二也比较有兴趣Q而且跟技术部门的专家们也比较谈得来,所以我也加入了(jin)其中Q成为几名学?fn)小l中成员的一部分。我们学?fn)资料主要就是《Hibernate in Action》英文版一书以?qing)官方的帮助手册。我负责其中对象操作QTransaction和CacheQ还有高UMapping关系的设|几个部分的学习(fn)。由于资料都是全英文的,所以看书速度q不是很快,不过q是初步得到掌握?jin)。大概学?fn)?jin)半个多月的样子,我们各自基本学习(fn)完毕Q互怺后q且写下?jin)读书笔讎ͼ用来后面具体目开发时候参考用。通过q大半个月的学习(fn)Q我个h觉得提高?jin)非常多Q在q之前,我只知道有ORMq种东西Q但是从来没有用过Q也从来没有看过。自从学q了(jin)以后Q我不仅对Hibernate在代码编写时的用比较熟(zhn)了(jin)Q而且对Hibernate的配|以?qing)许多底层的知识有?jin)很清楚的认识Q让自己在数据持久化斚w的认识提高了(jin)大大的一步?br /> 元旦q后Q虽然一边在学习(fn)HibernateQ不q由于下面项目的需要,Leader跟我说要我学一下Unix下的Shell~程Q因?目中许多批处理?x)用Shell来启动。UNIX命o(h)在学校时候学q的Q不q这个时候已l忘C(jin)很多Q只是翻阅资料的时候还能回惌v来不命令。Shellq不难,如果有了(jin)~程基础Q学?fn)Shell~程也很快的QM感觉是~程语言大同异Q从基本语法来说Q不外乎赋倹{条件、@环这几种cd。只要迅速掌握这几种cd在这U编E语a中的~码格式Q那么你可以迅速掌握这门语a最基本的编E能力。Shelll过一周的学习(fn)后觉得感觉不错,不仅可以利看懂别h写的ShellE序Q而且自己可以在Linux下顺利写出符合自己需求的ShellE序q能利执行。但是突发事件L有的Q那个项目突然决定g后两个月Q所以前一个星期的学得Shell{于暂时z不上用Z(jin)。不q嘛Q多学一h能L没有宛_的,而且又复?fn)?jin)那么多Unix命o(h)啦,感觉q是很不错的。于是我又进入了(jin)不在目中的真空期了(jin)?br /> 但是好景不长啊,好日子还没有q上两个星期Q公司去q做的一个比较大的项目开始了(jin)2期开发,我也被一下拖入了(jin)目中。说起那个项目,公司好多?j)有余(zhn)Q据说去q那个项目开发的时候,大概50多号人干?jin)好几个月,每天都?1点以后才有可能回Ӟ周六是铁定加班,周日是看情况Q晚上就加班加到凌?点也不是什么奇怪的事情。当时大安说多来几个这U项目大家就要死?jin),q次q个目?期过来了(jin)Q大家精又一ơ紧张v来咯。一开始照例是目?x)议Q听完项目经理描qC后,大家也放?j)?jin)不少Q这ơ虽然说是二期,不过规模不大Q只需?5个h左右q一个月p搞定。主要是把项目一期里面一些地方进行改修,当然也有需要新的画面的开发,不过相对于去q的那块不是很多而已。对我来说这ơ是个很大的考验Q因为项目是二期Q项目组内除?jin)我Q其他的人都做过1期开发,所以对目l构都很清楚。这ơ项目开始ƈ没有什么培训,所以我只能单独?期的源代码来熟?zhn)目l构什么的。这个时候项目经理把我叫去要我办理护照,准备q个目zN我去东京现场l护?br /> q个目是个比较全面比较大的目Q服务器采取?jin)集的方式Q数据量也是千万乃至上亿U别的,所以性能要求特别高。在技术方面用C(jin)很多Q用EJB来控制TransactionQ用了(jin)ORM工具来操UDB数据{等{等。而且׃比较庞大Q所以服务器初始化的那块Z(jin)Load上去大批配置信息Q代码量极其庞大Q在权限控制的那块地方,代码非常难以L。这也给我一开始的学习(fn)代码带来?jin)很大的一块麻?ch)。不qȝ?rn)下心(j)来后把整个目框架以?qing)实现手法基本摸清楚了(jin)Q这个时候觉得非常开?j),而且对Web应用E序的构造心(j)里面也非常充实,觉得自己已经具备写Framework的初步能力了(jin)?br /> 目是紧张的Q基本上每天晚上都要加班?1点,然后打R回家Q哈哈,公司报销。而且临近q年Q这么加班也一炚w感觉不到q年的气息。不q我也不能因此放松了(jin)自己的学?fn)。我觉得自己的基应该比较好?jin),便开始啃起另外一本大部头——《Java与模式》。一直以来我对设计模式的感觉是一些已l成型的Q久l考验的代码框Ӟh非常好的可扩展能力以?qing)非常好的代码健壮性。不q初学者最好不要看设计模式Q因Z接触的代码不多,如果贸然看设计模式的话,?x)造成不明白ؓ(f)什么这U设计模式好Q究竟好在什么地方的情况下就在代码中乱套设计模式Q对自己的以后编码发展带来不利的影响。每一U设计模式都有每一U设计模式的特点Q自然也有他们自w的适用范围Q比如拿最基本的单例模式(SingletonQ来_(d)适合于做配置信息d器,主键产生器等全局唯一的东ѝ如果初学者不明白q些Q拿单例模式乱套Q什么都用单例模式,比如把普通传递数据用的JavaBean也做成了(jin)单例模式Q带来的恶果׃重了(jin)。这本《Java与模式》我是从头到认认真真看?jin),每看完一个模式都?x)仔l回想以前看的代码哪里用到过q个模式QM(x)自己xq些模式适用于哪些地斏V因个时候我自己~写的代码行C已经很多?jin),所以看见这些模式就?x)特别有感觉。经q?0多天的认真研读,所有模式都被我消化?jin)下去,q且使得我的对程序开发上面的认识提升?jin)非常大的一步。顺路说一句,q本书写得非常好Q例子很多,但是不复杂,有一定代码编写经验的人就可以看懂?jin)。不q看懂ƈ不是最重要的,重要的是消化下去Q用来理解以前看q的代码的精华,q样自己才能得到提高?br /> q个目虽然很紧张很忙,不过我还是适应?jin)下来,而且Ҏ(gu)个项目结构什么的都有?jin)比较好的整体的把握。项目横跨了(jin)整个q年期间Q所以在q年的那几天都必d着手机Q怕有什么突发事件要求去加班。签证在2?日左右送过ȝQLeader跟我说因为在q年期间Q所以签证可能会(x)比较~慢Q比较难{,不过一般情况下1个月应该_?jin)。原计划我是跟另外两个同??日去东京Q这L(fng)也差不多。不q中国有句话叫好事多,呵呵Q用在我w上的确不过分,我的{证3?日日本领事馆才签Q三月四日送到南京??日和3?日是双休日,所??日签证才送到我手上。由于计划是3?日派人去东京Q所以只好派另外一个n上有{证q没有过期的Z替我q去Q这ơ的Z(x)q泡汤咯。不q我q不是很在意Q因为公司这里去东京出差的机?x)狠多,特别对于开发h员,据说工作几年后一听到L本出差就不乐意,毕竟也背井离乡么?br /> 在这个项目的途中Q大概在2005q?月底2月初的时候公怹开始进行了(jin)制作详细设计的培训,我虽然在目中,不过也成Z(jin)其中一员。这ơ培训d大概6ơ课Q每?个多时Q虽然时间不长,不过把详l设计的要点以及(qing)思\和容易出错的地方都说?jin)出来,感觉很是不错Q这几次评培训后,虽然可能要我立即q行详细设计~写q有点困难,不过?j)里面已l有?jin)不底Q我觉得l过一D|间后的锻|我应该可以有q行详细设计的能力了(jin)?br /> 3月初q个大项目结束后Q本以ؓ(f)可以休整下,不过很快通知??日加入另外一个项目,其实也不一个正式的目Q属于公司知识库的一个信息查询模块。由公司的一个技术专家负责,那h也就是我q公司时候第一个项目中带着我的那个技术专Ӟ说v来我和他q真有缘Q现在我q个目q是跟着他,而且公司里面唯一一个和我同月同日生的hQ真是很巧的巧合呢。他人挺好,很热?j),所以我也从他那学到?jin)很多东ѝ这ơ由于不是正式项目,所以ƈ没有什么基本设计书Q而是他给我们开?x)议的时候大致说?jin)下目的内容,每个画面的具体功能以及(qing)数据库表格的设计。由于这ơ项目规模很,d?2个画面的量,所以不采取Struts{FrameworkQ而是采用比较原始的JSP + JavaBeans的构造。我们每个hҎ(gu)他所跟我们讲解得功能写每个h自己分配到的画面的详l设计,其实也不真正的详细设计Q就是每个h把自己操作的那块的具体逻辑设计写出来,然后和他一起review一ơ,再开始编写代码。详l设计这里我做的很快Q当天下午就把自己分配到的两个画面业务逻辑什么的都写好了(jin)Q星期一布置得Q务,我星期三的时候全部编码自完毕提交,所以我的感觉就好像q个项目一瞬间q束了(jin)?br /> 日本每年财务l算是在3月䆾Q所以我们历来的?fn)惯是每?月和2月很忙,3月开始清Ԍ一直可以到5月左右会(x)接到个大目昨。所以接下来q正到?jin)我的空闲时期,没有目的压力,我可以自由学我自己喜Ƣ的东西。很久以前买?jin)本《精通EJB》第二版Q可是一直以来我觉得自己功力浅Q所以没有看Q这ơ我惌真学学EJB。虽然大家公认EJBq不是很好,不过历来受到批评的都是EJB中的Entity Bean部分Q这部分我觉得可以借助Hibernate来I补,而会(x)话Bean和消息驱动Bean则还是挺不错的。这ơ也当学一门技术,学习(fn)其好的东西,不是很好的东西就当作以后开发时候的借鉴。《精通EJB》这本书我的感觉是书质量比较好,不过译的水q稍微差?jin)点Q特别是有不错误,而且很低U的错误居然校对的时候都没有发现Q不能不说是个比较大的瑕c(din)但是它不失Z本EJB的好教材。从一开始的JNDI开始,然后讲解?jin)对象序列化QRMI-IIOP{等。这些以前都模模p糊Q或者是看过?jin)但是还不知道究竟有什么用。但是经q这ơ的学习(fn)以后Q对q些分布式系l比较需要的东西有了(jin)q一步的?jin)解Q感觉头脑中比较清晰Q究竟RMI是什么样的工作原理,怎样实现一个远E方法调用等{。接下来的EJB学习(fn)Q自qEclipse + Weblogic边看书边动手Q写?jin)一个个自己的学?fn)小E序。我个h感觉看书最好就是边看边自己动手写小学习(fn)E序Q这h光看不练能学到多得多的东ѝ学?jin)EJB后觉得脑子又清晰?jin)很多,看见一个案例后头脑中就?x)有好几U如何解决的Ҏ(gu)Q几U方法互相在头脑中自己比较,l过q样Q大大提高了(jin)自己的思维z跃性?br /> 3月中旬开始由于公司比较清Ԍ大部分h处于没有目的状态,所以公怋D办了(jin)W一届全公司范围的编E竞赛。公司只指定?jin)题目?f)一个日历系l,要求h日程C{功能,其余功能自由发挥。这ơ不再采用团队Ş式了(jin)Q而是采取各自为战的策略。自从培训过详细设计以后Q我头脑一直有如何写详l设计的思\Q这ơ我自己首先指定?jin)开发计划,保证自己控制自己的进度。接着q行?jin)需求分析,定?jin)我有哪些功能。然后在自己的基本设计中开始进行数据库l构设计。这ơ我军_采用Hibernate+Struts的结构进行编写,q样我的数据持久层操作大大简化,而且功能上也增强?jin)许多。DB设计好以后我开始DEMO画面的制作。说实话Q我工水^实在不怎么P可以说虽然一般网늚效果我都?x)自己做出来Q不q具体网设计成什么样我还真是一H不通。还好Dreamweaver我还算是比较熟l,自己捣鼓捣鼓也想摸象hDEMO画面l设计出来了(jin)Q不q美观不观我就觉得不怎么样了(jin)Q只是我能力有限Q也没办法设计的更好看,q个时候我感受C(jin)一个项目中工是多么重要啊。下面的详细设计自己写得很开?j),把需要的功能都用文字反映?jin)出来,q也我写成详细设计样子的第一份详l设计了(jin)Q做完挺有成感的。接下来首先构筑自己q个项目的FrameworkQ经q公怸个正式项目的z礼后,那两个项目的Framework我都认真研读q源代码的,所以我自己有了(jin)自己?j)里一套Framework的构造方法,特别是如何把Struts和Hibernatel合h的结构,自己有自q一些想法。在q次Framework构造中Q我没有复制M公司以前的代码段Q都是凭着自己对以前看的代码理解后写出来的。这ơ项目我觉得对自q提高也很大,首先ȝ?jin)自pl设计的能力。其ơ,自己虽然学习(fn)qHibernateQ不q从来没有这么样应用qHibernateQ这ơ让自己大大提升?jin)实践运用的l验。公司由于知道这时也没有一个真正的目使用HibernateQ所以这时的我也公司内部Hibernate使用l验最丰富的h?jin),q也Z(jin)后来我协助别的用了(jin)Hibernate的项目解决问题的原因。再ơ,我这ơ自己写?jin)FrameworkQ特别在批处理方面,q用?jin)许多刚学?x)理解掉的设计模式Q这些模式让我的E序更具有健壮性和可扩展性,让我在设计方面的能力大大提升?jin)?br /> q次的编E竞赛我写得比较认真Q代码量的确也很大,M码行数超q了(jin)3万行Q有效代码行C?万行以上。经q公怸家们的评定后Q我得到?jin)第一名,虽然没有什么奖品,不过肯定?jin)我q段旉以来的努力,我还是很开?j)的。而且q次的编E竞赛让我大大增加了(jin)~码的熟l度Q而且也在其中演练?jin)许多自己想出来的编E技巧,Z后的发展带来很大的好处?br /> ?月䆾开始,公司׃比较清闲Q所以部门内部开始进行各U培训。我们部门开展了(jin)3培训,W一就是编E能力培训,W二Ҏ(gu)Oracle数据库技术培训,W三Ҏ(gu)试技巧培训。在~程能力培训中,主要是把原来没有注意的l节采取大家讨论Q轮讲评方式q行的,虽然其中很多东西我原来都是知道的Q不q也有原来不清楚的地斏V而且l过?jin)这ơ互相讨论,更加加深了(jin)印象。在Oracle培训中我觉得收获很大Q这个Oracle培训采取?jin)传l的上课的模式,由我们开发小l中一个取得OCM的老员工给我们讲解。对于OracleQ我原来基本上就只会(x)写写SQL语句Q具体Oracle有什么特别的功能Q可以做什么我也不是很清楚。但是这ơ上课从Oracle的启动原理开始,让我知道Oracle中究竟有什么,Oracle数据库各部分在磁盘上是如何存攄QControl FileQRedo FileI竟是什么意思,在数据库中v什么作用,数据库是怎么依赖他们q行的,q有如何对Oracleq行pȝ理员别的理Q如何在不停止数据库q行的情况下q行数据库的更新、升U、备份等{。这些东西虽焉常有用,但在qx的开发是学不到的Q这ơ趁着q个Z(x)大大提升?jin)自己O(jin)racle的水qI感觉非常开?j)。数据库一向是我的弱项Q在上大学的时候我SQL语句能力只是一般,数据库管理配|什么基本一炚w不懂Q通过q次集中的培训,我觉得自q能力又进一步增Z(jin)Q弱也在慢慢退却。在三项培训中最后进行的试培训我承认我没有怎么认真dQ所以学?x)的也就是些试概念Q具体的试技巧什么的q是不怎么?x)。现在开发和试的结合性越来越高,看来要下下功夫,以免l淘汰咯?br /> 提了(jin)q段旉在公司的q展Q还没说自己的学?fn)呢Q这D|间正好看见中文版的《JUnit in Action》出版了(jin)Q在书的背后写着“如果没有看q这本书Q就不要对J2EEq行单元试”这句话。我早在d׃(jin)解了(jin)JUnit的强大功能,再加上Ant的话对于回归试是非怾利的。趁有时_(d)我便?月底4月初的时候开始看q本书。当时的我看《精通EJB》第二版看了(jin)一半,发现其中错误来多Q而且文字也有些地方不知所云了(jin)Q所以扔下不再浪Ҏ(gu)间看那本书,专心(j)攻读《JUnit In Action》。凭良心(j)_(d)Manning的这套In Action丛书的确很不错,从我先前看的《Hibernate In Action》英文版p看出来,其中对代码的~排非常方便读者,感觉可以很顺利的看到你所想看到的代码片断。这套《JUnit In Action》也是一P博文视点的纸张还是很好的Q排版用了(jin)Manning的风|阅读h很舒服,所以我d很快Q大概就两个多星期就d?jin)这?00多页的书。感觉的收获不,首先Q原来的自动化配|工具中只会(x)使用一个AntQ其他的基本没听说过Q在q本书上详细介绍?jin)Maven。听q书中的讲解以及(qing)自己的试验,的确觉得Maven功能很强大,不过感觉h配置比Ant要麻?ch),所以我自己的感觉是Ant在项目中q是?x)广泛应用,不过Maven在大型项目,特别是整个Site中有很大的用武之圎ͼ对于我们来说Q用的Ҏ(gu)都是很简单的Q掌握如何编写配|文件才是我们的关键?br /> 书对JUnit与Cactus在J2EE的测试手法上l了(jin)大量的事例,lh的感觉非常好QIn Actionq套丛书最大的优点在q里Q用实例代码片断让你q速了(jin)解一样东ѝ在实际工作中其实JUnit应用也是比较q泛的,特别如果采取试驱动开发的话,JUnit是必不可的一部分。在TagLib试QJSP单体试Q数据库试和EJB试都是我以前根本没有看q的东西。其实这ơ虽然学是学?x)?jin)Q不q真正做的时候还是要有个代码例子依葫芦画瓢。我惛_家肯定也都有q种感觉Q写E序的时候先找一D|点相似的代码片断Copyq来Q然后看看要修改什么地方,真正从头到尾自己用手写的代码片断是不多的Q除非你已经烂熟于心(j)。不q这本书快看完的时候,目又来?jin)?br /> q次做一个企业的MISpȝQ与以往不同的是Q这ơ客L(fng)?jin)一个比较庞大的基盘Q封装了(jin)q?00个TagQ基本上把各U各h可能遇到的操作都装到Tag里面?jin)。而且所有的画面昄{信息都是放在数据库的Table中,所以这ơ要求不写Q何程序代码,只是学会(x)使用好这些TagQ然后利用这些Tag写出Jsp面。一开始的时候还真是头疼Q这些Tag一个都不明白,而且文档不是非常齐全QTag的Source中注释也比较?yu),学?fn)h不是很方ѝ我们一?个h投入到这个项目的前期准备中,在第一个星期的学习(fn)中大家互相分配好个h学习(fn)的模块,随时互相交流。在后来的深入中发现q个目的业务逻辑操作?x)用PL/SQL以及(qing)存储q程来进行,对于我来_(d)PL/SQL是从来没有做q的东西Q就叫做一H不通,于是我需要从头开始学?fn)PL/SQLQ以?qing)如何编写存储过E。我从网上下?jin)一个PL/SQL的电(sh)子书c,然后在公司花?jin)一天时间进行学?fn),个h用的是Toad来调试PL/SQL的,虽然别h喜欢用PL/SQL Developer来进行开发,不过我还是比较钟爱ToadQ而且Toad的确功能也很强大Q用v来也很方便就是了(jin)。经q第一天的PL/SQL的学?fn),基本掌握了(jin)全部语法以及(qing)存储过E的书写格式{等Q开始能够写写非常简单的PL/SQL。接下来的两三天不断巩固熟练Q客户那里也发过来几本详l设计让我们l习(fn)着做一下。有?jin)实际的详细设计Q再加上我们之间互相交流Q我们提高的都很快,大概q了(jin)三四天,大家把基本详细设计代码~写完毕?jin),而且l过实际ȝQ我的PL/SQL~写存储q程的水q也大大提升Q已l可以满_发中的需要了(jin)?br /> q个目因ؓ(f)如果我们一开始做的能让客h意的话,后箋的项目将?x)比较庞大,所以Leader军_把我们Group比较I闲的其他h也先培训一下,让他们有Ҏ(gu)觉,C后正式开发的时候也能迅速进入状态,负责l他们培训的d也就交给?jin)我。说h是培训,其实也就是把大概程以及(qing)Ҏ(gu)通过一ơ会(x)议的形式告诉他们Q然后把我前面已l作好的那个画面作ؓ(f)他们的作业,要他们看着设计书自己把画面制作出来。这个时候也要放力_节了(jin)Q黄金周可以休息一个星期,xp得很Happy。劳动节的时候基本没有怎么学习(fn)Q只是先把XML-RPC仔细看了(jin)下,学会(x)?jin)如何去写一个XML-RPC的应用,接着E微看了(jin)点SOAPQ看得也不错Q只是些单的SOAP的例子而已Q那些SOAP的复杂东襉K没有看?br /> 很快׃一黄金周七天放假放完,八号开始上班,上班后就开始正式做节前定好的那个目Q这ơ性质属于试做Q也是人家先发一批设计书q来Q我们然后开始CodingQ大概做?jin)一周后Q我自己害了(jin)急性结膜炎Q只能回家休息,q次可真的是只能休息?jin),眼睛觉得特别涨,不要说?sh)脑了(jin)Q连书都不能看,看了(jin)眼睛q。所以在家就只能睡大觉,q了(jin)一周眼睛大概才复原Q可以去公司上班?jin)。回到公总后,Leader通知我说我不用去做上ơ那个项目了(jin)Q要我加入我们Group的一个新的项目,q个目比较大,当时q处于东京刚刚做好基本设计,我们从东京把d接下来,准备发回来做详细设计。我q去的时候项目才开始三四天Q基本上q没有做什么,q次我进入了(jin)详细设计制作组Q开始进行这个项目的详细设计的制作?br /> ׃我属于第一ơ在正式的项目中参与详细设计Q所以很多东襉K不明白,特别是业务上面的东西Q许多日语中的业务术语我Ҏ(gu)不明白,比如什么卖切,切替Q仕入什么的。看着基本设计书,感觉跟以前看详细设计书有很大的不同。具体的东西写的了(jin)Q业务流E逻辑框架什么的比较多,所以需要首先把业务内容都熟(zhn)了(jin)Q才可能写出详细设计来。这ơ的详细设计我也不是孤军奋战Q而是有一个进公司4q的老员工带着我一起做Q我的Q务很轻,不过重点是学?x)如何去写详l设计,也许下次再有一个比较大的项目,没有别人再带着我,而是我自׃个hd成详l设计了(jin)。大概详l设计写?0天左叻I我被通知当天把手上的一份详l设计写完,W二天进入方式设计小l进行方式的设计?br /> q入方式组以后Q接到的d是好几个编写DB操作斚w的代码自动化生成工具。由于这ơDB斚wq没有非常强制性的那种规约Q所以SQL语句的编写可以说比较随意Q这q我工L(fng)~写带来?jin)很大的隑ֺ和挑战。这ơ负责管理方式小l的Z然是q公总后经常带着我的那位技术专Ӟ所以也真算很y呢。写工具其实很对自n代码~写的提高也很有好处Q因为首先客户那里资料会(x)不断修改Q这些工具你Z(jin)以后客户更新资料后你能顺利更新工P你需要设计一个优良的FrameworkQ不一定需要多么复杂的FrameworkQ不q一定要量把程序各斚w的耦合度尽量降低,q样才有利于自己对工兯行扩展。紧接着很快Q项目代码编写开始了(jin)Q我的Q务算中等偏上Q有2个画面和一个批处理需要编写,复杂度还比较繁一炏V这ơ项目需要编写JUnitE序Q每天都要进行回归测试,保证代码Method的正性。JUnit虽然自己?x)用Q但是从来没有在真正的项目中使用Q所以在真正用的时候感觉有Ҏ(gu)x措。以前做JUnit从来都是觉得l个参数Q检一个返回值就好了(jin)Q其实不是那么回事,业务逻辑复杂?jin),自己需要做大量的Stub来模拟真实的Class的返回倹{设计一个好的Stub是比较困隄Q特别在数据库内Ҏ(gu)较丰富的时候,一张数据库Table有上百个域Q工作量可见一斑了(jin)。项目要?5q?月中旬才?x)结束,所以现在还在紧张的开发阶Dc(din)我写了(jin)JUnit的感觉就是难点不在如何去写JUnitE序Q而是如何去设计测试用例。对于我们这样不是以试?gu)n的程序员来说Q设计测试用例是很痛苦而且很艰隄事情Q估计有q相似经验的定会(x)表示赞同?br /> 当然我一边在紧张的做目Q对于书本的学习(fn)也没有闲着。这D|间抓紧把侯捷的Word排版艺术扫了(jin)一遍,看完觉得收获颇丰。虽然我以前觉得我在Word上用得挺不错Q日常的一些操作什么的我都?x),不过看这本书的中间我发现我还是有很多地方不?x)的,也学C(jin)不少东西Q在以后的Word排版中会(x)很受到好处。由于项目用C(jin)Spring知识Q所以我也看?jin)网l上那个传q泛的Spring开发指南的PDF看了(jin)一遍,感觉长了(jin)见识Q对IOC以及(qing)DI有了(jin)q一步的?jin)解Q也理解?jin)?f)什么需要采用IOC以及(qing)DI。不q这个也没有深入下去仔细看,以后{项目稍微空闲一点的时候一定再把Hibernate和Spring好好看一下,学习(fn)人家的设计理念,提高自己能力。对?jin),也许最重要的是我最q在看一本书Q就是《J2EE核心(j)模式》的W二版,我当时原来准备看?sh)子版的q本《Core J2EE Patterns》的Q不q突然在书店发现q本书的中文版出来了(jin)Q而且译者有熊节的名字,也就是跟侯捷一L(fng)译《重构——改善既有代码的设计》的那个译者,我比较相信他译的水qI于是买回来看Q虽焉目非常紧张,我一个月上周末需要加班在100个小时左右的样子Q但是我怿旉是vl里的水Q只要去挤,肯定?x)有的。所以我到现在大概看?周的样子Q已l看?00多页Q而且感觉自己的设计视野也开阔了(jin)许多Q这本书的确很好Q把J2EE中常用的一些模块原理都说了(jin)出来Q说明了(jin)Z么这么做好,q么做如何减了(jin)耦合性,提高?jin)可l护性等{,MQ有1q以上J2EE开发经验而且觉得自己对J2EE有了(jin)比较好的?jin)解的开发h员我强烈推荐看这本书。看?jin)这本书以后我都在回想以前设计的一些框Ӟ一些模块,觉得自己有很多地方当时设计的时候觉得很_yQ不q却属于弄y成拙Q加大了(jin)模块的耦合性,所以在修改的时候比较难于下手?/font>

]]>
վ֩ģ壺
պƷרַ|
ˬִ̼վ|
ҹƵ|
˳վ߹ۿ|
˳Ƶ|
91þó|
þѹƷһ|
žžþþƷѿС˵|
Ʒ۲ӰԺ|
ƷƬva|
ŮƵһ|
þþþAVƬ|
Ʒþ㽶߿ۿ|
Ʒ߲|
Ƶ߹ۿ|
Ƶһ|
99ƵоƷƵѹۿ|
ɫѹۿ|
˳߲VA|
߲ŹƵ|
ݾ߹ۿվ|
Ƶ˹Ʒվ|
ɫƵۿһ|
AVһɫ|
Ļ뾫ƷԴþ|
ֻߵӰbd|
ɵӰ߹ۿ|
Ӱһ?|
һҳĻ|
ձ㽶ƵۿƵ|
ĻۺϾþ|
ٸĻӰ|
ƷƬ|
avպavۺ|
ŷͽȺ|
gayˬˬƵ|
ڵһ|
ƷƵѲ|
Ƶ߹ۿ
|
100018ѷ˸|
97avƵ|