ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>国语自产精品视频在线看8查询8 ,粉嫩av四季av绯色av第一区,久久99国产精品久久99http://www.aygfsteel.com/bingle/category/14555.html最大的喜悦åQŒèŽ«˜q‡äºŽæŠ€æœ¯çš„˜q›æ­¥ åQ? 坚定梦想åQŒæ¯•生追æ±?zh-cnTue, 27 Feb 2007 12:43:57 GMTTue, 27 Feb 2007 12:43:57 GMT60[原]ANT学习体会http://www.aygfsteel.com/bingle/archive/2007/01/23/95479.html冰浪冰浪Tue, 23 Jan 2007 02:52:00 GMThttp://www.aygfsteel.com/bingle/archive/2007/01/23/95479.htmlhttp://www.aygfsteel.com/bingle/comments/95479.htmlhttp://www.aygfsteel.com/bingle/archive/2007/01/23/95479.html#Feedback6http://www.aygfsteel.com/bingle/comments/commentRss/95479.htmlhttp://www.aygfsteel.com/bingle/services/trackbacks/95479.html阅读全文

冰浪 2007-01-23 10:52 发表评论
]]>
Java标准受到挑战 未来ç”Þp°ä¸Õd®°http://www.aygfsteel.com/bingle/archive/2007/01/18/94687.html冰浪冰浪Thu, 18 Jan 2007 08:06:00 GMThttp://www.aygfsteel.com/bingle/archive/2007/01/18/94687.htmlhttp://www.aygfsteel.com/bingle/comments/94687.htmlhttp://www.aygfsteel.com/bingle/archive/2007/01/18/94687.html#Feedback1http://www.aygfsteel.com/bingle/comments/commentRss/94687.htmlhttp://www.aygfsteel.com/bingle/services/trackbacks/94687.html阅读全文

冰浪 2007-01-18 16:06 发表评论
]]>
再次转脓åQšã€Šæˆ‘çš„Java学习之èµ\ã€?/title><link>http://www.aygfsteel.com/bingle/archive/2006/08/28/66064.html</link><dc:creator>冰浪</dc:creator><author>冰浪</author><pubDate>Sun, 27 Aug 2006 18:03:00 GMT</pubDate><guid>http://www.aygfsteel.com/bingle/archive/2006/08/28/66064.html</guid><wfw:comment>http://www.aygfsteel.com/bingle/comments/66064.html</wfw:comment><comments>http://www.aygfsteel.com/bingle/archive/2006/08/28/66064.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/bingle/comments/commentRss/66064.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/bingle/services/trackbacks/66064.html</trackback:ping><description><![CDATA[ <font size="2">˜q™ç¯‡æ–‡ç« æ˜¯æˆ‘至今最喜欢文章之一åQŒæœ‰ç‚¹ç±»ä¼égºŽã€Šä¸€ä¸ªç¨‹åºå‘˜çš„奋斗历½E‹ã€‹ï¼Œç›¸æ¯”之下åQŒæˆ‘æ›´å–œ‹Æ¢æ­¤½‹‡ã€‚因为本文章是关于java½E‹åºå‘˜çš„¾låކåQŒå¯¹äºŽè‡ªå·±æœ‰å¤ªå¤šå¯å€Ÿé‰´çš„东è¥Ñ€‚è¿™½‹‡æ–‡ç« æˆ‘重读了N遍,是我Java学习路上的指引。深深感谢文章的作者!<br /><br /><br />    ˜q™é‡Œè¯´è¯´æˆ‘çš„¾låŽ†å§ã€‚å¤§å­¦å‰ä»¥åŠå¤§å­¦å‰é¢ä¸‰å¹´çš„ç»åŽ†å°±ä¸è¯´äº†ï¼Œå› äØ“å¤§å­¦å‰çš„é«˜ä¸­ž®±æ˜¯å¥½å¥½å­¦ä¹ åQŒå¤§å­¦å‰ä¸‰å¹´ž®±æ˜¯æ·¯‚¿‡æ¥çš„ã€?br />    我上的学校还½Ž—可以,虽然不是北大清华˜q™æ ·½W¬ä¸€‹¹åç‰Œå¤§å­¦ï¼Œä½†è‡³ž®‘也½Ž—中国的½W¬äºŒ‹¹åç‰Œå¤§å­¦äº†ã€‚大学中前面三年都陪伴着游戏˜q‡åŽ»åQŒæ‰€å­¦åˆ°çš„只是些计算机基¼‹€çŸ¥è¯†ã€‚到大四后我½Hç„¶å‘现ž®×ƒ¸šçš„问题就在眼前,而自å·×ƒ¼¼ä¹Žä»€ä¹ˆä¹Ÿä¸ä¼šåQŒäºŽæ˜¯å¼€å§‹çœ‹ä¹¦ã€‚最一开始重点看的是C++åQŒå¯æ˜¯åŽæ¥è‡ªä»Žçœ‹äº†ä¸€æœ¬J2ME的书以后被Java所吸引。当时虽然学校上˜q‡Java评¡¨‹åQŒä½†æ˜¯è‡ªå·×ƒ¹Ÿåªæ˜¯å­¦äº†å¾ˆå°‘的皮毛,也就只会写写Hello World和什么加减法之类很简单的½E‹åºåQŒè¿žAPI都知道没有几个,比如说字½W¦ä¸²é•¿åº¦çš„API我都不知道。所以刚开始自己学J2ME的时候屡屡受挫,自己也明白自å·Þqš„¾~ºç‚¹åQŒå†³å®šä»ŽJ2SE开始好好补上ã€?br />    åˆšå¼€å§‹äØ“äº†ç†Ÿæ‚‰Java开发环境,ä¹îCº†æœ¬JBuilder开发的教程åQŒåƈ且在自己的本本上安装了JBuilder˜q›è¡Œæ¼”练。当时的我连JavaDoc都不知道åQŒæ¯‹Æ¡ç©¶ç«Ÿä»€ä¹ˆAPI能做什么事情一点头¾lªéƒ½æ²¡æœ‰åQŒè¿˜ä¸çŸ¥é“哪里去查,后来同学告诉我有个JavaDoc˜q™ä¸ªä¸œè¥¿åQŒæˆ‘˜q˜å…´å¥‹ä¸å·ÔŒ¼Œè§‰å¾—自己被从黑暗中拉回来了。一开始ä‹É用JBuilder的时候,马上ä¸ÞZ¹‹æ‰€å¸å¼•åQŒæœ‰ä¸¤ä¸ªåŽŸå› åQŒç¬¬ä¸€æ˜¯å› ä¸ºå®ƒè‡ªåŠ¨æ ‡å‡ºè¯­æ³•é”™è¯¯åQŒè¾¹å†™ä»£ç è¾¹æç¤ºä½ ä»€ä¹ˆåœ°æ–¹è¯­æ³•出错,记得以前使用VC++的时候,每次½E‹åºå†™å¥½åŽå…ˆ¾~–译åQŒç„¶åŽå†BuildåQŒå†˜qè¡ŒåQŒè¿™å…¶ä¸­æ¯ä¸ªæ­¥éª¤éƒ½ä¼šå‡ÞZ¸ž®‘错误。特别是在编译的时候,写个200多行的程序一‹Æ¡ç¼–译下来就æœ?00多个错误åQŒç»“果每‹Æ¡èŠ±åœ¨è¿™ä¸Šé¢çš„å·¥å¤«éƒ½è¦å¥½é•¿æ—¶é—´ã€‚è€ŒJBuilder使用了即时语法分析,所以基本上½E‹åºå†™å®ŒåQŒå°±å¯ä»¥çœç•¥è°ƒè¯•语法错误的步骤了。第二个原因是可以自动提½CÞZ»£ç ï¼Œ˜q™ä¸ªåŠŸèƒ½å¯ä»¥è®©ä½ ˜q…速熟悉APIåQŒå…å¾—每‹Æ¡åŽ»æŸ¥å¸®åŠ©æ–‡æ¡£é‚£ä¹ˆéº»çƒ¦ï¼Œæˆ‘å°±æ˜¯è¿™ä¹ˆå¾ˆå¿«æŽŒæ¡äº†è®¸å¤šAPIçš„ã€?br />å¯èƒ½å¤§å®¶ä¼šé—®æˆ‘äØ“ä»€ä¹ˆä¸€å¼€å§‹ä¸å­¦ä¹ ã€ŠJava¾~–程思想》,的确˜q™æœ¬ä¹¦æˆ‘们宿舍就有好几本åQŒä¸˜q‡å¤§å®¶æ™®éåæ˜ æ•ˆæžœä¸å¥½ï¼Œåˆ°æœ€åŽéƒ½ä¸çŸ¥é“说的是什么,所以我也没敢看ã€?br />    ¾lè¿‡20天左右的学习åQŒå¯¹Java有了更进一步的了解åQŒç†Ÿæ‚‰äº†ä¸å°‘API函数åQŒç”±äºŽåœ¨é‚£æœ¬ä¹¦ä¸Šå†™å¼€å‘SWING占了不少½‹‡å¹…åQŒæ‰€ä»¥ä¹Ÿå¯¹Swing的开发了解了不少。看完以后因为同学说Java的灵™ì‚就是多¾U¿ç¨‹¾~–程åQŒæ‰€ä»¥å¼€å§‹çœ‹Oreilly的《Java¾U¿ç¨‹ã€‹ã€‚记得在大学中操作系¾lŸè¿™é—¨è¯¾æˆ‘们ž®±æåˆ°è¿‡¾U¿ç¨‹çš„çŸ¥è¯†ã€‚åÆˆä¸”è¯¾æœ¬ä¸Šž®±æ˜¯ç”¨Java实现的,当时有了一点点概念åQŒä½†˜q™æ¬¡çœ‹è¿™æœ¬ä¸“门说¾U¿ç¨‹çš„书后才发现我原来了解的那些æ ÒŽœ¬æ˜¯ä»€ä¹ˆéƒ½ä¸ç®—åQˆå½“ç„Óž¼ŒçŽ°åœ¨å›žæƒ³èµäh¥åQŒæˆ‘那时看书学到的也只是很简单的皮毛而已åQ‰ã€‚看完这本书后我自己学会在我的JBuilder下开发很½Ž€å•的多线½E‹ç¨‹åºï¼Œòq¶ä¸”模拟¾U¿ç¨‹å†²çªåQŒç­‰å¾…等情况。当时看着自己写的一两百行程序可以顺利执行,那种兴奋劲就别提了。这本书我看得也很快åQŒå¤§æ¦‚å°±èŠ×ƒº†3个星期看完ã€?br />    ¾lè¿‡ä¸Šé¢çš„学习,自己相比以前来说提升了不ž®‘,˜q™æ—¶å€™è‡ªå·×ƒ¹Ÿæ‰‘Öˆ°äº†å·¥ä½œï¼Œæ˜¯åšJ2EEå¯ÒŽ—¥å¤–包的,所以更加坚定了努力学习Java的信心ã€?br />    在上面写的程序中åQŒæˆ‘自己写程序没有规范性,在代码编写的时候自å·Þqš„盲点特别多,˜q˜å®¹æ˜“犯低çñ”å¤Þp¯¯ã€‚同学有一个《Effective Java》中文版åQŒå¯æ˜¯æˆ‘看了几页发现自己æ ÒŽœ¬çœ‹ä¸æ‡‚,里面什么静态工厂啊åQŒä»€ä¹ˆå•例模式什么的æ ÒŽœ¬ä¸çŸ¥é“什么东东。我知道自己目前的水òqŒ™¿˜ä¸å¤ŸåQŒæ‰€ä»¥å†³å®šæ”¾ä¸‹è¿™æœ¬ä¹¦åQŒåŽ»å¯ÀL‰¾åˆ«çš„适合我的书看。这个时候我看到了候捷先生¾˜»è¯‘的《Practical Java》一书,当时是刚刚上的书架。这本书我在书店¾˜ÖMº†ä¸‹ç›®å½•后ž®±æ„Ÿè§‰å¦‚莯‚‡³å®ï¼Œé©¬ä¸Šä¹°å›žå®Óž¼Œåœ¨å›žå®¶çš„å…¬èžR上就贪婪地读èµäh¥ã€‚这本书不算很厚åQŒä½†æ˜¯è‡ªå·Þqœ‹å¾—却很认真很仔细åQŒä¹Ÿæ˜Žç™½äº†ä¸ž®‘东西,比如Java中等号和equals()æ–ÒŽ³•的区别,½I¶ç«Ÿä»€ä¹ˆæ—¶å€™ç”¨ä»€ä¹ˆã€‚还有Exception处理机制åQŒä»¥å‰ä¸çŸ¥é“什么叫ExceptionåQŒåªæ˜¯JBuilder提示我要我抛出Exception我再抛出ExceptionåQŒè‡ªå·Þp§‰å¾—这东西基本没什么用呢。但是看了这本书后我改变了看法,我发现Exception是个很好的东西,可以˜q…速把½E‹åºä»Žæ­£å¸¸çŠ¶æ€å’Œå¼‚å¸¸çŠ¶æ€åŒºåˆ†å¼€æ¥ï¼Œå³ä‹É而准¼‹®åœ°åœ¨æŒ‡å®šä½¾|®å¾—到处理。那时自å·×ƒ¹Ÿæœ‰äº†ä»¥åŽå†™ç¨‹åºçš„æ—¶å€™æ³¨æ„ç¼–写异常处理部分的æƒÏx³•。《Practical Java》这本书虽然不厚åQŒä½†æ˜¯æˆ‘å´éžå¸æ€»”¾l†åœ°åŽÈœ‹äº†ï¼Œå¤§æ¦‚èŠ×ƒº†1个月旉™—´åQŒæˆ‘把这本书完全消化了下厅R€?br />    当时听说Java在网¾lœä¸Šçš„应用非常广åQŒæˆ‘也不知道½I¶ç«Ÿæ˜¯ä»€ä¹ˆåº”用,我于是买了Oreilly的《Java¾|‘络¾~–程》这本书。这本书虽然很厚åQŒå…¶å®žå‰åŠéƒ¨åˆ†å†…容不是很复杂åQŒåŽåŠéƒ¨åˆ†å†™ä»€ä¹ˆRMI的东西我也看不大懂,只能理解个概å¿üc€‚通过˜q™æœ¬ä¹¦ï¼Œæˆ‘了解了HTTP协议½I¶ç«Ÿæ˜¯ä»€ä¹ˆä¸€ä¸ªä¸œè¥¿ï¼Œåœ¨å®ƒä¸Šé¢åˆ©ç”¨Java传输数据该如何做åQŒçŸ¥é“了什么是RequeståQŒä»€ä¹ˆæ˜¯Responseã€‚è¿™ä¹ŸäØ“ä»¥åŽå¼€å§‹æˆ‘çš„J2EE之旅打下了很好的基础。当时自å·×ƒ¾ç„¶æ˜¯è¾¹çœ‹ä¹¦è¾¹è‡ªå·±å†™ä»£ç æ¥éªŒè¯åQŒè‡ªå·±å†™äº†ä¸ªæœåŠ¡å™¨ç«¯Socket和客æˆïL«¯SocketåQŒæˆåŠŸè¿›è¡Œäº†é€šä¿¡åQŒåˆåœ¨ä¸Šé¢åŠ ä¸Šäº†å®‰å…¨Socket内容åQŒå®žçŽîCº†SSL通信。当时我把写的这个又套上了Swing的外壻I¼Œ˜q˜å’ŒåŒå­¦æ‹¿è¿™ä¸ªä¼ æ–‡äšg呢。不˜q‡å½“时也没有考虑˜q‡ä»€ä¹ˆæ ¡éªŒç ä¹‹ç±»çš„东西,所以传传小文äšg˜q˜æ˜¯å¯ä»¥çš„,文äšg½Eå¾®ä¸€å¤§ä¸€ç‚¹ï¼Œä¼ è¿‡åŽÈš„æ–‡äšgæ€ÀL˜¯ä¸å¯¹å¤ß_¼Œå’Œæˆ‘åŽŸæ¥çš„æ–‡ä»¶ç»å¸æ€¼šå‡ÞZ¸€äº›å·®å¼‚ï¼Œå¯ÆD‡´æ–‡äšg打不开ã€?br />    《Java¾|‘络¾~–程》这本书看了不少旉™—´åQŒå› ä¸ÞZ¹¦æ¯”较厚,东西也比较多åQŒä¸˜q‡é™¤äº†åŽé¢çš„一些知识以外,其他的还是容易理解的。大概花äº?个月左右的时间看完。看完后åQŒæ—¶é—´ä¹ŸåˆîCº†2004òq´çš„3月。我也轮到开始我毕业设计的时候了。我们的毕业设计导师都还不错åQŒç»™ä½ è‡ªå·±é€‰ä¸ªè¯ùN¢˜åQŒæˆ‘选的是一个B/S¾l“构的在¾U¿ç®€åŽ†å¤„ç†ç³»¾lŸï¼Œæ­£å¥½å’Œæˆ‘所学和下面所工作的东西是一条èµ\上的了。这时我觉得我应该往B/S¾l“构上è{了,当时在选择先看Servlet˜q˜æ˜¯å…ˆçœ‹JSP上犹豫不冟뀂最¾lˆå†³å®šå…ˆçœ‹ServletåQŒåŽæ¥ä¹Ÿè¯æ˜Žäº†æˆ‘的决定是对的åQŒæˆ‘在熟悉了Servlet后再学JSP是非常容易的åQŒåŸºæœ¬ä¸Šæ ÒŽœ¬æ²¡æœ‰é‡åˆ°ä»€ä¹ˆéš¾ç‚V€?br /> 可能有äh会觉得我看了好多Oreilly的书åQŒè™½ç„¶æˆ‘不能说Oreilly本本都是好书åQŒä¸˜q‡ç›¸å¯ÒŽ¥è¯ß_¼Œå¥½ä¹¦çš„æ¦‚率总超˜q‡è®¸å¤šå…¶ä»–的出版½C¾ï¼Œè€Œä¸”体系比较齐全。我看得几本书我都觉得还不错。现说说下面˜q™æœ¬æˆ‘å­¦Servlet时候看的《Java Servlet¾~–程》来说吧åQŒå¾ˆä¸é”™çš„一本书åQŒè®©æˆ‘迅速知道了什么是ServletåQŒç„¶åŽé€šè¿‡æœ€½Ž€å•的实例åQŒè®©ä½ çŸ¥é“了Servlet如何˜qè¡Œçš„,跟HTTP协议是如何配合的åQŒå¦‚何返回HTML形式的文本,XML配置½W¦è¯¥å¦‚何写,½I¶ç«Ÿæ¯ä¸ªå…ƒç´ æ˜¯ä»€ä¹ˆæ„æ€ç­‰½{‰ã€‚由于我原来有一定的XML基础åQˆçŸ¥é“XML语法各种格式的含义而已åQ‰ï¼Œæ‰€ä»¥æŽŒæ¡è“v来还½Ž—比较快。通过˜q™æœ¬ä¹¦ï¼Œæˆ‘知道了如何动态生成HTML文档åQŒçŸ¥é“如何把一个Servlet映射åˆîC¸€ä¸ªè™šæ‹Ÿçš„地址。在后半部分写到了数据库操作部分åQŒæˆ‘å¯ÒŽ•°æ®åº“的了解其实也仅限于原来大学课本上的《数据库¾pȝ»ŸåŽŸç†ã€‹ï¼Œå¦‚ä½•ä»Žç¨‹åºå’Œæ•°æ®åº“äº¤äº’æ˜¯ä¸€½Hä¸é€šã€‚通过数据库操作这章,我知道了如何使用JDBC语句如何¾~–写åQŒå¤§å®¶ä¸è¦ç¬‘åQŒå¯¹äºŽå½“初一个新手来è¯ß_¼Œ˜q™ä¸ªçœŸæ˜¯ä¸€ä¸ªå…¨æ–°çš„领域åQŒåšä»€ä¹ˆäº‹æƒ…都需要Sample来对照,跟着依葫芦画瓢吧åQŒå…¶å®žçŽ°åœ¨çš„è½¯äšgå¼€å‘ä¹Ÿæ˜¯è¿™æ øP¼Œæˆ‘想现在大家谁能直接手写Struts或者Hibernate的配¾|®æ–‡ä»‰™ƒ½å¾ˆéš¾å§ã€‚闲话少è¯ß_¼Œå¤§æ¦‚˜q™ä¸ªæ—¶å€™ï¼Œæˆ‘对毕业设计的雏形有了点思想上的概念。看完了《Java Servlet¾~–程》后紧接着ž®±åˆçœ‹Oreilly的《JSP设计》,ç”׃ºŽæœ‰äº†Servlet的基¼‹€åQŒå­¦èµ·JSP特别快。当时没有着重看Tag的自定义设计åQŒå…‰çœ‹äº†JSP的其他东西,¾lˆäºŽåœ¨äº”一节后把毕业设计都写完了,当时æ€ÖM»£ç é‡æ˜?000多行åQŒç¬¬ä¸€‹Æ¡å†™˜q™ä¹ˆå¤šä»£ç çš„½E‹åºè§‰å¾—很有成就感。现在看èµäh¥é‚£æ—¶åšçš„æ˜¯æ ‡å‡†åžƒåœ¾ï¼Œä½†æ˜¯å½“时觉得˜q˜æ˜¯å¾ˆä¸é”™ã€‚用了Servlet + JSP。其实Servlet也不是用来当控制器的åQŒè€Œæ˜¯å’ŒJSP做的差不多功能,都是作view的功能的。很快,毕业设计交差˜q‡åŽ»äº†ï¼Œå†™å†™æ¯•ä¸šè®ºæ–‡åQŒå‡†å¤‡ç­”辩。在˜q™ä¸ª˜q‡ç¨‹ä¸­ï¼Œæˆ‘又一‹Æ¡è€ƒè™‘自己下面该看什么书ã€?br /> ˜q™æ¬¡æˆ‘又看中了侯æïL¿»è¯‘的一本巨著,也就是鼎鼎大名的Martin Fowler写的《重构——改善既有代码的设计》这本书。刚开始听见重构这个名字,总觉得非帔R«˜æ·±ï¼ŒåŠ ä¸Šéƒ½è¯„è®ø™¯´é‡æž„是和设计模式齐名的东东,感觉更加高深恐怖了。大概在6月初我开始看了重构,刚开始看的时候虽然抱着试试看的心态,不过˜q˜æ˜¯éžå¸¸è®¤çœŸçš„。但是,让我颇感意外的是重构òq¶ä¸æ˜¯å¾ˆéš¾ï¼Œè‡›_°‘˜q™æœ¬ä¹¦ä¸­è¯´çš„非常通俗易懂åQŒé€šè¿‡å¤§é‡çš„实例让你觉得重构是¿Uå¾ˆ½Ž€å•很基本的技术。虽然我看完了重构以后在真实的代码编写中很少直接按照上面代码所说的æ–ÒŽ³•˜q›è¡Œé‡æž„代码åQŒåŸºæœ¬ä¸Šéƒ½æ˜¯é€šè¿‡IDE来重构代码,但是却大大提升了自己¾~–程思维åQŒä»Žæ­¤ä»¥åŽå†™ä»£ç ž®±å¾ˆž®‘瞻前顾后了åQŒå› ä¸ºæˆ‘拥有了重构这个工兗÷€‚这本书有点厚,再加上中间有½{”辩åQŒæ‹æ¯•业照,以及毕业手箋½{‰ç­‰åQŒè¿™æœ¬ä¹¦æˆ‘花了一个半月看完。我看书的速度也不½Ž—å¿«åQŒä¸˜q‡æˆ‘看书比较有恒心,不像有部分äh看几天就不想看了åQŒæˆ‘能坚持天天看åQŒæ‰€ä»¥æ€Èš„来说˜q˜æ˜¯ä¸æ…¢çš„。我计算˜q‡ï¼Œå¦‚果我每天看10™åµä¹¦åQŒåšæŒä¸‹åŽ»ï¼Œé‚£ä¸€òq´å°±æ˜?650™åµä¹¦åQŒåã^均一本书365™å‰|¥½Ž—,1òq´å°±æ˜?0本。如果这10本书中有8本不属于垃圾书籍åQŒé‚£ä¹ˆä½ ˜q™å¹´ž®Þpƒ½æœ‰éžå¸¸å¤§çš„æé«˜äº†ã€?br /> 看重构这本书中间我也抽了一ŒD‰|—¶é—´çœ‹äº†ä¸¤æœ¬å…¶ä»–的书,½W¬ä¸€æœ¬æ˜¯ã€ŠJava夜未眠》,æŒÞZ¸é”™çš„一本书åQŒè™½ç„¶æ˜¯æ•£æ–‡åQŒä½†æ˜¯è¿˜æ˜¯èƒ½è®©ä½ æ˜Žç™½ä¸å°‘道理åQŒå—益匪‹¹…。另外一本就是李¾l´çš„《Borland传奇》,ç”׃ºŽè‡ªå·±å½“时最喜欢用的工具ž®±æ˜¯JBuilderåQŒæ‰€ä»¥ä¹Ÿå¯¹Borland公司非常敬äÔ’åQŒç‰¹åˆ«å¯¹å®‰å¯d‹‚®ï¼Œ½Ž€ç›´å°±™å¶ç¤¼è†œæ‹œå•Šï¼Œå“ˆå“ˆã€‚这本书写得很精彩,写了Borland公司二十òq´æ¥çš„血泪史åQŒå†™äº†å¦‚何跟微èÊY斗争åQŒå¦‚何在微èÊYå’ŒIBM的夹¾~ä¸­ç”Ÿå­˜ã€‚当ç„Óž¼Œä¹Ÿæœ‰å¾ˆå¤šçš„对于技术方面作者李¾l´è‡ªå·Þqš„见解åQŒçœ‹äº†ä¼šæœ‰ä¸ž®‘同感的。就˜q™æ ·åQŒç£¨¼‚¨è¹­íy­åœ°æŠŠé‡æž„看完了ã€?br />     当看完了《重构》这本书之后åQŒæˆ‘也开始去公司报到上班了。可以看出来åQŒæˆ‘当时工作的时候水òq³ä¹Ÿå¾ˆæœ‰é™ï¼Œä½†æ€ÀL¯”一òq´å‰è¦å¥½ä¸å°‘åQŒè‡³ž®‘很多东襉Kƒ½å·²ç»çŸ¥é“了。那时外面极限编½E‹å¬çš„æ¯”较多åQŒè‡ªå·×ƒ¹ŸåŽÖM¹¦åº—买了本《Java极限¾~–程》回来看åQŒçŽ°åœ¨æƒ³æƒ³ç®—æ˜¯æˆ‘çœ‹å¾—½W¬ä¸€æœ¬åžƒåœ¾ä¹¦¾cäº†ã€‚不˜q‡ä¹Ÿæ˜¯æœ‰æ”¶èŽ·çš„ï¼Œ˜q™æœ¬ä¹¦æžé™ç¼–½E‹ä¹Ÿž®Þp¯´äº†ç‚¹æ¦‚念åQŒç„¶åŽå°±å†™äº†ä¸å°‘工具的ä‹É用方法。在看《重构》中对JUnit有了点认识,不过只是皮毛中的皮毛。看了这本《Java极限¾~–程》后对JUnitçš„ä‹É用又了解了不ž®‘皮毛,对于Cactus有了点了解,对Ant了解了不ž®‘,臛_°‘可以自己写出自己需要的配置文äšg了,òq¶ä¸”可以¾l“合JUnit生成‹¹‹è¯•Report。由于我åŽÈš„是日企,做对日外包的åQŒæ‰€ä»¥å…¬å¸å¼€å§‹åŸ¹è®­æ—¥æœ¬è¯­åQŒç”¨çš„æ˜¯ã€Šæ ‡å‡†æ—¥æœ¬è¯­ã€‹è¿™å¥—教材。我于是边学日语边看技术,大概2个星期左åÏxˆ‘把那本《Java极限¾~–程》初步看完后ž®±æ‰”在了安™‡Œã€‚这时的我已¾lå¼€å§‹ä¼šç”¨Ant了,觉得是步入J2EE的重要一步ã€?br />     很快啃掉那本垃圾书以后又看了本和Java不是非常有关的书åQšã€Šç¨‹åºå‘˜ä¿®ç‚¼ä¹‹é“——从ž®å·¥åˆîC¸“家》,原因其实很简单,大学同学都说˜q™æœ¬ä¹¦æ˜¯¾lå…¸ä¹¦ï¼Œçœ‹ä¹¦˜q™ä¸œè¥¿ï¼Œåˆ«äh的评仯‚¿˜æ˜¯èƒ½èµ·ä¸ž®‘作用的。这本书字数不是很多åQŒä¸˜q‡æŽ’ç‰ˆçš„æ—¶å€™æ¯”è¾ƒåˆ†æ•£ï¼Œå¯ÆD‡´ä¹¦æœ¬æœ‰ç‚¹åŽšï¼Œå‘µå‘µåQŒå¯èƒ½ä¹Ÿ½Ž—出版社赚钱的一¿Uæ–¹æ³•吧。不˜q‡æ€Èš„来说åQŒæˆ‘觉得出版½C„¡º¸å¼ è´¨é‡æœ€å¥½çš„æ˜¯ç”µå­å·¥ä¸šå‡ºç‰ˆç¤¾åQŒå…¶‹Æ¡æ˜¯ä¸­å›½ç”µåŠ›å‡ºç‰ˆ½C¾ï¼Œæœ€çƒ‚的恐怕就是机械工业出版社了,机械工业出版½C¾æœ‰ž®‘量书纸张还能说˜q‡åŽ»åQŒä½†æœ‰ä¸ž®‘简直让äºÞZ¸å¾—不有脾气啊åQŒçº¸å¼ è–„得感觉和写毛½W”字的宣¾U”Rƒ½å·®ä¸å¤šäº†ã€‚这本电子工业出版社的书¾U¸å¼ è´¨é‡çš„确不错åQŒä¸˜q‡ä¹Ÿè®¸æ˜¯å› äؓ我功力尚‹¹…,所以这本书虽然都看懂了åQŒä½†æ˜¯æ·±æœ‰æ„Ÿè§¦åƈ且铭è®îCºŽå¿ƒçš„æ²¡æœ‰å‡ ä¸ªåQŒçŽ°åœ¨å†å›žæƒ³åQŒä¹Ÿåªè®°å¾—èÊY件模块设计时要正交等½{‰å°‘数几点了。这本书ç”׃ºŽå†…容不是非常多,所以我ž®Þqœ‹äº†åŠä¸ªæœˆä¸åˆ°æžå®šã€‚这时的我开发IDE已经转移åˆîCº†Eclipse上,毕竟商业开发用D版有点说不过去,而且公司也怕查åQŒæ‰€ä»¥ä¸å…è®¸ç”¨JBuilderåQŒé¼“励大家用Eclipse。我用了一ŒD‰|—¶é—´çš„Eclipse后,从一开始的不适应到后来觉得Eclipse很方便ä‹É用,JBuilder比Eclipse多的ž®±æ˜¯ä¸€äº›æ ¹æ®ä¸åŒç±»åž‹å¼€å‘的模版而已åQŒè€Œè¿™äº›å¯ä»¥ç”±Eclipse的插件来弥补。到了这æ—Óž¼Œæˆ‘觉得我的Java基础应该½Ž—还可以的了åQŒAPI也熟悉了非常多。我觉得看《Effective Java》的时机成熟了ã€?br />     ç”׃ºŽå¤§å­¦å·²ç»æ¯•业了,所以也不会有同学的《Effective Java》放在边上让我看˜q™æ ·çš„好事出玎ͼŒè€è€å®žå®žåœ°åŽÖMº†ä¹¦åº—ä¹îCº†æœ¬ã€ŠEffective Javaã€‹ä¸­æ–‡ç‰ˆå›žæ¥ç ”è¯»ã€‚å‘µå‘µï¼Œå¤§å®¶ä¹Ÿè®¸ä¼šé—®æˆ‘äØ“ä»€ä¹ˆä¸ä¹°æœ¬E文的看,虽然我大学早早也把英è¯?¾U§è¿‡äº†ï¼Œè€Œä¸”大学中不ž®‘计½Ž—机专业评¡¨‹æ•™æä¹Ÿæ˜¯E文的åQŒå½“æ—¶äØ“äº†è€ƒè¯•ä¹Ÿè®¤çœŸè¯»äº†ã€‚ä½†æ˜¯æ¯•ç«Ÿè‹±è¯­ä¸æ˜¯æˆ‘ä»¬çš„æ¯è¯­åQŒçœ‹èµäh¥é€Ÿåº¦ä¸Šæ˜Žæ˜¾æ¯”中文版的慢一截。当ç„Óž¼Œå¦‚果是那¿Uåžƒåœ„¡¿»è¯‘者用机器¾˜»è¯‘出来的中文版åQŒçœ‹é‚£äº›åžƒåœ¾ä¸­æ–‡ç‰ˆé€Ÿåº¦è‚¯å®šæ¯”不上直接看英文原版的。这时的我看《Effective Java》已¾lä¸å†æ˜¯å½“初的那么感觉很陌生了,觉得上面说的那些要点自己æƒÏxƒ³˜q˜éƒ½æ˜¯å¯ä»¥ç†è§£çš„。我个äh觉得提高自èín¾~–程习惯以及水åã^最多的˜q˜æ˜¯çœ‹ç±»ä¼égºŽã€ŠPractical Java》和《Effective Java》的˜q™ç§æŒ‰ç…§æ¡ç›®æ¥è¿›è¡Œè¯´æ˜Žçš„书,能把你自己åã^时容易忽略的地方按照重点一个个揪出来进行修正。比如《Effective Java》中的第一条,使用静态工厂来代替构造函敎ͼŒè‡ªå·±åŽŸæ¥åœ¨è¿›è¡Œå¼€å‘çš„æ—¶å€™ï¼Œä»Žæ¥ä¸æ€Žä¹ˆä¼šä¸»åŠ¨æƒ³åˆ°å¾ç«‹ä¸€ä¸ªé™æ€å·¥åŽ‚ï¼Œæ€»è§‰å¾—ä‹É用构造函数来新徏一个对象是天经åœîC¹‰çš„事情。但看完˜q™ä¸ªæ¡ç›®åŽï¼Œæˆ‘的看法也随之改变,发现静态工厂还是非常好的,当然åQŒä¹Ÿä¸æ˜¯ä»€ä¹ˆåœ°æ–¹ç”¨é™æ€å·¥åŽ‚éƒ½å¾ˆå¥½ã€‚ä¸Šé¢ä¹Ÿå†™åˆ°äº†é™æ€å·¥åŽ‚çš„ä¼˜ç¼ºç‚¹ï¼Œæ¯”å¦‚åœ¨ä»€ä¹ˆåœ°æ–šw€‚合使用åQŒä»€ä¹ˆåœºåˆæœ€å¥½ä¸è¦ä‹É用等½{‰ã€‚这本书我觉得翻译的也不错,¾lå¯¹å€û|¼Œå¼ºçƒˆå‘有一定开发经验的人推荐。我大概看了3周半的样子把˜q™æœ¬ä¹¦çœ‹å®Œï¼Œ˜q™æ—¶çš„æ—¶é—´ä¹ŸåˆîCº†2004òq´çš„9月初åQŒæ–°å‘˜å·¥å…¥å¸åŸ¹è®­ä¹Ÿä¸å†æ˜¯½W¬ä¸€ä¸ªæœˆ¾U¯çÑa的日语培训,而是技术培训和日语培训一起开展,技术上培训JavaåQŒWeb开发,数据库开发这三门评¡¨‹åQŒæ—¥è¯­åˆ™å¼€å§‹è¿›è¡Œæ—¥æœ¬è¯­å›½é™…三çñ”的培训。公司的日语培训和技术培训都˜q˜ä¸é”™ï¼ŒæŠ€æœ¯åŸ¹è®­çº¯¾_ÒŽŠŠå¤§å®¶å½“ä½œä»€ä¹ˆéƒ½ä¸æ‡‚çš„ähåQŒåœ¨Java上从最原始的Hello World开始培训,Web开发上从HTML™åµé¢å¼€å§‹åŸ¹è®­ï¼Œæ•°æ®åº“开发则从Oracle的安装,SQL语句的编写开始培训。当ç„Óž¼Œåœ¨åŸ¹è®­çš„˜q‡ç¨‹ä¸­æˆ‘也不会闲着åQŒè€Œæ˜¯åˆå¼€å§‹å¯»æ‰¾è‡ªå·Þp¦å•ƒçš„书本åQŒè¿™‹Æ¡ï¼Œæˆ‘选中了Oreilly新出版不久的《Java与XML》第二版ã€?br />     ç”׃ºŽXML表达数据的自由性以及强大型åQŒæ‰€ä»¥XML特别适合于做配置文äšg以及数据信息文äšgåQŒåœ¨Java中XMLçš„ä‹É用可谓是多如牛毛。在J2EE中,从Web Applicationçš„web.xml开始就是XMLæ–‡äšgåQŒåˆ°ä¸‹é¢çš„Framework配置½{‰ç­‰åQŒæ²¡æœ‰ä¸€ä¸ªæ²¡æœ‰XMLçš„èín影,而且XML都è“våˆîCº†ä¸¾èƒö轻重的作用。虽然我原来也懂一点XMLåQŒä¸˜q‡ä¹Ÿä»…限于XML的语法以及结构等½{‰ï¼Œé‚£äº›æ·±å…¥ä¸‹åŽ»çš„ä¸œè¥¿åŸºæœ¬è¿˜æ˜¯ç›²ç‚¹ï¼Œå…³äºŽJava中如何处理XML更是一½Hä¸é€šã€‚äØ“äº†æ›´å¥½çš„å­¦ä¹ J2EEåQŒXML是必™åÕd¾æœå¾—一座山峰。这‹Æ¡ï¼Œæˆ‘依然又再一‹Æ¡ä¿¡ä»ÖMº†Oreilly出版½C¾ï¼Œä¹îCº†æœ¬å½“时出版不久的《Java与XMLã€‹ä¸­æ–‡ç¬¬äºŒç‰ˆã€‚è¿™æœ¬ä¹¦åˆšå¼€å§‹åÆˆæ²¡æœ‰˜q‡å¤šä»‹ç»XML本èín˜q‡å¤šçš„东西,只是ä¸ÞZº†æ€•æŸäº›è¯»è€…åÆˆä¸äº†è§£XML而对XML语法¾l“æž„½{‰åšäº†éžå¸¸ç®€è¦çš„介绍åQŒä¸˜q‡ä¹Ÿéžå¸¸åˆîC½çš„介¾lã€‚介¾lå®Œäº†è¿™äº›XML基础知识后就开始了SAX——〉DOM——〉JDOM——〉JAXP——〉Web Service的历½E‹ã€‚不˜q‡æˆ‘现在觉得如果能介¾lDOM4Jž®±æ›´å¥½äº†åQŒå› ä¸ºæˆ‘现在觉得DOM4J是Java中最好用而且性能也不错的XML处理工具。刚开始的我其实什么是SAXåQŒä»€ä¹ˆæ˜¯DOM都不知道åQŒå¯¹JAXPæ›´æ˜¯ä¸€æ— æ‰€çŸ¥ã€‚è¿™æœ¬ä¹¦è‹±æ–‡ç‰ˆæ®è¯´å¾ˆå—å¥½è¯„ï¼Œä¸­æ–‡ç‰ˆæˆ‘åªèƒ½è¯´ä¸€èˆ¬ï¼Œå› äØ“æœ‰äº›åœ°æ–¹ä¼°è®¡è¯‘è€…åÆˆä¸æ“…é•¿è¿™ä¸€å—ï¼Œæ‰€ä»¥ç¿»è¯‘å¾—å¾ˆç”Ÿ¼‹¬ï¼Œä»¥è‡³äºŽéƒ¨åˆ†æ®µè½éš¾äºŽç†è§£ã€‚æ€ÖM½“来说åQŒä¹¦çš„绝大多数内容还是可以看懂,ç”׃ºŽæ²¡æœ‰å…·ä½“实际操作的经验,所以很多也ž®±æ˜¯æŠŠæ¦‚å¿ëА†è§£äº†åQŒç›´åˆ°å‡ ä¸ªæœˆåŽåšæ­£å¼™å¹ç›®å¼€å§‹åº”用这些XML处理工具˜q›è¡Œå¼€å‘的时候才辑ֈ°äº†ç†Ÿ¾lƒè¿ç”¨çš„能力。在˜q™æœ¬ä¹¦ä¸­å­¦ä¼šäº†JDOMçš„ä‹É用方法,JDOM也还是比较好用的åQŒå­¦ä¼šäº†JDOMåQŒä»¥åŽæ“¾UµXMLä¹Ÿæ–¹ä¾¿äº†è®¸å¤šã€‚è¿™æœ¬ä¹¦æˆ‘çš„å»ø™®®ž®±æ˜¯åQŒå¯ä»¥ä¸€å£æ°”è¯Õdˆ°½W¬åç« JAXP部分åQŒåŽé¢çš„Cocoon以及SOAP½{‰ç­‰éƒ¨åˆ†é‚£æœ¬ä¹¦ä»‹¾lçš„òq¶ä¸æ˜¯å¾ˆå¥½ã€‚Cocoon我是看了官方专门的帮助文档以后才感觉入了门。而SOAP是经˜q‡åˆ«çš„书¾cåŠ ä¸Šé¡¹ç›®ä¸­çš„å®žé™…è¿ç”¨æ‰çœŸæ­£å­¦ä¼šçš„ã€?br /> ˜q™æ—¶åˆ°æˆ‘刚进公司已经两个月过åŽÖMº†åQŒæ—¶é—´å·²¾låˆ°äº?月中旬的样子åQŒè¿˜æœ‰ä¸€ä¸ªæœˆæˆ‘们公司新员工入司培训就要结束,也意味着˜q˜æœ‰ä¸€ä¸ªå¤šæœˆæˆ‘们就要开始接触正式项目。这时的我写B/S½E‹åºä»…仅是JSP + JavaBean的水òq»I¼Œ˜qžJSP中的TAG都不会自定义åQŒçœ‹è§åˆ«äººç½‘上的½E‹åºè‡ªå·±˜q˜è‡ªå·±å®šä¹‰Tag很是¾Ÿ¡æ…•åQŒäºŽæ˜¯å†³å®šæŠŠé‚£æœ¬ã€ŠJSP设计》认真看完,把自定义Tag的功能实现。后来看了以后发现原来那本《JSP设计》的¾_‘֍Žéƒ½åœ¨æœ€åŽçš„150™åµå†…åQŒæœ€åŽé‚£éƒ¨åˆ†å…ˆæ˜¯ä»‹ç»äº†è‡ªå®šä¹‰Tag的定义方法以及Tag定义所带来的一些好处。自从学会了如何自定义TagåQŒåœ¨åŽæ¥å…¬å¸çš„项目中自己也根据项目的特点定义了一些共通的TagåQŒå¤§å¤§æ–¹ä¾¿äº†ä¸å°‘™å¹ç›®ä¸­çš„开发äh员,提高了生产力。这本书而且也说了一下B/S开发的两种Web Module。在˜q™é‡ŒåQŒæˆ‘½W¬ä¸€‹Æ¡çŸ¥é“了Web开发可以用一个Servletä½œäØ“æŽ§åˆ¶å™¨ï¼Œç”¨JSP仅仅作用于表现层åQŒè¿™ä¹Ÿäؓ以后掌握MVC打下了很好的基础ã€?br /> 9月中下旬扫完了《JSP设计》的ž®‘Ö·´åŽï¼Œæœ‰ä¸€‹Æ¡è·Ÿå…¬å¸¾l™æˆ‘们培训的老师在闲聊时谈到了项目开发,我询问他™å¹ç›®æ˜¯ä¸æ˜¯ç”¨JSPå’ŒJavaBean来开发,他笑着和我说不是这æ ïLš„åQŒè€Œæ˜¯åŸÞZºŽFramework来进行开发。比如Strutsž®±æ˜¯å…¬å¸çš„常用Framework。Struts˜q™ä¸œè¥¿ä»¥å‰ä¹Ÿå¥½åƒå¬è¯´˜q‡ï¼Œä¸è¿‡ä»Žæ¥ä¹Ÿåªæ˜¯å¬è¯´è€Œå·²åQŒåƈ没有看过。得到这个信息的我,ä¸ÞZº†èƒ½å°½å¿«ç†Ÿæ‚‰å®žé™…项目的开发环境,便决心尽快学会Struts。当时的市场上讲解Struts的书只有一本,也就是Oreilly的《Jakarta Struts¾~–程》,不像现在˜qžã€ŠStruts in Action》的中文版也有了。我åŽÖMº†ä¹¦åº—买来开始回家看åQŒåˆšå¼€å§‹çœ‹çš„æ—¶å€™è§‰å¾—å¦‚åŒäº‘é‡Œé›¾é‡Œä¸€èˆ¬ï¼Œå› äØ“˜q™æœ¬ä¹¦å½’¾UÏx€È»“性的东西很多åQŒæ¯”è¾ƒé€‚åˆå½“å‚è€ƒæ‰‹å†Œï¼Œè€ŒçœŸæ­£å¸¦é¢†æ–°æ‰‹å…¥é—¨è¿™ä¸€å—åšçš„åÆˆä¸å¥½ã€‚æ‰€ä»¥å½“æˆ‘æŠŠ˜q™æœ¬ä¹¦éƒ½çœ‹å®Œäº†ä»¥åŽï¼Œ˜q˜æ˜¯ä¸ä¼šç”¨Struts¾~–写一个程序,只是感觉自己朦朦胧胧懂了一些概念,比如MVC什么的。在公司我们的培训也¾l“束了,通知在国庆节˜q‡æ¥ä»¥åŽçš„第一个星期——大概是10æœ?0日左双™¿›è¡Œè€ƒè¯•åQŒæœ€åŽæ ¹æ®åŸ¹è®­è€ƒæ ¸æƒ…况来调整薪水。当时跟我一起培训的新员工基本上没有äºÞZ¼šStrutsåQŒå…¶å®žè¿™ä¸ªæ—¶å€™è¿žä¼šç”¨JSP + JavaBean写一个最½Ž€å•çš„ç™Õd½•画面的äh也没有多ž®‘个åQŒå¤§éƒ¨åˆ†äºø™¿˜æ˜¯æ¨¡æ¨¡ç³Š¾pŠæ‡‚一点,但是具体做东西还是做不来的那¿Uæ°´òqŸë€‚国庆节大概10æœ?åïLš„æˆ‘去了趟书店åQŒçªç„¶å‘çŽîC¹¦æž¶ä¸Šæ–îC¸Šäº†ä¸€æœ¬ä¹¦åQŒå°±æ˜¯å­™å«ç´¾~–写的《精通Struts》这本书。孙卫琴的书我倒是听说˜q‡ï¼Œž®±æ˜¯åœ¨è¿™ä¹‹å‰å‡ºçš„一本关于Tomcat以及Web App开发的书,据说挺容易上手的。我¾˜Èœ‹äº†è¿™æœ¬ä¹¦çš„目录结构,觉得可以值得一读,于是虽然ä»äh ¼ä¸è²åQŒä»ç„¶ä¹°å›žå®¶å½“天ž®Þq ”读è“v来。凭我的è¯ÕdŽæ„Ÿè§‰æ¥è¯´åQŒè¿™æœ¬ä¹¦ä¹Ÿè®¸å­¦æœ¯ä»·å€¼åƈ不高åQŒè¯´å¾—深入的东西基本没有åQŒä½†æ˜¯ç‰¹åˆ«é€‚合初学者,通过Hello World˜q™ç§ä¾‹å­˜q…速让你手把手¾~–写出第一个Struts½E‹åºã€‚å°±˜q™æ ·åQŒåœ¨˜q™æœ¬ä¹¦ä¹°å›žæ¥çš„第二天åQŒæˆ‘自己ž®Þq”¨Struts写了一个很½Ž€å•çš„ç™Õd½•画面½E‹åºåQŒå½“时的感觉别提多兴奋了åQŒå°±æ„Ÿè§‰è‡ªå·±å…¥äº†é—¨ï¼Œä»¥åŽçš„道路一片光明。在˜q™é‡ŒåQŒæˆ‘要由衷地感谢孙卫琴女士,写了˜q™ä¹ˆä¸€æœ¬é€‚合初学者的书,同时也徏议没有学˜q‡Struts但又æƒÏxŽŒæ¡Strutsçš„Java½E‹åºå‘˜ä»¬ä¹°è¿™æœ¬ä¹¦å›žæ¥çœ‹ï¼ˆä¸çŸ¥é“我是不是有书托之嫌åQŒæˆ‘只是说我自己的心里想法)ã€?br />     国庆的假期放完了åQŒæˆ‘也回åˆîCº†å…¬å¸å‡†å¤‡è€ƒæ ¸åQŒä¸Šåˆæ˜¯½W”试åQŒä¸‹åˆæ˜¯ä¸Šæœºè€ƒè¯•。笔试分ä¸ÞZº†4块,分别是JavaåQŒWeb开发,Oracle数据库,以及CMMI规约。这四门除了Oracle数据库我一向不是很擅长åQŒåªè€ƒäº†ä¸ªä¸­½{‰åˆ†æ•îC»¥å¤–,其他三门分数都名列前茅。不˜q‡CMMI规约老实说我也不怎么会,不过¼„°åéy考的很多都是我知道的东西。下午是上机考试åQŒé¢˜ç›®ç»™å‡ºæ¥äº†ï¼Œæˆ‘一看题目,原来是一个最½Ž€æ˜“的成ç‡W查询¾pȝ»ŸåQŒä¹Ÿž®±æ˜¯æ•°æ®åº“里面已¾læœ‰ä¸€äº›å­¦ç”Ÿæˆ¾l©ï¼Œæˆ‘们写一个检索页面,可以输入或者选择‹‚€ç´¢æ¡ä»Óž¼ŒæŠŠç¬¦åˆæˆ‘们检索条件的数据输出òq¶æ˜¾½Cºåœ¨ç”»é¢ä¸­ã€‚我于是拿刚学会不久的Struts˜q›è¡Œ¾~–写åQŒåœ¨3个小时内把整个页面都写好了,òq¶ä¸”˜q˜è‡ªå®šä¹‰äº†ä¸€ä¸ªTag来显½Cºæ•°æ®ä¿¡æ¯ã€‚考完以后我才知道æ€Õd…±ä¹Ÿå°±äº”六个äh½E‹åºå¯ä»¥˜qè¡ŒåQŒè€Œä¸”只有我一个äh用的是StrutsåQŒå…¶ä»–äh基本都是最½Ž€å•çš„JSP + JavaBeanåQŒæœ‰çš„äh˜qžJavaBean都没有,数据库操作全部写在了JSP™åµé¢ä¸­ã€‚毫无疑问,˜q™æ¬¡ä¸Šæœºè€ƒè¯•我得åˆîCº†å¥½è¯„åQŒç»™äº†æœ€é«˜åˆ†ã€‚在全部的培训成¾l©ä¸­æˆ‘也居前两名åQŒæˆ‘们部门新员工我排½W¬ä¸€åã€‚带着˜q™ä¸ªæˆç‡WåQŒæˆ‘们的入司培训基本¾l“束åQŒå¼€å§‹è¿›å…¥éƒ¨é—¨åšå®žä¹ ™å¹ç›®ã€?br />     虽然说我们正式进了部门,不过试用期还没有¾l“束åQŒæˆ‘们试用期最后一个月的ä“Q务就是做一个实习项目,当然åQŒæ¯å¤©è¿˜æ˜¯è¦˜q›è¡Œæ—¥è¯­åŸ¹è®­åQŒå› ä¸ø™¦å‚加12月䆾的国际日语三¾U§è€ƒè¯•ã€‚å…¬åæ€¹Ÿè±¡å¾æ€§å¾—¾l™å¤§å®¶åŸ¹è®­äº†ä¸‰èŠ‚è¯„¡š„技术,½W¬ä¸€èŠ‚æ˜¯Struts培训åQŒç¬¬äºŒèŠ‚æ˜¯Web Appçš„MVC¾l“构的培训,½W¬ä¸‰èŠ‚æ˜¯Log4j培训åQŒè¿™å‡ æ¬¡åŸ¹è®­ä¸‹æ¥åQŒå¤§éƒ¨åˆ†äººæ„Ÿè§‰å¥½è±¡äº‘é‡Œé›¾é‡Œä¸€æ øP¼ŒåŸºæœ¬ä»€ä¹ˆéƒ½æ²¡å¬æ‡‚,不过我由于有了点Struts的基本知识,所以感觉收èŽäh¯”较大åQŒç‰¹åˆ«æ˜¯MVC的培训中我真正明白了视图——控制器——模型这三层每层应该怎么处理åQŒçŸ¥é“了一个Web App中如何分Java Package比较好,明白了专门有一个DAOå±‚æ¥å¤„ç†æ•°æ®åº“æ‰€å¸¦æ¥çš„ä¾¿æøP¼Œæ˜Žç™½äº†Log在Web开发中的重要地位,˜q™äؓ以后的开发带来了很大的好处。实习项目的è¯ùN¢˜å¾ˆå¿«ž®×ƒ¸‹æ¥äº†åQŒè¦æˆ‘们做一个电子相册的B/S¾pȝ»ŸåQŒè¦æ±‚有囄¡‰‡ä¸Šä¼ åQŒå›¾ç‰‡æ£€ç´¢ï¼Œå›„¡‰‡æ˜„¡¤ºä»¥åŠè¦ç”¨Struts来构建,˜q™äº›æ˜¯åŸºæœ¬çš„要求åQŒå…¶ä»–功能可以自由扩张。我们部门的新员工分ä¸ÞZ¸¤ä¸ªå°GroupåQŒéƒ½æ˜¯ä¸€æ ïLš„è¯ùN¢˜åQŒäº’ç›æ€¿ƒ˜q›å’Œå­¦ä¹ åQŒæ¯ä¸ªGroup˜q˜é…å¤‡äº†ä¸€ä¸ªè€å‘˜å·¥ï¼Œä½œäؓ督促我们的进度,防止我们有过大的偏差½{‰ç­‰åQŒä¸˜q‡å…·ä½“做东西上原则上要求是不会给我们什么帮助。首先每个小Group要选出一个LeaderåQŒç»“æžœæˆ‘è¢«å¤§å®¶ä¸€è‡´é€‰äØ“æˆ‘ä»¬Groupçš„Leader。在ž®ç»„讨论中我们先˜q›è¡Œéœ€æ±‚分析,大家的讨论很是热烈,ä¸ÀL„ä¹Ÿå¾ˆå¤šï¼Œä¸è¿‡åŸºæœ¬ä¸Šç»„员们也都是点子多åQŒå…·ä½“实çŽîC¸Šé¢è¿˜éƒ½æ²¡æœ‰æƒ³˜q‡ã€‚å¯¹äºŽä»–ä»¬çš„é‚£äº›å»ø™®®åQŒç»å¤§å¤šæ•°æˆ‘军_®šéƒ½ä½œä¸ºæˆ‘们要实现的目标,但也有少部分我觉得目前以我们的水òqŒ™¿˜æ— æ³•实现的,ž®±å…ˆå¦å†³äº†ã€‚会议开完后åQŒå½“天回家以后我ž®±å¼€å§‹æŽ’开发计划和个äh的进度,½W¬äºŒå¤©å†™ç”»é¢çš„基本设计,½W¬ä¸‰å¤©æŠŠ¾l„员拉过来开始Review基本设计åQŒæˆ‘们组的速度˜q˜ç®—比较快。从星期二公布课题,到星期五ž®±å’Œå‡ ä¸ª¾l„员一èµähŠŠDEMO画面设计出来了。原来的计划是第二个星期一开始CodingåQŒå¤§æ¦‚花一个星期完成。不˜q‡å…¶ä½™ç»„员似乎还是不怎么会StrutsåQŒäºŽæ˜¯æˆ‘回家星期六星期天基本全天都在看书写代码学习,èŠ×ƒº†ä¸¤å¤©æŠŠé¡¹ç›®åŸºæœ¬Coding完毕。其中Web™åµé¢éƒ¨åˆ†ä¹Ÿä¸å†ä‹É用一开始ä‹É用Frame的做法,而是采用了Tiles框架。Tilesçš„ä‹É用过后我感觉是非常好的东西,¾lè¿‡½Ž€å•的配置可以完成大批¾|‘页中类似部分的构徏åQŒè€Œä¸”生成的属于一个页面,˜q™æ ·ž®ÞqœåŽÖMº†ä»¥å‰å†™Frame时提交页面æ€ÀL˜¯è¦è€ƒè™‘讄¡½®Target以及在引用对象的时候大批Parent或者top对象使用的麻烦事了。在开发过½E‹ä¸­æˆ‘ä‹É用了Log4jåQŒè¿™ä¸ºæˆ‘的调试程序带来了极大的方便,呵呵åQŒå¯ä»¥æƒ³è±¡ï¼Œæ²¡æœ‰Log来调试一个Web½E‹åºçœŸæ˜¯ä¸å¯æƒŒ™±¡çš„ã€?br /> ˜q™æ®µæ—‰™—´æˆ‘是边开发边¾˜ÀLŸ¥é‚£æœ¬ã€Šç²¾é€šStruts》的åQŒè¿™æ øP¼Œ˜q…速把Struts中提供的许多Tag弄熟¾lƒäº†åQŒäؓ以后具体的项目开发带来了便捷。也许是一向以来公司的实习™å¹ç›®å®Œæˆæ•ˆæžœéƒ½ä¸æ˜¯å¾ˆç†æƒ³å§ï¼Œ˜q™æ¬¡æˆ‘们的迅速完成比较出乎Leader的意料,¾l¼åˆä¸‰ä¸ªæœˆçš„试用培训åQŒç”±äºŽæˆ‘在日语和技术以及实习项目中表现都还不错åQŒæ‰€ä»¥å®šå·¥èµ„¾U§åˆ«æ—¶ä¹Ÿæ˜¯åŒä¸€æ‰¹è¿›å…¬å¸çš„æ–°å‘˜å·¥ä¸­æœ€é«˜çš„åQŒéšç€è½¬æ­£ä¼šè®®çš„结束,我也åœ?0æœˆåº•æˆäØ“äº†å…¬å¸çš„æ­£å¼å‘˜å·¥ã€‚å¤§æ¦‚åˆšåˆšè¿›å…?1月䆾åQŒæˆ‘们Group便开动一个项目,™å¹ç›®ä¸æ˜¯å¾ˆå¤§ã€‚当时老员工们许多都在做项目的详细设计åQŒæˆ‘便跟着公司一位技术专å®Óž¼ˆä¹Ÿæ˜¯å½“初¾l™æˆ‘们入司培训的其中一位老师åQ‰åšèµ·é¡¹ç›®çš„Framework构徏工作。当时的我才˜q›å…¬å¸ï¼Œ½W¬ä¸€èµ„历ž®šæµ…åQŒç¬¬äºŒæˆ‘çš„ç¡®ä¹ŸåÆˆä¸æ˜¯å¾ˆä¼šä»€ä¹ˆä¸œè¥¿ï¼Œæ‰€ä»¥ç»™æˆ‘çš„ä»ÕdŠ¡å¾ˆå¤šéƒ½æ˜¯ä¸€äº›æ¨¡å—çš„Utility的设计。比如通用的Checkæ–ÒŽ³•啊,CSV以及定长文äšg的读取解析什么的啊,˜q˜æœ‰æŸäº›åœ¨IE中可以实现的效果如何在Netscape中也能实现同æ ïLš„æ•ˆæžœ½{‰ç­‰ã€‚虽然这些东西在现在看来òq¶ä¸æ˜¯å¾ˆå¤æ‚åQŒä½†æ˜¯å½“时自å·Þqš„¼‹®éšç€åšè¿™äº›ä¸œè¥¿è€Œå­¦åˆîCº†å¾ˆå¤šå¾ˆå¤šã€‚比如ä‹É用JDOM对XMLæ–‡äšg的解析啊åQŒå¾ˆå¤šCheckæ–ÒŽ³•的小技巧啊åQŒIEå’ŒNetscape½I¶ç«Ÿæœ‰ä»€ä¹ˆåœ°æ–¹ä¸ä¸€è‡ß_¼Œè¯¥å¦‚何解决等½{‰ï¼Œ˜q™äº›éƒ½åœ¨˜q™å‡ å¤©å†…了解了很多。在˜q™å‡ å¤©ä¸­åQŒæˆ‘通过¾|‘上查找资料åQŒäÍåœø™¿…速学习了Java反射的ä‹É用方法,òq¶ä¸”自己边学边写实例åQŒå®žçŽîCº†å„种情况下的反射案例。我个äh觉得掌握Java反射技术是非常重要的,˜q™è®©ä½ å¯ä»¥å†™ä¸€äº›é€šç”¨çš„工兗÷€‚如果不会反ž®„技术的话,也许你永˜qœåªèƒ½å†™ä¸€äº›é’ˆå¯¹ç‰¹å®šæƒ…况下的解å†Ïx–¹æ³•。而会使用反射以后åQŒä½ å¯ä»¥å†™ä¸€äº›ä»£ç ï¼Œ˜q™äº›ä»£ç å¯ä»¥ç”¨åœ¨è®¸å¤šåœ°æ–¹åQŒè¾¾åˆ°è‡ªå·±æ‰©å±•甚è‡Ïxž„建Framework的效果。在˜q™ä¸ª™å¹ç›®ä¸­ï¼Œæˆ‘ä‹É用了自定义Tagå’ŒJava反射技术,定义了些™å¹ç›®ä¸­æ¯”较需要的通用的TagåQŒæ–¹ä¾¿äº†å¤§å®¶ã€?br />     后来听老员工说新员工进公司ž®±å¼€å§‹åšFramework是以前从来都没有˜q‡çš„事情åQŒå› ä¸ºæˆ‘们Leaderå¯ÒŽˆ‘希望比较大,所以想ž®½å¯èƒ½åŸ¹å…ÀLˆ‘åQŒè®©æˆ‘æ—©ç‚ÒŽŒ‘起项目大梁,所以给我的成长提供了一‹Æ¡åˆä¸€‹Æ¡çš„æœºé‡ã€?1月中旬以后,™å¹ç›®å¼€å§‹è¿›å…¥ç¼–码阶ŒDµï¼Œæˆ‘也½W¬ä¸€‹Æ¡çœ‹åˆîCº†æ­£å¼çš„项目设计书。第一‹Æ¡çœ‹åˆ°è®¾è®¡ä¹¦çš„æ—¶å€™æˆ‘都觉得自å·Þp„‘子有ç‚ÒŽ‡µåQŒä¸€å¤§å †æ—¥è¯­ä»€ä¹ˆå«ä¹‰è‡ªå·×ƒ¸æ˜¯å¾ˆæ¸…楚åQŒè€Œä¸”感觉æ ÒŽœ¬æ— ä»Žä¸‹æ‰‹åQŒä¸çŸ¥é“从哪里开始看比较好。项目担当耐心得和我说了设计书的格式以及究竟什么地æ–ÒŽ˜¯ä»€ä¹ˆä¸€ä¸ªå«ä¹‰ï¼Œä»¥åŠCoding的时候按照什么个思èµ\来看设计书。再加上™å¹ç›®ä¸­æœ‰è€å‘˜å·¥å…ˆå†™äº†ä¸ªSampleåQŒè®©å¤§å®¶çœ‹äº†æ ‡å‡†çš„一个流½E‹ï¼Œæ‰€ä»¥æˆ‘们就依葫芦画瓢,慢慢得把一个画面一个画面Coding完毕。当然了åQŒåŽæ¥ä¹Ÿæœ‰æµ‹è¯•员来测试我们的画面åQŒå‘现bug后就发Bug Report¾l™æˆ‘åQŒé‚£ä¸€ä¸ªæœˆž®±æ˜¯åœ¨CodingåQŒä¿®æ­£Bug中渡˜q‡çš„åQŒè¿™ä¸ªé¡¹ç›®æ˜¯ç”¨Struts做的åQŒå› ä¸ÞZ¸å¤§ã€‚所以也没有再用其他的FrameworkåQŒæ•°æ®åº“操作那里只有个非常简单的单表操作DAO层,其余的DB操作都是自己通过JDBC操作语句来完成的。在˜q™ç¬¬ä¸€ä¸ªè‡ªå·±æŽ¥è§¦çš„真正™å¹ç›®ä¸­ï¼Œæˆ‘自己学åˆîCº†å¾ˆå¤šB/S设计的技巧,感觉很充实。不˜q‡ä¹¦æœ¬å­¦ä¹ æ–¹é¢æˆ‘也没有闲着åQŒæˆ‘ä¸ÞZº†èƒ½å¤Ÿæ·±å…¥äº†è§£JavaåQŒå¤§æ¦‚在11月中旬左叛_¼€å§‹çœ‹ã€Šæ·±å…¥Java虚拟机》这本书åQŒç”±äºŽå†…å®Òޝ”较深入,所以看得也有点吃力。书¾˜»è¯‘得和写得都还不错åQŒå€¼å¾—一看,我一直看了前八章åQŒçœ‹åˆ°Java½E‹åº˜qè¡Œ¾l†èŠ‚åŽå°±æ²¡å†çœ‹äº†åQŒå¤§æ¦‚看åˆîCº†12月底的样子吧åQŒå‘µå‘µï¼Œæœ‰æ—¶é—´çš„话决定把后面的部分也看完。这本书看完后收获就是了解了Classæ–‡äšg的实质,Java的安全模型,虚拟机是如何工作的。这些知识对后来调试½E‹åºBug或者Exception的时候非常有好处åQŒå¯ä»¥æŠŠä»¥å‰è‡ªå·±è§‰å¾—莫名其妙的错误的原因扑ևºæ¥ï¼Œä¸åƒä»¥å‰é‡åˆ°å¾ˆå¤æ€ªçš„Exception的时候怎么æ­Èš„都不知道åQŒä»Žè¯Õd®Œ˜q™æœ¬ä¹¦ä»¥åŽï¼Œåœ¨ä»¥åŽçš„调试异常中很ž®‘再有不知所以然的感觉了ã€?br />     2004òq?2月底的时候,我的½W¬ä¸€ä¸ªé¡¹ç›®ä¹Ÿåšå®Œäº†ï¼Œç”׃ºŽæˆ‘空闲着åQŒLeader便在星期三的时候把一个公司内部开发的Source¾lŸè®¡çš„小工具让我˜q›è¡Œä¿®æ”¹åQŒä‹É得添加一个比较有用的功能。东西给我的时候基本没有ä“Q何文档,在我手上的就是一堆源代码而已åQŒç•Œé¢æ˜¯ç”¨Swingåˆ¶ä½œçš„ï¼Œå› äØ“æ²¡æœ‰ä¸“é—¨åœ¨UI上进行精心设计,所以说不上好看åQŒå…¸åž‹çš„Java¾~–写的图形界面的½E‹åºçš„æ ·å­ã€‚èÊY件不是非常大åQŒä¼°è®¡åœ¨1万行源代码以内,不过对于只有一个äh修改来说åQŒä¹Ÿæ¯”较够呛了。还好我在刚学Java的时候用JBuilder写了一些Swing的程序,现在˜q˜æ˜¯å¯¹Swing有概å¿ëŠš„åQŒæ‰€ä»¥æ‹¿åˆ°æ‰‹ä¸Šä»¥åŽç»˜q‡ä»”¾l†åˆ†æžï¼Œé€æ¸ç†æ¸…了头¾lªã€‚经˜q‡ä¿®æ”¹å’Œè‡ªå·±‹¹‹è¯•完毕后,觉得˜q˜æ¯”较满意,辑ֈ°äº†é¢„期的目标åQŒäºŽæ˜¯åœ¨æ˜ŸæœŸäº”的时候提交给了Leader。通过˜q™æ¬¡åQŒå¯¹Swing的开发又加深了印象,自然åQŒåœ¨æœ‰çš„¾l†èŠ‚æŠ€å·§æ–¹é¢å—ç›ŠåŒª‹¹…ã€?br /> 元旦很快来äÍ了,在年底以前,公司觉得有必要学习下HibernateåQŒè™½ç„¶æˆ‘们目前的™å¹ç›®ä¸­è¿˜æ²¡æœ‰ç”¨è¿‡HibernateåQŒè€Œæ˜¯ç”¨å¦å¤–一个公司内部开发的ORM工具åQŒä¸˜q‡å‡ åæŠ€æœ¯ä¸“家初步对Hibernate感觉后觉得Hibernate的功能要强大的多åQŒè€Œä¸”是开源的åQŒä¸æ–­æœ‰äººåœ¨æŽ¨åЍåQŒå‡¾U§ï¼Œæ‰€ä»¥æœ‰å¿…要我们要学Hibernate。这‹Æ¡çš„学习采用学习ž®ç»„çš„åŞ式,也就是公司内部先抽几名员工(主要是技术部门的åQŒå½“ç„Óž¼Œå¼€å‘部门如果有兴趣的话也可以考虑åQ‰æ¥˜q›è¡Œæ·±å…¥å­¦ä¹ åQŒç„¶åŽå®šæœŸå¼€ä¼šäº¤‹¹äº’相学习,辑ֈ°çŸ­æ—¶é—´å†…先行的几名成员迅速深入掌握Hibernateçš„åŞ式。由于我½W¬ä¸€å¤„于½Iºé—²çŠ¶æ€ï¼Œ½W¬äºŒä¹Ÿæ¯”较有兴趣åQŒè€Œä¸”跟技术部门的专家们也比较谈得来,所以我也加入了其中åQŒæˆä¸ºå‡ åå­¦ä¹ å°¾l„中成员的一部分。我们学习资料主要就是《Hibernate in Action》英文版一书以及官方的帮助手册。我负责其中对象操作åQŒTransactionå’ŒCacheåQŒè¿˜æœ‰é«˜¾U§Mapping关系的设¾|®å‡ ä¸ªéƒ¨åˆ†çš„学习。由于资料都是全英文的,所以看书速度òq¶ä¸æ˜¯å¾ˆå¿«ï¼Œä¸è¿‡˜q˜æ˜¯åˆæ­¥å¾—到掌握了。大概学习了半个多月的样子,我们各自基本学习完毕åQŒäº’ç›æ€º¤‹¹åŽòq¶ä¸”写下了读书笔讎ͼŒç”¨æ¥åŽé¢å…·ä½“™å¹ç›®å¼€å‘时候参考用。通过˜q™å¤§åŠä¸ªæœˆçš„学习åQŒæˆ‘个äh觉得提高了非常多åQŒåœ¨˜q™ä¹‹å‰ï¼Œæˆ‘只知道有ORM˜q™ç§ä¸œè¥¿åQŒä½†æ˜¯ä»Žæ¥æ²¡æœ‰ä‹É用过åQŒä¹Ÿä»Žæ¥æ²¡æœ‰çœ‹è¿‡ã€‚自从学˜q‡äº†ä»¥åŽåQŒæˆ‘不仅对Hibernate在代码编写时的ä‹É用比较熟悉了åQŒè€Œä¸”对Hibernate的配¾|®ä»¥åŠè®¸å¤šåº•层的知识有了很清楚的认识åQŒè®©è‡ªå·±åœ¨æ•°æ®æŒä¹…化斚w¢çš„认识提高了大大的一步ã€?br />     元旦˜q‡åŽåQŒè™½ç„¶ä¸€è¾¹åœ¨å­¦ä¹ HibernateåQŒä¸˜q‡ç”±äºŽä¸‹é¢é¡¹ç›®çš„需要,Leader跟我说要我学一下Unix下的Shell¾~–程åQŒå› ä¸?™å¹ç›®ä¸­è®¸å¤šæ‰¹å¤„理会用Shell来启动。UNIX命ä×o在学校时候学˜q‡çš„åQŒä¸˜q‡è¿™ä¸ªæ—¶å€™å·²¾lå¿˜è®îCº†å¾ˆå¤šåQŒåªæ˜¯ç¿»é˜…资料的时候还能回惌™“v来不ž®‘命令。Shellòq¶ä¸éš¾ï¼Œå¦‚果有了¾~–程基础åQŒå­¦ä¹ Shell¾~–程也很快的åQŒæ€ÖM½“感觉ž®±æ˜¯¾~–程语言大同ž®å¼‚åQŒä»ŽåŸºæœ¬è¯­æ³•来说åQŒä¸å¤–乎赋倹{€æ¡ä»¶ã€åó@环这几种¾cÕdž‹ã€‚只要迅速掌握这几种¾cÕdž‹åœ¨è¿™¿Uç¼–½E‹è¯­­a€ä¸­çš„¾~–码格式åQŒé‚£ä¹ˆä½ ž®±å¯ä»¥è¿…速掌握这门语­a€æœ€åŸºæœ¬çš„ç¼–½E‹èƒ½åŠ›ã€‚Shell¾lè¿‡ä¸€å‘¨çš„学习后觉得感觉不错,不仅可以™åºåˆ©çœ‹æ‡‚别äh写的Shell½E‹åºåQŒè€Œä¸”自己可以在Linux下顺利写出符合自己需求的Shell½E‹åºòq¶èƒ½™åºåˆ©æ‰§è¡Œã€‚但是突发事件æ€ÀL˜¯æœ‰çš„åQŒé‚£ä¸ªé¡¹ç›®çªç„¶å†³å®šåšg后两个月åQŒæ‰€ä»¥å‰ä¸€ä¸ªæ˜ŸæœŸçš„学得Shell½{‰äºŽæš‚æ—¶‹z¾ä¸ä¸Šç”¨åœÞZº†ã€‚不˜q‡å˜›åQŒå¤šå­¦ä¸€æ ähŠ€èƒ½æ€ÀL˜¯æ²¡æœ‰å®›_¤„的,而且又复习了那么多Unix命ä×o啦,感觉˜q˜æ˜¯å¾ˆä¸é”™çš„。于是我又进入了不在™å¹ç›®ä¸­çš„真空期了ã€?br />     但是好景不长啊,好日子还没有˜q‡ä¸Šä¸¤ä¸ªæ˜ŸæœŸåQŒå…¬å¸åŽ»òq´åšçš„一个比较大的项目开始了2期开发,我也被一下拖入了™å¹ç›®ä¸­ã€‚è¯´èµ·é‚£ä¸ªé¡¹ç›®ï¼Œå…¬å¸å¥½å¤šäºø™¿˜å¿ƒæœ‰ä½™æ‚¸åQŒæ®è¯´åŽ»òq´é‚£ä¸ªé¡¹ç›®å¼€å‘的时候,大概50多号人干了好几个月,每天都是11点以后才有可能回å®Óž¼Œå‘¨å…­æ˜¯é“å®šåŠ ç­ï¼Œå‘¨æ—¥æ˜¯çœ‹æƒ…å†µåQŒæ™šä¸Šå°±½Ž—加班加到凌æ™?点也不是什么奇怪的事情。当时大安™ƒ½è¯´å¤šæ¥å‡ ä¸ªè¿™¿Ué¡¹ç›®å¤§å®¶å°±è¦æ­»äº†ï¼Œ˜q™æ¬¡˜q™ä¸ª™å¹ç›®çš?期过来了åQŒå¤§å®¶ç²¾¼œžåˆä¸€‹Æ¡ç´§å¼ è“v来咯。一开始照例是™å¹ç›®ä¼šè®®åQŒå¬å®Œé¡¹ç›®ç»ç†æ˜qîC»¥åŽï¼Œå¤§å®¶ä¹Ÿæ”¾å¿ƒäº†ä¸å°‘åQŒè¿™‹Æ¡è™½ç„¶è¯´æ˜¯äºŒæœŸï¼Œä¸è¿‡è§„模不大åQŒåªéœ€è¦?5个äh左右òq²ä¸€ä¸ªæœˆž®Þpƒ½æžå®šã€‚主要是把项目一期里面一些地方进行改修,当然也有需要新的画面的开发,不过相对于去òq´çš„那块不是很多而已。对我来说这‹Æ¡æ˜¯ä¸ªå¾ˆå¤§çš„考验åQŒå› ä¸ºé¡¹ç›®æ˜¯äºŒæœŸåQŒé¡¹ç›®ç»„内除了我åQŒå…¶ä»–的人都做过1期开发,所以对™å¹ç›®¾l“构都很清楚。这‹Æ¡é¡¹ç›®å¼€å§‹åƈ没有什么培训,所以我只能单独çœ?期的源代码来熟悉™å¹ç›®¾l“构什么的。这个时候项目经理把我叫去要我办理护照,准备˜q™ä¸ª™å¹ç›®‹zùN£æˆ‘去东京现场¾l´æŠ¤ã€?br /> ˜q™ä¸ª™å¹ç›®æ˜¯ä¸ªæ¯”较全面比较大的™å¹ç›®åQŒæœåŠ¡å™¨é‡‡å–äº†é›†¾Ÿ¤çš„æ–¹å¼åQŒæ•°æ®é‡ä¹Ÿæ˜¯åƒä¸‡ä¹ƒè‡³ä¸Šäº¿¾U§åˆ«çš„,所以性能要求特别高。在技术方面用åˆîCº†å¾ˆå¤šåQŒä‹É用EJB来控制TransactionåQŒä‹É用了ORM工具来操¾UµDB数据½{‰ç­‰½{‰ç­‰ã€‚而且ç”׃ºŽæ¯”较庞大åQŒæ‰€ä»¥æœåŠ¡å™¨åˆå§‹åŒ–çš„é‚£å—ä¸ÞZº†Load上去大批配置信息åQŒä»£ç é‡æžå…¶åºžå¤§åQŒåœ¨æƒé™æŽ§åˆ¶çš„那块地方,代码非常难以è¯ÀL‡‚。这也给我一开始的学习代码带来了很大的一块麻烦。不˜q‡æ€È®—静下心来后把整个™å¹ç›®æ¡†æž¶ä»¥åŠå®žçŽ°æ‰‹æ³•åŸºæœ¬æ‘¸æ¸…æ¥šäº†åQŒè¿™ä¸ªæ—¶å€™è§‰å¾—非常开心,而且对Web应用½E‹åºçš„æž„造心里面也非常充实,觉得自己已经具备写Framework的初步能力了ã€?br /> ™å¹ç›®æ˜¯ç´§å¼ çš„åQŒåŸºæœ¬ä¸Šæ¯å¤©æ™šä¸Šéƒ½è¦åŠ ç­åˆ?1点,然后打èžR回家åQŒå“ˆå“ˆï¼Œå…¬å¸æŠ¥é”€ã€‚而且临近˜q‡å¹´åQŒè¿™ä¹ˆåŠ ç­ä¹Ÿä¸€ç‚šwƒ½æ„Ÿè§‰ä¸åˆ°˜q‡å¹´çš„æ°”息。不˜q‡æˆ‘也不能因此放松了自己的学习。我觉得自己的基¼‹€åº”该½Ž—比较好了,便开始啃起另外一本大部头——《Java与模式》。一直以来我对设计模式的感觉ž®±æ˜¯ä¸€äº›å·²¾læˆåž‹çš„åQŒä¹…¾lè€ƒéªŒçš„代码框æžÓž¼Œå…ähœ‰éžå¸¸å¥½çš„可扩展能力以及非常好的代码健壮性。不˜q‡åˆå­¦è€…最好不要看设计模式åQŒå› ä¸ÞZ½ æŽ¥è§¦çš„ä»£ç ä¸å¤šï¼Œå¦‚æžœè´¸ç„¶çœ‹è®¾è®¡æ¨¡å¼çš„è¯ï¼Œä¼šé€ æˆä¸æ˜Žç™½äØ“ä»€ä¹ˆè¿™¿Uè®¾è®¡æ¨¡å¼å¥½åQŒç©¶ç«Ÿå¥½åœ¨ä»€ä¹ˆåœ°æ–¹çš„æƒ…况下就在代码中乱套设计模式åQŒå¯¹è‡ªå·±çš„以后编码发展带来不利的影响。每一¿Uè®¾è®¡æ¨¡å¼éƒ½æœ‰æ¯ä¸€¿Uè®¾è®¡æ¨¡å¼çš„特点åQŒè‡ªç„¶ä¹Ÿæœ‰ä»–们自íw«çš„适用范围åQŒæ¯”如拿最基本的单例模式(SingletonåQ‰æ¥è¯ß_¼Œé€‚合于做配置信息è¯Õd–器,主键产生器等全局唯一的东è¥Ñ€‚如果初学者不明白˜q™äº›åQŒæ‹¿å•例模式乱套åQŒä»€ä¹ˆéƒ½ç”¨å•例模式,比如把普通传递数据用的JavaBean也做成了单例模式åQŒå¸¦æ¥çš„æ¶æžœž®×ƒ¸¥é‡äº†ã€‚这本《Java与模式》我是从头到ž®¾è®¤è®¤çœŸçœŸçœ‹äº†ï¼Œæ¯çœ‹å®Œä¸€ä¸ªæ¨¡å¼éƒ½ä¼šä»”¾l†å›žæƒ³ä»¥å‰çœ‹çš„代码哪里用到过˜q™ä¸ªæ¨¡å¼åQŒæ€ÖM¼šè‡ªå·±æƒÏxƒ³˜q™äº›æ¨¡å¼é€‚用于哪些地斏V€‚因䏸™¿™ä¸ªæ—¶å€™æˆ‘自己¾~–写的代码行æ•îC¹Ÿå·²ç»å¾ˆå¤šäº†ï¼Œæ‰€ä»¥çœ‹è§è¿™äº›æ¨¡å¼å°±ä¼šç‰¹åˆ«æœ‰æ„Ÿè§‰ã€‚经˜q?0多天的认真研读,所有模式都被我消化了下去,òq¶ä¸”使得我的对程序开发上面的认识提升了非常大的一步。顺路说一句,˜q™æœ¬ä¹¦å†™å¾—非常好åQŒä¾‹å­å¾ˆå¤šï¼Œä½†æ˜¯ä¸å¤æ‚,有一定代码编写经验的人就可以看懂了。不˜q‡çœ‹æ‡‚åÆˆä¸æ˜¯æœ€é‡è¦çš„ï¼Œé‡è¦çš„æ˜¯æ¶ˆåŒ–ä¸‹åŽ»åQŒç”¨æ¥ç†è§£ä»¥å‰çœ‹˜q‡çš„代码的精华,˜q™æ ·è‡ªå·±æ‰èƒ½å¾—到提高ã€?br />     ˜q™ä¸ª™å¹ç›®è™½ç„¶å¾ˆç´§å¼ å¾ˆå¿™ï¼Œä¸è¿‡æˆ‘还是适应了下来,而且å¯ÒŽ•´ä¸ªé¡¹ç›®ç»“构什么的都有了比较好的整体的把握。项目横跨了整个˜q‡å¹´æœŸé—´åQŒæ‰€ä»¥åœ¨˜q‡å¹´çš„那几天都必™åÕd¼€ç€æ‰‹æœºåQŒæ€•有什么突发事件要求去加班。签证在2æœ?日左右送过åŽÈ­¾åQŒLeader跟我说因为在˜q‡å¹´æœŸé—´åQŒæ‰€ä»¥ç­¾è¯å¯èƒ½ä¼šæ¯”较¾~“æ…¢åQŒæ¯”较难½{¾ï¼Œä¸è¿‡ä¸€èˆ¬æƒ…况下1个月应该­‘›_¤Ÿäº†ã€‚原计划我是跟另外两个同äº?æœ?日去东京åQŒè¿™æ ïL®—½Ž—也差不多。不˜q‡ä¸­å›½æœ‰å¥è¯å«å¥½äº‹å¤š¼‚¨ï¼Œå‘µå‘µåQŒç”¨åœ¨æˆ‘íw«ä¸Šçš„确不过分,我的½{¾è¯3æœ?日日本领事馆才签åQŒä¸‰æœˆå››æ—¥é€åˆ°å—京ã€?æœ?日和3æœ?日是双休日,所ä»?æœ?日签证才送到我手上。由于计划是3æœ?日派人去东京åQŒæ‰€ä»¥åªå¥½æ´¾å¦å¤–一个èín上有½{¾è¯˜q˜æ²¡æœ‰è¿‡æœŸçš„äºÞZ»£æ›¿æˆ‘˜q‡åŽ»åQŒè¿™‹Æ¡çš„æœÞZ¼šž®Þq®—泡汤咯。不˜q‡æˆ‘òq¶ä¸æ˜¯å¾ˆåœ¨æ„åQŒå› ä¸ºå…¬å¸è¿™é‡ŒåŽ»ä¸œäº¬å‡ºå·®çš„æœºä¼šç‹ å¤šï¼Œç‰¹åˆ«å¯¹äºŽå¼€å‘äh员,据说工作几年后一听到åŽÀL—¥æœ¬å‡ºå·®å°±ä¸ä¹æ„ï¼Œæ¯•竟也背井离乡么ã€?br />     在这个项目的途中åQŒå¤§æ¦‚在2005òq?月底2æœˆåˆçš„æ—¶å€™å…¬åæ€¹Ÿå¼€å§‹è¿›è¡Œäº†åˆ¶ä½œè¯¦ç»†è®¾è®¡çš„培训,我虽然在™å¹ç›®ä¸­ï¼Œä¸è¿‡ä¹Ÿæˆä¸ÞZº†å…¶ä¸­ä¸€å‘˜ã€‚è¿™‹Æ¡åŸ¹è®­æ€Õd…±å¤§æ¦‚6‹Æ¡è¯¾åQŒæ¯‹Æ?个多ž®æ—¶åQŒè™½ç„¶æ—¶é—´ä¸é•¿ï¼Œä¸è¿‡æŠŠè¯¦¾l†è®¾è®¡çš„要点以及思èµ\和容易出错的地方都说了出来,感觉很是不错åQŒè¿™å‡ æ¬¡è¯„¡š„培训后,虽然可能要我立即˜q›è¡Œè¯¦ç»†è®¾è®¡¾~–写˜q˜æœ‰ç‚¹å›°éš¾ï¼Œä¸è¿‡å¿ƒé‡Œé¢å·²¾læœ‰äº†ä¸ž®‘底åQŒæˆ‘觉得¾lè¿‡ä¸€ŒD‰|—¶é—´åŽçš„é”»ç‚û|¼Œæˆ‘应该可以有˜q›è¡Œè¯¦ç»†è®¾è®¡çš„能力了ã€?br />     3月初˜q™ä¸ªå¤§é¡¹ç›®ç»“束后åQŒæœ¬ä»¥äؓ可以休整下,不过很快通知æˆ?æœ?日加入另外一个项目,其实也不½Ž—一个正式的™å¹ç›®åQŒå±žäºŽå…¬å¸çŸ¥è¯†åº“的一个信息查询模块。由公司的一个技术专家负责,那äh也就是我˜q›å…¬å¸æ—¶å€™ç¬¬ä¸€ä¸ªé¡¹ç›®ä¸­å¸¦ç€æˆ‘的那个技术专å®Óž¼Œè¯´è“v来我和他˜q˜çœŸæœ‰ç¼˜åQŒçŽ°åœ¨æˆ‘˜q™ä¸ª™å¹ç›®˜q˜æ˜¯è·Ÿç€ä»–,而且公司里面唯一一个和我同月同日生的ähåQŒçœŸæ˜¯å¾ˆå·§çš„巧合呢。他人挺好,很热心,所以我也从他那学到了很多东è¥Ñ€‚è¿™‹Æ¡ç”±äºŽä¸æ˜¯æ­£å¼é¡¹ç›®ï¼Œæ‰€ä»¥åƈ没有什么基本设计书åQŒè€Œæ˜¯ä»–给我们开会议的时候大致说了下™å¹ç›®çš„内容,每个画面的具体功能以及数据库表格的设计。由于这‹Æ¡é¡¹ç›®è§„模很ž®ï¼Œæ€Õd…±ž®?2个画面的量,所以不采取Struts½{‰FrameworkåQŒè€Œæ˜¯é‡‡ç”¨æ¯”较原始的JSP + JavaBeans的构造。我们每个ähæ ÒŽ®ä»–所跟我们讲解得功能写每个äh自己分配到的画面的详¾l†è®¾è®¡ï¼Œå…¶å®žä¹Ÿä¸½Ž—真正的详细设计åQŒå°±æ˜¯æ¯ä¸ªäh把自己操作的那块的具体逻辑设计写出来,然后和他一起review一‹Æ¡ï¼Œå†å¼€å§‹ç¼–写代码。详¾l†è®¾è®¡è¿™é‡Œæˆ‘做的很快åQŒå½“天下午就把自己分配到的两个画面业务逻辑什么的都写好了åQŒæ˜ŸæœŸä¸€å¸ƒç½®å¾—ä“Q务,我星期三的时候全部编码自‹¹‹å®Œæ¯•提交,所以我的感觉就好像˜q™ä¸ªž®é¡¹ç›®ä¸€çž¬é—´ž®Þq»“束了ã€?br /> 日本每年财务¾l“算是在3月䆾åQŒæ‰€ä»¥æˆ‘们历来的习惯ž®±æ˜¯æ¯å¹´1月和2月很忙,3月开始清é—ÔŒ¼Œä¸€ç›´å¯ä»¥åˆ°5月左右会接到个大™å¹ç›®æ˜¨ã€‚所以接下来ž®ÞqœŸæ­£åˆ°äº†æˆ‘的空闲时期,没有™å¹ç›®çš„压力,我可以自由学我自己喜‹Æ¢çš„东西。很久以前买了本《精通EJB》第二版åQŒå¯æ˜¯ä¸€ç›´ä»¥æ¥æˆ‘觉得自己功力ž®šæµ…åQŒæ‰€ä»¥æ²¡æœ‰çœ‹åQŒè¿™‹Æ¡æˆ‘惌™®¤çœŸå­¦å­¦EJB。虽然大家公认EJBòq¶ä¸æ˜¯å¾ˆå¥½ï¼Œä¸è¿‡åŽ†æ¥å—åˆ°æ‰¹è¯„çš„éƒ½æ˜¯EJB中的Entity Bean部分åQŒè¿™éƒ¨åˆ†æˆ‘觉得可以借助Hibernate来å×I补,而会话Bean和消息驱动Bean则还是挺不错的。这‹Æ¡ä¹Ÿå½“学一门技术,学习其好的东西,不是很好的东西就当作以后开发时候的借鉴。《精通EJB》这本书我的感觉是书质量比较好,不过¾˜»è¯‘的水òq³ç¨å¾®å·®äº†ç‚¹åQŒç‰¹åˆ«æ˜¯æœ‰ä¸ž®‘错误,而且很低¾U§çš„错误居然校对的时候都没有发现åQŒä¸èƒ½ä¸è¯´æ˜¯ä¸ªæ¯”较大的瑕ç–üc€‚但是它不失ä¸ÞZ¸€æœ¬EJB的好教材。从一开始的JNDI开始,然后讲解了对象序列化åQŒRMI-IIOP½{‰ç­‰ã€‚这些以前都模模¾pŠç³ŠåQŒæˆ–者是看过了但是还不知道究竟有什么用。但是经˜q‡è¿™‹Æ¡çš„学习以后åQŒå¯¹˜q™äº›åˆ†å¸ƒå¼ç³»¾lŸæ¯”较需要的东西有了˜q›ä¸€æ­¥çš„了解åQŒæ„Ÿè§‰å¤´è„‘中比较清晰åQŒç©¶ç«ŸRMI是什么样的工作原理,怎样实现一个远½E‹æ–¹æ³•调用等½{‰ã€‚接下来的EJB学习åQŒè‡ªå·Þq”¨Eclipse + Weblogic边看书边动手åQŒå†™äº†ä¸€ä¸ªä¸ªè‡ªå·±çš„学习小½E‹åºã€‚我个äh感觉看书最好就是边看边自己动手写小学习½E‹åºåQŒè¿™æ äh¯”光看不练能学到多得多的东è¥Ñ€‚学了EJB后觉得脑子又清晰了很多,看见一个案例后头脑中就会有好几¿Uå¦‚何解决的æ–ÒŽ³•åQŒå‡ ¿Uæ–¹æ³•互相在头脑中自己比较,¾lè¿‡˜q™æ ·åQŒå¤§å¤§æé«˜äº†è‡ªå·±çš„æ€ç»´‹z»è·ƒæ€§ã€?br />     3月中旬开始由于公司比较清é—ÔŒ¼Œå¤§éƒ¨åˆ†äh处于没有™å¹ç›®çš„çŠ¶æ€ï¼Œæ‰€ä»¥å…¬åæ€‹D办了½W¬ä¸€å±Šå…¨å…¬å¸èŒƒå›´çš„ç¼–½E‹ç«žèµ›ã€‚å…¬å¸åªæŒ‡å®šäº†é¢˜ç›®äØ“ä¸€ä¸ªæ—¥åŽ†ç³»¾lŸï¼Œè¦æ±‚å…ähœ‰æ—¥ç¨‹è®îCº‹½{‰åŠŸèƒ½ï¼Œå…¶ä½™åŠŸèƒ½è‡ªç”±å‘æŒ¥ã€‚è¿™‹Æ¡ä¸å†é‡‡ç”¨å›¢é˜ŸåŞ式了åQŒè€Œæ˜¯é‡‡å–各自为战的策略。自从培训过详细设计以后åQŒæˆ‘头脑一直有如何写详¾l†è®¾è®¡çš„æ€èµ\åQŒè¿™‹Æ¡æˆ‘自己首先指定了开发计划,保证自己控制自己的进度。接着˜q›è¡Œäº†éœ€æ±‚分析,¼‹®å®šäº†æˆ‘有哪些功能。然后在自己的基本设计中开始进行数据库¾l“构设计。这‹Æ¡æˆ‘军_®šé‡‡ç”¨Hibernate+Struts的结构进行编写,˜q™æ ·æˆ‘的数据持久层操作大大简化,而且功能上也增强了许多。DB设计好以后我开始DEMO画面的制作。说实话åQŒæˆ‘¾ŸŽå·¥æ°´åã^å®žåœ¨ä¸æ€Žä¹ˆæ øP¼Œå¯ä»¥è¯´è™½ç„¶ä¸€èˆ¬ç½‘™å늚„效果我都会自己做出来åQŒä¸˜q‡å…·ä½“网™åµè®¾è®¡æˆä»€ä¹ˆæ ·æˆ‘还真是一½Hä¸é€šã€‚还好Dreamweaver我还½Ž—算是比较熟¾lƒï¼Œè‡ªå·±æ£é¼“捣鼓也想摸象æ ähŠŠDEMO画面¾l™è®¾è®¡å‡ºæ¥äº†åQŒä¸˜q‡ç¾Žè§‚不¾ŸŽè§‚我就觉得不怎么样了åQŒåªæ˜¯æˆ‘能力有限åQŒä¹Ÿæ²¡åŠžæ³•è®¾è®¡çš„æ›´å¥½çœ‹ï¼Œ˜q™ä¸ªæ—¶å€™æˆ‘感受åˆîCº†ä¸€ä¸ªé¡¹ç›®ä¸­¾ŸŽå·¥æ˜¯å¤šä¹ˆé‡è¦å•Šã€‚下面的详细设计自己写得很开心,把需要的功能都用文字反映了出来,˜q™ä¹Ÿ½Ž—我写成详细设计样子的第一份详¾l†è®¾è®¡äº†åQŒåšå®ŒæŒºæœ‰æˆž®±æ„Ÿçš„。接下来首先构筑自己˜q™ä¸ªž®é¡¹ç›®çš„FrameworkåQŒç»˜q‡å…¬åæ€¸¤ä¸ªæ­£å¼é¡¹ç›®çš„‹z—礼后,那两个项目的Framework我都认真研读˜q‡æºä»£ç çš„,所以我自己有了自己心里一套Framework的构造方法,特别是如何把Strutså’ŒHibernate¾l“合èµäh¥çš„结构,自己有自å·Þqš„一些想法。在˜q™æ¬¡Framework构造中åQŒæˆ‘没有复制ä»ÖM½•公司以前的代码段åQŒéƒ½æ˜¯å‡­ç€è‡ªå·±å¯¹ä»¥å‰çœ‹çš„代码理解后写出来的。这‹Æ¡é¡¹ç›®æˆ‘觉得对自å·Þqš„æé«˜ä¹Ÿå¾ˆå¤§ï¼Œé¦–å…ˆé”ȝ‚¼äº†è‡ªå·Þp¯¦¾l†è®¾è®¡çš„能力。其‹Æ¡ï¼Œè‡ªå·±è™½ç„¶å­¦ä¹ ˜q‡HibernateåQŒä¸˜q‡ä»Žæ¥æ²¡æœ‰è¿™ä¹ˆæ ·åº”用˜q‡HibernateåQŒè¿™‹Æ¡è®©è‡ªå·±å¤§å¤§æå‡äº†å®žè·µè¿ç”¨çš„¾léªŒã€‚公司由于知道这时也没有一个真正的™å¹ç›®ä½¿ç”¨HibernateåQŒæ‰€ä»¥è¿™æ—¶çš„æˆ‘也½Ž—公司内部Hibernate使用¾léªŒæœ€ä¸°å¯Œçš„äh了,˜q™ä¹Ÿä¸ÞZº†åŽæ¥æˆ‘协助别的ä‹É用了Hibernate的项目解决问题的原因。再‹Æ¡ï¼Œæˆ‘è¿™‹Æ¡è‡ªå·±å†™äº†FrameworkåQŒç‰¹åˆ«åœ¨æ‰¹å¤„理方面,˜qç”¨äº†è®¸å¤šåˆšå­¦ä¼šç†è§£æŽ‰çš„设计模式åQŒè¿™äº›æ¨¡å¼è®©æˆ‘çš„½E‹åºæ›´å…·æœ‰å¥å£®æ€§å’Œå¯æ‰©å±•性,让我在设计方面的能力大大提升了ã€?br /> ˜q™æ¬¡çš„ç¼–½E‹ç«žèµ›æˆ‘写得比较认真åQŒä»£ç é‡çš„确也很大,æ€ÖM»£ç è¡Œæ•°è¶…˜q‡äº†3万行åQŒæœ‰æ•ˆä»£ç è¡Œæ•îC¹Ÿåœ?万行以上。经˜q‡å…¬åæ€¸“家们的评定后åQŒæˆ‘得到了第一名,虽然没有什么奖品,不过肯定了我˜q™æ®µæ—‰™—´ä»¥æ¥çš„努力,我还是很开心的。而且˜q™æ¬¡çš„ç¼–½E‹ç«žèµ›è®©æˆ‘大大增加了¾~–码的熟¾lƒåº¦åQŒè€Œä¸”也在其中演练了许多自己想出来的编½E‹æŠ€å·§ï¼Œä¸ÞZ»¥åŽçš„发展带来很大的好处ã€?br />     ä»?月䆾开始,公司ç”׃ºŽæ¯”较清闲åQŒæ‰€ä»¥éƒ¨é—¨å†…部开始进行各¿UåŸ¹è®­ã€‚我们部门开展了3™å¹åŸ¹è®­ï¼Œ½W¬ä¸€™å¹å°±æ˜¯ç¼–½E‹èƒ½åŠ›åŸ¹è®­ï¼Œ½W¬äºŒ™åÒŽ˜¯Oracle数据库技术培训,½W¬ä¸‰™åÒŽ˜¯‹¹‹è¯•技巧培训。在¾~–程能力培训中,主要ž®±æ˜¯æŠŠåŽŸæ¥æ²¡æœ‰æ³¨æ„çš„¾l†èŠ‚é‡‡å–å¤§å®¶è®¨è®ºåQŒè½®‹¹è®²è¯„¡š„方式˜q›è¡Œçš„,虽然其中很多东西我原来都是知道的åQŒä¸˜q‡ä¹Ÿæœ‰åŽŸæ¥ä¸æ¸…æ¥šçš„åœ°æ–V€‚而且¾lè¿‡äº†è¿™‹Æ¡äº’相讨论,更加加深了印象。在Oracle培训中我觉得收获很大åQŒè¿™ä¸ªOracle培训采取了传¾lŸçš„上课的模式,由我们开发小¾l„中一个取得OCM的老员工给我们讲解。对于OracleåQŒæˆ‘原来基本上就只会写写SQL语句åQŒå…·ä½“Oracle有什么特别的功能åQŒå¯ä»¥åšä»€ä¹ˆæˆ‘也不是很清楚。但是这‹Æ¡ä¸Šè¯¾ä»ŽOracle的启动原理开始,让我知道Oracle中究竟有什么,Oracle数据库各部分在磁盘上是如何存攄¡š„åQŒControl FileåQŒRedo File½I¶ç«Ÿæ˜¯ä»€ä¹ˆæ„æ€ï¼Œåœ¨æ•°æ®åº“中è“v什么作用,数据库是怎么依赖他们˜qè¡Œçš„,˜q˜æœ‰å¦‚何对Oracle˜q›è¡Œ¾pȝ»Ÿ½Ž¡ç†å‘˜çñ”别的½Ž¡ç†åQŒå¦‚何在不停止数据库˜qè¡Œçš„æƒ…况下˜q›è¡Œæ•°æ®åº“的更新、升¾U§ã€å¤‡ä»½ç­‰½{‰ã€‚这些东西虽焉™žå¸¸æœ‰ç”¨ï¼Œä½†åœ¨òqÏx—¶çš„开发是学不到的åQŒè¿™‹Æ¡è¶ç€˜q™ä¸ªæœÞZ¼šå¤§å¤§æå‡äº†è‡ªå·±Oracle的水òq»I¼Œæ„Ÿè§‰éžå¸¸å¼€å¿ƒã€‚数据库一向是我的弱项åQŒåœ¨ä¸Šå¤§å­¦çš„æ—¶å€™æˆ‘SQL语句能力只是一般,数据库管理配¾|®ä»€ä¹ˆåŸºæœ¬ä¸€ç‚šwƒ½ä¸æ‡‚åQŒé€šè¿‡˜q™æ¬¡é›†ä¸­çš„培训,我觉得自å·Þqš„能力又进一步增å¼ÞZº†åQŒå¼±™å¹ä¹Ÿåœ¨æ…¢æ…¢é€€å´ã€‚在三项培训中最后进行的‹¹‹è¯•培训我承认我没有怎么认真åŽÕd­¦åQŒæ‰€ä»¥å­¦ä¼šçš„也就是些‹¹‹è¯•概念åQŒå…·ä½“çš„‹¹‹è¯•技巧什么的˜q˜æ˜¯ä¸æ€Žä¹ˆä¼šã€‚现在开发和‹¹‹è¯•的结合性越来越高,看来要下下功夫,以免¾l™æ·˜æ±°å’¯ã€?br />     提了˜q™æ®µæ—‰™—´åœ¨å…¬å¸çš„˜q›å±•åQŒè¿˜æ²¡è¯´è‡ªå·±çš„学习呢åQŒè¿™ŒD‰|—¶é—´æ­£å¥½çœ‹è§ä¸­æ–‡ç‰ˆçš„《JUnit in Action》出版了åQŒåœ¨ä¹¦çš„背后写着“如果没有看˜q‡è¿™æœ¬ä¹¦åQŒå°±ä¸è¦å¯¹J2EE˜q›è¡Œå•å…ƒ‹¹‹è¯•”这句话。我早在åŽÕd¹´ž®×ƒº†è§£äº†JUnit的强大功能,再加上Ant的话对于回归‹¹‹è¯•æ˜¯éžå¸æ€¾¿åˆ©çš„。趁有时é—ß_¼Œæˆ‘便äº?月底4月初的时候开始看˜q™æœ¬ä¹¦ã€‚当时的我看《精通EJB》第二版看了一半,发现其中错误­‘Šæ¥­‘Šå¤šåQŒè€Œä¸”文字也有些地方不知所云了åQŒæ‰€ä»¥æ‰”下不再浪è´ÒŽ—¶é—´çœ‹é‚£æœ¬ä¹¦ï¼Œä¸“心攻读《JUnit In Action》。凭良心è¯ß_¼ŒManning的这套In Action丛书的确很不错,从我先前看的《Hibernate In Action》英文版ž®Þpƒ½çœ‹å‡ºæ¥ï¼Œå…¶ä¸­å¯¹ä»£ç çš„¾~–排非常方便读者,感觉可以很顺利的看到你所想看到的代码片断。这套《JUnit In Actionã€‹ä¹Ÿæ˜¯ä¸€æ øP¼Œåšæ–‡è§†ç‚¹çš„纸张还是很好的åQŒæŽ’版ä‹É用了Manning的风æ û|¼Œé˜…读èµäh¥å¾ˆèˆ’服,所以我è¯Õd¾—很快åQŒå¤§æ¦‚就两个多星期就è¯Õd®Œäº†è¿™æœ?00多页的书。感觉的¼‹®æ”¶èŽ·ä¸‹¹…,首先åQŒåŽŸæ¥çš„è‡ªåŠ¨åŒ–é…¾|®å·¥å…·ä¸­åªä¼šä½¿ç”¨ä¸€ä¸ªAntåQŒå…¶ä»–的基本没听说过åQŒåœ¨˜q™æœ¬ä¹¦ä¸Šè¯¦ç»†ä»‹ç»äº†Maven。听˜q‡ä¹¦ä¸­çš„讲解以及自己的试验,的确觉得Maven功能很强大,不过感觉èµäh¥é…ç½®æ¯”Ant要麻烦,所以我自己的感觉是Ant在项目中˜q˜æ˜¯ä¼šå¹¿æ³›åº”用,不过Maven在大型项目,特别是整个Site中有很大的用武之圎ͼŒå¯¹äºŽæˆ‘们来说åQŒä‹É用的æ–ÒŽ³•都是很简单的åQŒæŽŒæ¡å¦‚何编写配¾|®æ–‡ä»¶æ‰æ˜¯æˆ‘们的关键ã€?br /> 书对JUnit与Cactus在J2EE的测试手法上¾l™äº†å¤§é‡çš„事例,¾l™äh的感觉非常好åQŒIn Action˜q™å¥—丛书最大的优点ž®±åœ¨˜q™é‡ŒåQŒç”¨å®žä¾‹ä»£ç ç‰‡æ–­è®©ä½ ˜q…速了解一样东è¥Ñ€‚在实际工作中其实JUnit应用也是比较òq¿æ³›çš„,特别如果采取‹¹‹è¯•驱动开发的话,JUnit是必不可ž®‘的一部分。在TagLib‹¹‹è¯•åQŒJSP单体‹¹‹è¯•åQŒæ•°æ®åº“‹¹‹è¯•å’ŒEJB‹¹‹è¯•都是我以前根本没有看˜q‡çš„东西。其实这‹Æ¡è™½ç„¶å­¦æ˜¯å­¦ä¼šäº†åQŒä¸˜q‡çœŸæ­£åšçš„æ—¶å€™è¿˜æ˜¯è¦æœ‰ä¸ªä»£ç ä¾‹å­ä¾è‘«èŠ¦ç”»ç“¢ã€‚æˆ‘æƒ›_¤§å®¶è‚¯å®šä¹Ÿéƒ½æœ‰˜q™ç§æ„Ÿè§‰åQŒå†™½E‹åºçš„æ—¶å€™å…ˆæ‰¾ä¸€ŒD‰|œ‰ç‚¹ç›¸ä¼¼çš„代码片断Copy˜q‡æ¥åQŒç„¶åŽçœ‹çœ‹è¦ä¿®æ”¹ä»€ä¹ˆåœ°æ–¹ï¼ŒçœŸæ­£ä»Žå¤´åˆ°å°¾è‡ªå·±ç”¨æ‰‹å†™çš„代码片断是不多的åQŒé™¤éžä½ å·²ç»çƒ‚熟于心。不˜q‡è¿™æœ¬ä¹¦å¿«çœ‹å®Œçš„æ—¶å€™ï¼Œ™å¹ç›®åˆæ¥äº†ã€?br />     ˜q™æ¬¡åšä¸€ä¸ªä¼ä¸šçš„MIS¾pȝ»ŸåQŒä¸Žä»¥å¾€ä¸åŒçš„æ˜¯åQŒè¿™‹Æ¡å®¢æˆïL»™äº†ä¸€ä¸ªæ¯”较庞大的基盘åQŒå°è£…了˜q?00个TagåQŒåŸºæœ¬ä¸ŠæŠŠå„¿Uå„æ ähœ‰å¯èƒ½é‡åˆ°çš„æ“ä½œéƒ½ž®è£…到Tag里面了。而且所有的画面昄¡¤º½{‰ä¿¡æ¯éƒ½æ˜¯æ”¾åœ¨æ•°æ®åº“çš„Table中,所以这‹Æ¡è¦æ±‚不写ä“Q何程序代码,只是学会使用好这些TagåQŒç„¶åŽåˆ©ç”¨è¿™äº›Tag写出Jsp™åµé¢ã€‚一开始的时候还真是头疼åQŒè¿™äº›Tag一个都不明白,而且文档不是非常齐全åQŒTagçš„Source中注释也比较ž®‘,学习èµäh¥ä¸æ˜¯å¾ˆæ–¹ä¾Ñ€‚我们一å…?个äh投入到这个项目的前期准备中,在第一个星期的学习中大家互相分配好个äh学习的模块,随时互相交流。在后来的深入中发现˜q™ä¸ª™å¹ç›®çš„业务逻辑操作会ä‹É用PL/SQL以及存储˜q‡ç¨‹æ¥è¿›è¡Œï¼Œå¯¹äºŽæˆ‘来è¯ß_¼ŒPL/SQL是从来没有做˜q‡çš„东西åQŒå°±å«åšä¸€½Hä¸é€šï¼ŒäºŽæ˜¯æˆ‘需要从头开始学习PL/SQLåQŒä»¥åŠå¦‚何编写存储过½E‹ã€‚我从网上下了一个PL/SQL的电子书¾cï¼Œç„¶åŽåœ¨å…¬å¸èŠ±äº†ä¸€å¤©æ—¶é—´è¿›è¡Œå­¦ä¹ ï¼Œä¸ªäh用的是Toad来调试PL/SQL的,虽然别äh喜欢用PL/SQL Developer来进行开发,不过我还是比较钟爱ToadåQŒè€Œä¸”Toad的确功能也很强大åQŒä‹É用è“v来也很方便就是了。经˜q‡ç¬¬ä¸€å¤©çš„PL/SQL的学习,基本掌握了全部语法以及存储过½E‹çš„书写格式½{‰ç­‰åQŒå¼€å§‹èƒ½å¤Ÿå†™å†™éžå¸¸ç®€å•çš„PL/SQL。接下来的两三天不断巩固熟练åQŒå®¢æˆ·é‚£é‡Œä¹Ÿå‘过来几本详¾l†è®¾è®¡è®©æˆ‘们¾lƒä¹ ç€åšä¸€ä¸‹ã€‚有了实际的详细设计åQŒå†åŠ ä¸Šæˆ‘ä»¬ä¹‹é—´äº’ç›¸äº¤æµåQŒæˆ‘们提高的都很快,大概˜q‡äº†ä¸‰å››å¤©ï¼Œå¤§å®¶ž®±æŠŠåŸºæœ¬è¯¦ç»†è®¾è®¡ä»£ç ¾~–写完毕了,而且¾lè¿‡å®žé™…é”ȝ‚¼åQŒæˆ‘çš„PL/SQL¾~–写存储˜q‡ç¨‹çš„æ°´òq³ä¹Ÿå¤§å¤§æå‡åQŒå·²¾lå¯ä»¥æ»¡­‘›_¼€å‘中的需要了ã€?br /> ˜q™ä¸ª™å¹ç›®å› äؓ如果我们一开始做的能让客æˆäh»¡æ„çš„话,后箋的项目将会比较庞大,所以Leader军_®šæŠŠæˆ‘们Group比较½Iºé—²çš„å…¶ä»–äh也先培训一下,让他们有ç‚ÒŽ„Ÿè§‰ï¼ŒåˆîC»¥åŽæ­£å¼å¼€å‘的时候也能迅速进入状态,负责¾l™ä»–们培训的ä»ÕdŠ¡ä¹Ÿå°±äº¤ç»™äº†æˆ‘ã€‚è¯´èµäh¥æ˜¯åŸ¹è®­ï¼Œå…¶å®žä¹Ÿå°±æ˜¯æŠŠå¤§æ¦‚‹¹ç¨‹ä»¥åŠæ–ÒŽ³•通过一‹Æ¡ä¼šè®®çš„形式告诉他们åQŒç„¶åŽæŠŠæˆ‘前面已¾lä½œå¥½çš„é‚£ä¸ªç”»é¢ä½œäØ“ä»–ä»¬çš„ä½œä¸šï¼Œè¦ä»–ä»¬çœ‹ç€è®¾è®¡ä¹¦è‡ªå·±æŠŠç”»é¢åˆ¶ä½œå‡ºæ¥ã€‚è¿™ä¸ªæ—¶å€™ä¹Ÿè¦æ”¾åŠ›_Š¨èŠ‚äº†åQŒé»„金周可以休息一个星期,æƒÏxƒ³ž®Þp§‰å¾—很Happy。劳动节的时候基本没有怎么学习åQŒåªæ˜¯å…ˆæŠŠXML-RPC仔细看了下,学会了如何去写一个XML-RPC的应用,接着½Eå¾®çœ‹äº†ç‚¹SOAPåQŒçœ‹å¾—也不错åQŒåªæ˜¯äº›½Ž€å•çš„SOAP的例子而已åQŒé‚£äº›SOAP的复杂东襉Kƒ½æ²¡æœ‰çœ‹ã€?br />     很快ž®×ƒº”一黄金周七天放假放完,八号开始上班,上班后就开始正式做节前ž®±å®šå¥½çš„那个™å¹ç›®åQŒè¿™‹Æ¡æ€§è´¨å±žäºŽè¯•做åQŒä¹Ÿž®±æ˜¯äººå®¶å…ˆå‘一批设计书˜q‡æ¥åQŒæˆ‘们然后开始CodingåQŒå¤§æ¦‚做了一周后åQŒæˆ‘自己害了急性结膜炎åQŒåªèƒ½å›žå®¶ä¼‘息,˜q™æ¬¡å¯çœŸçš„æ˜¯åªèƒ½ä¼‘息了,眼睛觉得特别涨,不要说电脑了åQŒè¿žä¹¦éƒ½ä¸èƒ½çœ‹ï¼Œçœ‹äº†çœ¼ç›ž®Þq–¼ã€‚所以在家就只能睡大觉,˜q‡äº†ä¸€å‘¨çœ¼ç›å¤§æ¦‚才复原åQŒå¯ä»¥åŽ»å…¬å¸ä¸Šç­äº†ã€‚å›žåˆ°å…¬åæ€»¥åŽï¼ŒLeader通知我说我不用去做上‹Æ¡é‚£ä¸ªé¡¹ç›®äº†åQŒè¦æˆ‘加入我们Group的一个新的项目,˜q™ä¸ª™å¹ç›®æ¯”较大,当时˜q˜å¤„于东京刚刚做好基本设计,我们从东京把ä»ÕdŠ¡æŽ¥ä¸‹æ¥ï¼Œå‡†å¤‡å‘å›žæ¥åšè¯¦ç»†è®¾è®¡ã€‚æˆ‘˜q›åŽ»çš„æ—¶å€™é¡¹ç›®æ‰å¼€å§‹ä¸‰å››å¤©åQŒåŸºæœ¬ä¸Š˜q˜æ²¡æœ‰åšä»€ä¹ˆï¼Œ˜q™æ¬¡æˆ‘进入了详细设计制作ž®ç»„åQŒå¼€å§‹è¿›è¡Œè¿™ä¸ªé¡¹ç›®çš„详细设计的制作ã€?br />     ç”׃ºŽæˆ‘属于第一‹Æ¡åœ¨æ­£å¼çš„项目中参与详细设计åQŒæ‰€ä»¥å¾ˆå¤šä¸œè¥‰Kƒ½ä¸æ˜Žç™½ï¼Œç‰¹åˆ«æ˜¯ä¸šåŠ¡ä¸Šé¢çš„ä¸œè¥¿åQŒè®¸å¤šæ—¥è¯­ä¸­çš„业务术语我æ ÒŽœ¬ä¸æ˜Žç™½ï¼Œæ¯”如什么卖切,切替åQŒä»•入什么的。看着基本设计书,感觉跟以前看详细设计书有很大的不同。具体的东西写的ž®‘了åQŒä¸šåŠ¡æµ½E‹é€»è¾‘框架什么的比较多,所以需要首先把业务内容都熟悉了åQŒæ‰å¯èƒ½å†™å‡ºè¯¦ç»†è®¾è®¡æ¥ã€‚è¿™‹Æ¡çš„详细设计我也不是孤军奋战åQŒè€Œæ˜¯æœ‰ä¸€ä¸ªè¿›å…¬å¸4òq´çš„老员工带着我一起做åQŒæˆ‘çš„ä“Q务很轻,不过重点是学会如何去写详¾l†è®¾è®¡ï¼Œä¹Ÿè®¸ä¸‹æ¬¡å†æœ‰ä¸€ä¸ªæ¯”较大的项目,ž®±æ²¡æœ‰åˆ«äººå†å¸¦ç€æˆ‘,而是我自å·×ƒ¸€ä¸ªähåŽÕd®Œæˆè¯¦¾l†è®¾è®¡äº†ã€‚大概详¾l†è®¾è®¡å†™äº?0天左叻I¼Œæˆ‘被通知当天把手上的一份详¾l†è®¾è®¡å†™å®Œï¼Œ½W¬äºŒå¤©è¿›å…¥æ–¹å¼è®¾è®¡å°¾l„进行方式的设计ã€?br /> ˜q›å…¥æ–¹å¼ž®ç»„以后åQŒæŽ¥åˆ°çš„ä»ÕdŠ¡ž®±æ˜¯å¥½å‡ ä¸ªç¼–写DB操作斚w¢çš„代码自动化生成工具。由于这‹Æ¡DBæ–šw¢òq¶æ²¡æœ‰éžå¸¸å¼ºåˆ¶æ€§çš„那种规约åQŒæ‰€ä»¥SQL语句的编写可以说比较随意åQŒè¿™ž®Þq»™æˆ‘å·¥å…ïLš„¾~–写带来了很大的隑ֺ¦å’ŒæŒ‘战。这‹Æ¡è´Ÿè´£ç®¡ç†æ–¹å¼å°¾l„çš„äºÞZ»ç„¶æ˜¯˜q›å…¬åæ€»¥åŽç»å¸¸å¸¦ç€æˆ‘的那位技术专å®Óž¼Œæ‰€ä»¥ä¹ŸçœŸç®—很åéy呢。写工具其实很对自èín代码¾~–写的提高也很有好处åQŒå› ä¸ºé¦–先客户那里资料会不断修改åQŒè¿™äº›å·¥å…·ä½ ä¸ÞZº†ä»¥åŽå®¢æˆ·æ›´æ–°èµ„æ–™åŽä½ èƒ½é¡ºåˆ©æ›´æ–°å·¥å…øP¼Œä½ éœ€è¦è®¾è®¡ä¸€ä¸ªä¼˜è‰¯çš„FrameworkåQŒä¸ä¸€å®šéœ€è¦å¤šä¹ˆå¤æ‚çš„FrameworkåQŒä¸˜q‡ä¸€å®šè¦ž®½é‡æŠŠç¨‹åºå„æ–šw¢çš„耦合度尽量降低,˜q™æ ·æ‰æœ‰åˆ©äºŽè‡ªå·±å¯¹å·¥å…¯‚¿›è¡Œæ‰©å±•。紧接着很快åQŒé¡¹ç›®ä»£ç ç¼–写开始了åQŒæˆ‘çš„ä“Q务算中等偏上åQŒæœ‰2个画面和一个批处理需要编写,复杂度还½Ž—比较繁一炏V€‚è¿™‹Æ¡é¡¹ç›®éœ€è¦ç¼–写JUnit½E‹åºåQŒæ¯å¤©éƒ½è¦è¿›è¡Œå›žå½’测试,保证代码Method的正¼‹®æ€§ã€‚JUnit虽然自己会用åQŒä½†æ˜¯ä»Žæ¥æ²¡æœ‰åœ¨çœŸæ­£çš„项目中使用åQŒæ‰€ä»¥åœ¨çœŸæ­£ç”¨çš„æ—¶å€™æ„Ÿè§‰æœ‰ç‚ÒŽ‰‹­‘Ïx— æŽªã€‚以前做JUnit从来都是觉得¾l™ä¸ªå‚æ•°åQŒæ£€‹¹‹ä¸€ä¸ªè¿”回值就好了åQŒå…¶å®žä¸æ˜¯é‚£ä¹ˆå›žäº‹ï¼Œä¸šåŠ¡é€»è¾‘å¤æ‚äº†ï¼Œè‡ªå·±éœ€è¦åšå¤§é‡çš„Stub来模拟真实的Class的返回倹{€‚设计一个好的Stub是比较困隄¡š„åQŒç‰¹åˆ«åœ¨æ•°æ®åº“内å®Òޝ”较丰富的时候,一张数据库Tablež®±æœ‰ä¸Šç™¾ä¸ªåŸŸåQŒå·¥ä½œé‡å¯è§ä¸€æ–‘了。项目要åˆ?5òq?月中旬才会结束,所以现在还在紧张的开发阶ŒDüc€‚我写了JUnit的感觉就是难点不在如何去写JUnit½E‹åºåQŒè€Œæ˜¯å¦‚何去设计测试用例。对于我们这样不是以‹¹‹è¯•凸™ín的程序员来说åQŒè®¾è®¡æµ‹è¯•用例是很痛苦而且很艰隄¡š„事情åQŒä¼°è®¡æœ‰˜q‡ç›¸ä¼¼ç»éªŒçš„äºø™‚¯å®šä¼šè¡¨ç¤ºèµžåŒã€?br />     当然我一边在紧张的做™å¹ç›®åQŒå¯¹äºŽä¹¦æœ¬çš„学习也没有闲着。这ŒD‰|—¶é—´æŠ“紧把侯捷的Word排版艺术扫了一遍,看完觉得收获颇丰。虽然我以前觉得我在Word上用得挺不错åQŒæ—¥å¸¸çš„一些操作什么的我都会,不过看这本书的中间我发现我还是有很多地方不会的,也学åˆîCº†ä¸å°‘东西åQŒåœ¨ä»¥åŽçš„Word排版中会很受到好处。由于项目用åˆîCº†Spring知识åQŒæ‰€ä»¥æˆ‘也看了网¾lœä¸Šé‚£ä¸ª‹¹ä¼ òq¿æ³›çš„Spring开发指南的PDF看了一遍,感觉长了见识åQŒå¯¹IOC以及DI有了˜q›ä¸€æ­¥çš„了解åQŒä¹Ÿç†è§£äº†äؓ什么需要采用IOC以及DI。不˜q‡è¿™ä¸ªä¹Ÿæ²¡æœ‰æ·±å…¥ä¸‹åŽ»ä»”ç»†çœ‹ï¼Œä»¥åŽ½{‰é¡¹ç›®ç¨å¾®ç©ºé—²ä¸€ç‚¹çš„æ—¶å€™ä¸€å®šå†æŠŠHibernateå’ŒSpring好好看一下,学习人家的设计理念,提高自己能力。对了,也许最重要的是我最˜q‘在看一本书åQŒå°±æ˜¯ã€ŠJ2EE核心模式》的½W¬äºŒç‰ˆï¼Œæˆ‘当时原来准备看电子版的˜q™æœ¬ã€ŠCore J2EE Patterns》的åQŒä¸˜q‡çªç„¶åœ¨ä¹¦åº—发现˜q™æœ¬ä¹¦çš„中文版出来了åQŒè€Œä¸”译者有熊节的名字,也就是跟侯捷一èµïL¿»è¯‘《重构——改善既有代码的设计》的那个译者,我比较相信他¾˜»è¯‘的水òq»I¼ŒäºŽæ˜¯ä¹°å›žæ¥çœ‹åQŒè™½ç„‰™¡¹ç›®éžå¸¸ç´§å¼ ï¼Œæˆ‘一个月½Ž—上周末需要加班在100个小时左右的样子åQŒä½†æ˜¯æˆ‘ç›æ€¿¡æ—‰™—´æ˜¯æ“v¾lµé‡Œçš„æ°´åQŒåªè¦åŽ»æŒ¤ï¼Œè‚¯å®šä¼šæœ‰çš„ã€‚æ‰€ä»¥æˆ‘åˆ°çŽ°åœ¨å¤§æ¦‚çœ‹äº?周的样子åQŒå·²¾lçœ‹äº?00多页åQŒè€Œä¸”感觉自己的设计视野也开阔了许多åQŒè¿™æœ¬ä¹¦çš„确很好åQŒæŠŠJ2EE中常用的一些模块原理都说了出来åQŒè¯´æ˜Žäº†ä¸ÞZ»€ä¹ˆè¿™ä¹ˆåšå¥½ï¼Œ˜q™ä¹ˆåšå¦‚何减ž®‘了耦合性,提高了可¾l´æŠ¤æ€§ç­‰½{‰ï¼Œæ€ÖM¹‹åQŒæœ‰1òq´ä»¥ä¸ŠJ2EE开发经验而且觉得自己对J2EE有了比较好的了解的开发äh员我强烈推荐看这本书。看了这本书以后我都在回想以前设计的一些框æžÓž¼Œä¸€äº›æ¨¡å—,觉得自己有很多地方当时设计的时候觉得很¾_‘ÖéyåQŒä¸˜q‡å´å±žäºŽå¼„åéy成拙åQŒåŠ å¤§äº†æ¨¡å—çš„è€¦åˆæ€§ï¼Œæ‰€ä»¥åœ¨ä¿®æ”¹çš„æ—¶å€™æ¯”è¾ƒéš¾äºŽä¸‹æ‰‹ã€?/font> <img src ="http://www.aygfsteel.com/bingle/aggbug/66064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/bingle/" target="_blank">冰浪</a> 2006-08-28 02:03 <a href="http://www.aygfsteel.com/bingle/archive/2006/08/28/66064.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">ÍпËÑ·ÏØ</a>| <a href="http://" target="_blank">×ÏÑôÏØ</a>| <a href="http://" target="_blank">½úÖÐÊÐ</a>| <a href="http://" target="_blank">ÂÞµéÏØ</a>| <a href="http://" target="_blank">Ìì×£</a>| <a href="http://" target="_blank">ÄþÏçÏØ</a>| <a href="http://" target="_blank">´ó³ÇÏØ</a>| <a href="http://" target="_blank">Î÷Ï¿ÏØ</a>| <a href="http://" target="_blank">Å©°²ÏØ</a>| <a href="http://" target="_blank">ÕѾõÏØ</a>| <a href="http://" target="_blank">ÄÇÇúÏØ</a>| <a href="http://" target="_blank">ÒÁͨ</a>| <a href="http://" target="_blank">ÎÄË®ÏØ</a>| <a href="http://" target="_blank">äÃÂ¹ÏØ</a>| <a href="http://" target="_blank">ÈýºÓÊÐ</a>| <a href="http://" target="_blank">ÁéÊÙÏØ</a>| <a href="http://" target="_blank">¸ßÌ¨ÏØ</a>| <a href="http://" target="_blank">ÓÀ´¨ÊÐ</a>| <a href="http://" target="_blank">±±Á÷ÊÐ</a>| <a href="http://" target="_blank">ÁÙÒÊÊÐ</a>| <a href="http://" target="_blank">°¢À­ÉÆÓÒÆì</a>| <a href="http://" target="_blank">Û¶ÑôÏØ</a>| <a href="http://" target="_blank">Æ½Ò£ÏØ</a>| <a href="http://" target="_blank">äÀ´¨ÏØ</a>| <a href="http://" target="_blank">¶õÍÐ¿ËÆì</a>| <a href="http://" target="_blank">µ¾³ÇÏØ</a>| <a href="http://" target="_blank">¹þ¶û±õÊÐ</a>| <a href="http://" target="_blank">ÈĺÓÏØ</a>| <a href="http://" target="_blank">¹àÑôÏØ</a>| <a href="http://" target="_blank">Ú«ºÓÊÐ</a>| <a href="http://" target="_blank">ÐÅ·áÏØ</a>| <a href="http://" target="_blank">ÓñϪÊÐ</a>| <a href="http://" target="_blank">ÁÙ°²ÊÐ</a>| <a href="http://" target="_blank">²ýÒØÊÐ</a>| <a href="http://" target="_blank">º×ÇìÏØ</a>| <a href="http://" target="_blank">ÄÏ»ªÏØ</a>| <a href="http://" target="_blank">ÑŽ­ÏØ</a>| <a href="http://" target="_blank">É«´ïÏØ</a>| <a href="http://" target="_blank">ÖÐɽÊÐ</a>| <a href="http://" target="_blank">Ðí²ýÊÐ</a>| <a href="http://" target="_blank">½­É½ÊÐ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>