第一篇:Java程序員修煉之道
從2002開(kāi)始接觸Java學(xué)會(huì)HelloWorld這么經(jīng)典的程序到如今不知不覺(jué)已經(jīng)十年啦,十年中
親耳聽(tīng)到過(guò)不少大牛的演講,見(jiàn)到過(guò)項(xiàng)目中的神人在鍵盤(pán)上運(yùn)指如飛的編程速度,當(dāng)時(shí)就
被震撼了。當(dāng)編程越來(lái)越成體力活,我們還能有自己的思想,還能修煉為Java系統(tǒng)級(jí)別的
程序員嘛?學(xué)習(xí)與修煉以下知識(shí)與技能,幫你早日達(dá)成愿望。
一:Java語(yǔ)言學(xué)習(xí)
對(duì)線(xiàn)程(thread),串行化,反射,網(wǎng)絡(luò)編程,JNI技術(shù),容器(Map,List, Iterator), 類(lèi)加載器
(ClassLoader),輸入輸出流,垃圾回收機(jī)制,有比較深入的了解,最起碼做過(guò)項(xiàng)目應(yīng)用。有
過(guò)Java項(xiàng)目的性能優(yōu)化經(jīng)驗(yàn),最起碼掌握一種性能監(jiān)視工具的使用,熟悉JVM參數(shù),最起
碼知道可以在JVM啟動(dòng)時(shí)指定不同垃圾回收機(jī)制,以及不同垃圾回收機(jī)制之間的
差別,熟悉JVM參數(shù)優(yōu)化。
二:J2EE方面
最好知道JDBC規(guī)范是怎么回事情,面對(duì)Oracle數(shù)據(jù)庫(kù)如果告訴你JDBC驅(qū)動(dòng)不能用了,你
還知道有OCI驅(qū)動(dòng)可以。掌握常見(jiàn)的SQL語(yǔ)句,熟悉JMS,JNDI等組件,掌握一套web開(kāi)
發(fā)模式,從前臺(tái)到后臺(tái),有能力整合好這樣的框架。理解并掌握MVC思想,像SSH已經(jīng)實(shí)
現(xiàn)了MVC的分層,幾乎不需要你自己再實(shí)現(xiàn),假設(shè)你開(kāi)發(fā)一個(gè)簡(jiǎn)單的Swing程序,你能MVC
就說(shuō)明你真的掌握了MVC的精髓。有能力在J2EE前端開(kāi)發(fā)中構(gòu)建自己的MVC模式,知道
什么是WEB2.0,知道什么是SOA,SaaS,SaaP等含義
三:理解并能合理運(yùn)用設(shè)計(jì)模式,UML建模
知道并理解設(shè)計(jì)模式中蘊(yùn)含的幾種基本原則如:里氏替換原則,開(kāi)閉原則,合成復(fù)用原則,依賴(lài)倒置原則有很好的理解,并能舉例說(shuō)明。對(duì)常用的設(shè)計(jì)模式如工廠模式,單例模式,觀
察者模式,責(zé)任鏈模式,橋接模式等知道靈活運(yùn)用,明白什么是回調(diào)(Callback)。最后用一位
高人話(huà)來(lái)總結(jié)設(shè)計(jì)模式,它是為了讓軟件更容易被別人讀懂,更容易維護(hù)而產(chǎn)生,設(shè)計(jì)模
式本質(zhì)是程序員之間的交流,如果A用工廠模式設(shè)計(jì)一個(gè)模塊B來(lái)接替,A只要說(shuō)該模塊是
工廠模式實(shí)現(xiàn),B維護(hù)起來(lái)應(yīng)該容易得多,所以設(shè)計(jì)模式是關(guān)于交流,不關(guān)于代碼。切忌濫
用設(shè)計(jì)模式。學(xué)會(huì)使用UML建模工具至少熟悉一種URL建模工具。
四:注重用戶(hù)體驗(yàn),掌握KISS原則,知道歐卡姆剃刀原則
顧客就是上帝這個(gè)口號(hào)我們已經(jīng)喊了N年了,程序員的勞動(dòng)成果最終也需要轉(zhuǎn)換為服務(wù)提
供給客戶(hù),用戶(hù)體驗(yàn)至關(guān)重要,常常看到的場(chǎng)景是功能實(shí)現(xiàn)了,軟件很難使用,程序員有個(gè)
很充足的理由我不是美工,其實(shí)注重用戶(hù)體驗(yàn)跟美工八桿子也打不到一起,F(xiàn)oxMail的成功
在很大程度是用戶(hù)體驗(yàn)的成功,友好,清晰的用戶(hù)提示,強(qiáng)的容錯(cuò)與糾錯(cuò)設(shè)計(jì)是獲得好的
用戶(hù)體驗(yàn)的不二法門(mén)。傻瓜相機(jī)顧名思義傻子都會(huì)使用,這個(gè)就著名的KISS原則(Keep it
simple and stupid)意思是UI設(shè)計(jì)要簡(jiǎn)單明了,傻子一看就知道怎么用,想想我們做出來(lái)的
東西,對(duì)照說(shuō)明書(shū)都不知道怎么用。另外一個(gè)就是最著名的例子IPhone手機(jī)外觀設(shè)計(jì),是 典型的歐卡姆剃刀設(shè)計(jì)原則來(lái)完成人機(jī)交互。
五:自動(dòng)測(cè)試與軟件配置管理(SCM)實(shí)現(xiàn)
知道什么是軟件配置管理,知道Hudson微機(jī)原理鬧危機(jī),匯編語(yǔ)言不會(huì)變,實(shí)變函數(shù)學(xué)
十遍。計(jì)算機(jī)基礎(chǔ)知識(shí)被大家普遍忽視。從今天開(kāi)始好好學(xué)習(xí)吧……
十一:Java代碼反編譯與代碼保護(hù)
Java編譯產(chǎn)生字節(jié)碼,因而可以被輕松的逆向工程(反編譯),微軟的C#生產(chǎn)的DLL也一樣可
以被輕松反編譯。正式由于這個(gè)原因產(chǎn)生了許多Java開(kāi)源的代碼保護(hù)工具,而Proguard是
其中佼佼者,已經(jīng)被google集成在android之中用于Java代碼保護(hù),訪(fǎng)問(wèn)這里了解更多:
http://proguard.sourceforge.net/
十二:努力成為某個(gè)行業(yè)或者領(lǐng)域骨干
面對(duì)漫長(zhǎng)的職業(yè)生涯,要想不被淘汰,必須具備一招鮮吃遍天下的能力,選擇自己感興趣的
方向,努力而深入的研究,計(jì)算機(jī)技術(shù)發(fā)展到今天已經(jīng)細(xì)分很細(xì),努力研究一種Java開(kāi)源
框架或者開(kāi)源HTTP服務(wù)器源碼或者研究過(guò)網(wǎng)絡(luò)爬蟲(chóng)源碼或者WEBKIT內(nèi)核,不愁沒(méi)有人要
你。如果你是非常了解金融,企業(yè)ERP,證券,保險(xiǎn),移動(dòng)應(yīng)用行業(yè)的應(yīng)用開(kāi)發(fā)業(yè)務(wù)的人,一樣不用愁工作。這些知識(shí)不隨語(yǔ)言而改變,努力做一個(gè)有核心競(jìng)爭(zhēng)力的Java程序員。
十三:提高語(yǔ)言與書(shū)面表達(dá)能力,掌握基礎(chǔ)的項(xiàng)目管理知識(shí)
文檔與語(yǔ)言表達(dá)能力是最好的向外界展現(xiàn)自己能力的方式,很多程序員編程能力很高,表達(dá)
能力一般,Linux能夠成功,除了歸功于網(wǎng)絡(luò)社區(qū)的力量之外,也得益于Linux作者本人給各
大基金會(huì)寫(xiě)信,宣傳推廣,試想如果沒(méi)有良好的書(shū)面語(yǔ)言表達(dá)能力,即使Linux系統(tǒng)再優(yōu)秀,卻無(wú)法被準(zhǔn)確表達(dá),失去各大基金會(huì)的支持,Linux還會(huì)像今天這么好的局面嘛。所以重視
文檔,重視提升溝通與表達(dá)能力,才有可能成為Java系統(tǒng)程序員。掌握基本的2/8原則,學(xué)
會(huì)將模塊細(xì)化分配給不同的人,預(yù)見(jiàn)并控制項(xiàng)目風(fēng)險(xiǎn),把握項(xiàng)目進(jìn)度,優(yōu)化流程,合理的時(shí)
間管理,了解TDD,熟悉敏捷開(kāi)發(fā)模式,常規(guī)軟件開(kāi)發(fā)模式。
十四:掌握英語(yǔ),良好的讀寫(xiě)能力
英語(yǔ)是計(jì)算機(jī)的母語(yǔ),掌握好英語(yǔ)對(duì)于閱讀英文資料學(xué)習(xí)新技術(shù)大有幫助,我的建議是盡量
讀英文原版書(shū),如果是算法方面的可能會(huì)困難一點(diǎn),但是其它像設(shè)計(jì)模式,軟件工程,OO
編程思想等盡量讀原版,提高自己的英文水平,多多訪(fǎng)問(wèn)開(kāi)發(fā)者,code project,程序員天堂,Pc-magazine等英文IT網(wǎng)站。英語(yǔ)絕對(duì)是你必須修煉與提高的技能。此外英語(yǔ)好在外資企業(yè)
尤其重要,只有外語(yǔ)足夠好才可能在外資企業(yè)中突破職業(yè)瓶頸,向上發(fā)展。
第二篇:Java系統(tǒng)程序員修煉之道
Java系統(tǒng)程序員修煉之道
——?jiǎng)恿?jié)點(diǎn)java 一:Java語(yǔ)言學(xué)習(xí)
對(duì)線(xiàn)程(thread),串行化,反射,網(wǎng)絡(luò)編程,JNI技術(shù),容器(Map,List, Iterator), 類(lèi)加載器(ClassLoader),輸入輸出流,垃圾回收機(jī)制,有比較深入的了解,最起碼做過(guò)項(xiàng)目應(yīng)用。有過(guò)Java項(xiàng)目的性能優(yōu)化經(jīng)驗(yàn),最起碼掌握一種性能監(jiān)視工具的使用,熟悉JVM參數(shù),最起碼知道可以在JVM啟動(dòng)時(shí)指定不同垃圾回收機(jī)制,以及不同垃圾回收機(jī)制之間的差別,熟悉JVM參數(shù)優(yōu)化。二:J2EE方面
最好知道JDBC規(guī)范是怎么回事情,面對(duì)Oracle數(shù)據(jù)庫(kù)如果告訴你JDBC驅(qū)動(dòng)不能用了,你還知道有OCI驅(qū)動(dòng)可以。掌握常見(jiàn)的SQL語(yǔ)句,熟悉JMS,JNDI等組件,掌握一套web開(kāi)發(fā)模式,從前臺(tái)到后臺(tái),有能力整合好這樣的框架。理解并掌握MVC思想,像SSH已經(jīng)實(shí)現(xiàn)了MVC的分層,幾乎不需要你自己再實(shí)現(xiàn),假設(shè)你開(kāi)發(fā)一個(gè)簡(jiǎn)單的Swing程序,你能MVC就說(shuō)明你真的掌握了MVC的精髓。有能力在J2EE前端開(kāi)發(fā)中構(gòu)建自己的MVC模式,知道什么是WEB2.0,知道什么是SOA,SaaS,SaaP等含義 三:理解并能合理運(yùn)用設(shè)計(jì)模式,UML建模
知道并理解設(shè)計(jì)模式中蘊(yùn)含的幾種基本原則如:里氏替換原則,開(kāi)閉原則,合成復(fù)用原則,依賴(lài)倒置原則有很好的理解,并能舉例說(shuō)明。對(duì)常用的設(shè)計(jì)模式如工廠模式,單例模式,觀察者模式,責(zé)任鏈模式,橋接模式等知道靈活運(yùn)用,明白什么是回調(diào)(Callback)。最后用一位高人話(huà)來(lái)總結(jié)設(shè)計(jì)模式,它是為了讓軟件更容易被別人讀懂,更容易維護(hù)而產(chǎn)生,設(shè)計(jì)模式本質(zhì)是程序員之間的交流,如果A用工廠模式設(shè)計(jì)一個(gè)模塊B來(lái)接替,A只要說(shuō)該模塊是工廠模式實(shí)現(xiàn),B維護(hù)起來(lái)應(yīng)該容易得多,所以設(shè)計(jì)模式是關(guān)于交流,不關(guān)于代碼。切忌濫用設(shè)計(jì)模式。學(xué)會(huì)使用UML建模工具至少熟悉一種URL建模工具。四:注重用戶(hù)體驗(yàn),掌握KISS原則,知道歐卡姆剃刀原則
顧客就是上帝這個(gè)口號(hào)我們已經(jīng)喊了N年了,程序員的勞動(dòng)成果最終也需要轉(zhuǎn)換為服務(wù)提供給客戶(hù),用戶(hù)體驗(yàn)至關(guān)重要,常常看到的場(chǎng)景是功能實(shí)現(xiàn)了,軟件很難使用,程序員有個(gè)很充足的理由我不是美工,其實(shí)注重用戶(hù)體驗(yàn)跟美工八桿子也打不到一起,F(xiàn)oxMail的成功在很大程度是用戶(hù)體驗(yàn)的成功,友好,清晰的用戶(hù)提示,強(qiáng)的容錯(cuò)與糾錯(cuò)設(shè)計(jì)是獲得好的用戶(hù)體驗(yàn)的不二法門(mén)。傻瓜相機(jī)顧名思義傻子都會(huì)使用,這個(gè)就著名的KISS原則(Keep itsimple and stupid)意思是UI設(shè)計(jì)要簡(jiǎn)單明了,傻子一看就知道怎么用,想想我們做出來(lái)的東西,對(duì)照說(shuō)明書(shū)都不知道怎么用。另外一個(gè)就是最著名的例子IPhone手機(jī)外觀設(shè)計(jì),是典型的歐卡姆剃刀設(shè)計(jì)原則來(lái)完成人機(jī)交互。五:自動(dòng)測(cè)試與軟件配置管理(SCM)實(shí)現(xiàn)
知道什么是軟件配置管理,知道Hudson運(yùn)用該工具SCM,知道怎么獲取測(cè)試代碼覆蓋率,Java有效代碼行數(shù)(NCSS),完成firebug,JDepend等工具集成ant/maven。熟悉并注重在開(kāi)發(fā)過(guò)程中使用JUnit單元測(cè)試,理解白盒測(cè)試規(guī)范。六:熟悉常見(jiàn)的網(wǎng)絡(luò)通信協(xié)議
對(duì)HTTP協(xié)議,知道POST, GET的區(qū)別是什么,閱讀過(guò)HTTP相關(guān)的RFC文檔。學(xué)會(huì)使用sniffer工具查看數(shù)據(jù)包,幫助查找與調(diào)試程序,知道TCP與UDP的區(qū)別,知道并理解E-Mail發(fā)送與接受的協(xié)議如SMTP,POP3,IMAP等協(xié)議,了解MIME與Base64編碼。知道組播是怎么回事情。
七:面向市場(chǎng),永遠(yuǎn)對(duì)新技術(shù)保持渴望
計(jì)算機(jī)技術(shù)的發(fā)展日新月異,做為IT行業(yè)的軟件開(kāi)發(fā)人員要不斷的給自己充電,更新自己的技術(shù)與時(shí)代保持同步,同時(shí)還要面向市場(chǎng),華為總裁任正非說(shuō)過(guò)-“華為的技術(shù)革新必須面向市場(chǎng)”,作為程序員同樣要有市場(chǎng)意識(shí),很多人都后悔沒(méi)有在android剛出來(lái)的時(shí)候加以關(guān)注學(xué)習(xí)。那些很早關(guān)注android開(kāi)發(fā)技術(shù)的很多程序員因此獲得豐厚回報(bào)。如今HTML5得到越來(lái)越多的瀏覽器廠家支持,你是否已經(jīng)跟上腳步,開(kāi)始學(xué)習(xí)。八:保持謙虛,三人行必有我?guī)?/p>
喬幫主說(shuō)他要保持初心,努力學(xué)習(xí),我等更應(yīng)該保持謙虛,IT技術(shù)發(fā)展日新月異,在你眼中不可能實(shí)現(xiàn)的技術(shù),也許別人早已經(jīng)有思路。保持謙虛就有機(jī)會(huì)吸取別人身上的長(zhǎng)處,古人有云:滿(mǎn)招損,謙受益。一個(gè)得道的高人更是說(shuō)出了”下下人,上上智”的禪語(yǔ)。永遠(yuǎn)不要拒絕幫助你周?chē)娜私鉀Q難題,解決難題是進(jìn)步最快途徑。不要放棄任何一次可以提升自己技術(shù)與能力的機(jī)會(huì)。
九:養(yǎng)成總結(jié)的習(xí)慣,不斷反思
上學(xué)的時(shí)候老師常讓寫(xiě)小結(jié),也沒(méi)總結(jié)出來(lái)所以然,以至于工作以后再也不提這檔子事情,建議每個(gè)項(xiàng)目做完以后對(duì)自己都有個(gè)小結(jié),總結(jié)自己在項(xiàng)目里面學(xué)到了什么,反問(wèn)自己能不能完成在不需要?jiǎng)e人幫助的情況下自己完成這樣的系統(tǒng)搭建,是否熟悉與掌握項(xiàng)目中所用到的技術(shù),即使有些東西不是你負(fù)責(zé)完成的但是什么也不能阻擋一顆求知的心,總結(jié)要盡量詳細(xì)記錄你遇到那些難題是怎么一個(gè)一個(gè)的解決的,下次再遇到你是否可以很快解決或者避免這樣的問(wèn)題。有總結(jié)才有提高,孔子曰:學(xué)而不思則罔,如果我們只是coding到吐血,不思考,不總結(jié)提高,永遠(yuǎn)不可能有能有本質(zhì)提高,秦相李斯有云:“泰山不讓土壤,故能成其大,河海不擇細(xì)流,故能就其深”,點(diǎn)滴積累不斷總結(jié)方能量變導(dǎo)致質(zhì)變。十:數(shù)學(xué)功底與算法知識(shí) 用任何編程語(yǔ)言開(kāi)發(fā)應(yīng)用,都離不開(kāi)核心算法支持,很多國(guó)外的軟件單單從UI上看,恐怕寫(xiě)幾年程序的人都可以模仿,但是UI之下的那些真實(shí)深淺不一,相信不是你想模仿就可以模仿的,為什么我們?cè)絹?lái)越山寨,因?yàn)槲覀儧](méi)有核心競(jìng)爭(zhēng)力,對(duì)于程序員來(lái)說(shuō)算法與數(shù)學(xué)顯然是他最重要的核心競(jìng)爭(zhēng)力之一。《算法導(dǎo)論》,《編程珠璣》等書(shū)絕對(duì)值得讀十遍。微軟亞洲研究院視覺(jué)計(jì)算組負(fù)責(zé)人在一次演講中說(shuō)到他們招人的標(biāo)準(zhǔn)是“三好學(xué)生– 數(shù)學(xué)好,編程好,態(tài)度好”。可是現(xiàn)實(shí)的普遍情況卻是-微機(jī)原理鬧危機(jī),匯編語(yǔ)言不會(huì)變,實(shí)變函數(shù)學(xué)十遍。計(jì)算機(jī)基礎(chǔ)知識(shí)被大家普遍忽視。從今天開(kāi)始好好學(xué)習(xí)吧…… 十一:Java代碼反編譯與代碼保護(hù)
Java編譯產(chǎn)生字節(jié)碼,因而可以被輕松的逆向工程(反編譯),微軟的C#生產(chǎn)的DLL也一樣可以被輕松反編譯。正式由于這個(gè)原因產(chǎn)生了許多Java開(kāi)源的代碼保護(hù)工具,而Proguar是其中佼佼者,已經(jīng)被google集成在android之中用于Java代碼保護(hù) 十二:努力成為某個(gè)行業(yè)或者領(lǐng)域骨干
面對(duì)漫長(zhǎng)的職業(yè)生涯,要想不被淘汰,必須具備一招鮮吃遍天下的能力,選擇自己感興趣的方向,努力而深入的研究,計(jì)算機(jī)技術(shù)發(fā)展到今天已經(jīng)細(xì)分很細(xì),努力研究一種Java開(kāi)源框架或者開(kāi)源HTTP服務(wù)器源碼或者研究過(guò)網(wǎng)絡(luò)爬蟲(chóng)源碼或者WEBKIT內(nèi)核,不愁沒(méi)有人要你。如果你是非常了解金融,企業(yè)ERP,證券,保險(xiǎn),移動(dòng)應(yīng)用行業(yè)的應(yīng)用開(kāi)發(fā)業(yè)務(wù)的人,一樣不用愁工作。這些知識(shí)不隨語(yǔ)言而改變,努力做一個(gè)有核心競(jìng)爭(zhēng)力的Java程序員。十三:提高語(yǔ)言與書(shū)面表達(dá)能力,掌握基礎(chǔ)的項(xiàng)目管理知識(shí)
文檔與語(yǔ)言表達(dá)能力是最好的向外界展現(xiàn)自己能力的方式,很多程序員編程能力很高,表達(dá)能力一般,Linux能夠成功,除了歸功于網(wǎng)絡(luò)社區(qū)的力量之外,也得益于Linux作者本人給各大基金會(huì)寫(xiě)信,宣傳推廣,試想如果沒(méi)有良好的書(shū)面語(yǔ)言表達(dá)能力,即使Linux系統(tǒng)再優(yōu)秀,卻無(wú)法被準(zhǔn)確表達(dá),失去各大基金會(huì)的支持,Linux還會(huì)像今天這么好的局面嘛。所以重視文檔,重視提升溝通與表達(dá)能力,才有可能成為Java系統(tǒng)程序員。掌握基本的2/8原則,學(xué)會(huì)將模塊細(xì)化分配給不同的人,預(yù)見(jiàn)并控制項(xiàng)目風(fēng)險(xiǎn),把握項(xiàng)目進(jìn)度,優(yōu)化流程,合理的時(shí)間管理,了解TDD,熟悉敏捷開(kāi)發(fā)模式,常規(guī)軟件開(kāi)發(fā)模式。
第三篇:《程序員修煉之道》讀后感
《程序員修煉之道》讀后感
編程技術(shù)就是程序員的手藝,你的程序就是你的藝術(shù)品。時(shí)刻關(guān)注自己的技藝,保持熱情、保持好奇,爭(zhēng)取做到富有專(zhuān)長(zhǎng)而又多才多藝。
看似樸素的道理,實(shí)際是若干經(jīng)驗(yàn)的總結(jié),就像這本書(shū)的自序所講的,這是一本包含有許多樸素的經(jīng)驗(yàn),寫(xiě)給注重實(shí)效的程序員的一本“演員的自我修養(yǎng)”。
簡(jiǎn)單和朋友們分享幾點(diǎn):
怎樣提出你的問(wèn)題
1:確切地知道你想要問(wèn)什么,并盡量明確具體;
2:小心而得體地組織你的問(wèn)題,記住你是在請(qǐng)求幫助;
3:發(fā)郵件時(shí)請(qǐng)使用有意義的主題;
4:坐回椅子上,耐心等候
破窗
團(tuán)隊(duì)不能容忍破窗(產(chǎn)品的不完善的地方),需要指定人修復(fù),不能一直放著不管。當(dāng)你看到糟糕的設(shè)計(jì)、錯(cuò)誤的決策和糟糕的代碼時(shí),修正它們。在工作中,很容易對(duì)源源不斷的bug不耐煩,或許被自己說(shuō)服僥幸繞過(guò),以后就會(huì)有更多的直至難以修復(fù)。破窗戶(hù)講的故事是一個(gè)小區(qū)的一扇窗戶(hù)沒(méi)有及時(shí)維修導(dǎo)致整個(gè)小區(qū)陷入被更多破壞的現(xiàn)實(shí),人們?cè)傧肫鹁S修時(shí),代價(jià)巨大,治安特別好的地區(qū)也對(duì)破窗嚴(yán)格治理。
不要恐慌
做一次深呼吸,思考什么可能是bug的原因。記得剛?cè)雸F(tuán)隊(duì)時(shí),我時(shí)常會(huì)對(duì)難以捉摸,尤其是不能復(fù)現(xiàn)的bug感到恐懼,但細(xì)細(xì)尋找,你還是能看到蛛絲馬跡。
溫水煮青蛙
個(gè)人和團(tuán)隊(duì)假如一直在一個(gè)假設(shè)的環(huán)境或者需求或者條件下繼續(xù)下去,就很可能像那只可憐的青蛙一樣,或者定時(shí)的檢測(cè)下環(huán)境或條件或需求是否變化,或者團(tuán)隊(duì)里面專(zhuān)門(mén)有人來(lái)檢測(cè)
重復(fù)的危害
不要在系統(tǒng)各處對(duì)知識(shí)進(jìn)行重復(fù)。作為程序員,我們收集、組織、維護(hù)和利用知識(shí)。我們?cè)谝?guī)范中記載知識(shí)、在運(yùn)行的代碼中使其活躍起來(lái)并將其用于提供測(cè)試過(guò)程中所需的檢查。遺憾的是,知識(shí)并不穩(wěn)定。所有這些不穩(wěn)定都意味著我們要把很大一部分時(shí)間花在維護(hù)上,重新組織和表達(dá)我們的系統(tǒng)中的知識(shí)。程序員須持續(xù)不斷地維護(hù)。我們的理解逐日變化,當(dāng)我們?cè)O(shè)計(jì)或編碼時(shí),出現(xiàn)了新的需求。環(huán)境或許變了。不管原因是什么,維護(hù)都不是時(shí)有時(shí)無(wú)的活動(dòng),而是整個(gè)開(kāi)發(fā)過(guò)程中的例行事務(wù)。可靠地開(kāi)發(fā)軟件、并讓我們的開(kāi)發(fā)更易于理解和維護(hù)的惟一途徑,是遵循我們稱(chēng)之為DRY的原則:系統(tǒng)中的每一項(xiàng)知識(shí)都必須具有單一、無(wú)歧義、權(quán)威的表示。
正交性
不要把任何一項(xiàng)知識(shí)分散在多個(gè)系統(tǒng)組件中。在計(jì)算技術(shù)中,該術(shù)語(yǔ)用于表示某種不相依賴(lài)性或是解耦性。如果兩個(gè)或更多事物中的一個(gè)發(fā)生變化,不會(huì)影響其他事物,這些事物就是正交的。非正交的例子:直升機(jī)駕駛操作的各個(gè)控制器之間就是相互影響的,不是正交的。
正交的好處就是為了可以局部修正(local fix)。
何時(shí)使用異常
將異常用于異常的問(wèn)題。例如:文件讀寫(xiě),例程返回值,各種狀態(tài)異常檢測(cè),服務(wù)器超時(shí)等異常情況,都需要使用異常,通常為異常分等級(jí),可以?huà)伋霎惓#蛘邔惓?xiě)入日志。
交流
我們不是活在真空世界,需要花大量時(shí)間與人交流。只有當(dāng)你是在傳達(dá)信息時(shí),你才是在交流。
有效交流的幾種方法:知道你想要說(shuō)什么,了解你的聽(tīng)眾,選擇時(shí)機(jī),選擇風(fēng)格,讓文檔美觀,讓聽(tīng)眾參與,做傾聽(tīng)者,回復(fù)他人。
定期為你的知識(shí)資產(chǎn)投資
讓學(xué)習(xí)成為習(xí)慣。編程語(yǔ)言、技術(shù)日新月異,小伙伴們都感受至深,幸運(yùn)的是我們的知識(shí)獲得比任何行業(yè)都更加容易和方便,大量的社區(qū),教程和熱心的作者。書(shū)中也給程序員提了幾點(diǎn)建議,每年學(xué)習(xí)一門(mén)新的語(yǔ)言,每個(gè)季度閱讀一本技術(shù)書(shū)籍等。
讓復(fù)用變得容易
如果復(fù)用很容易,人們就會(huì)去復(fù)用。創(chuàng)造一個(gè)支持復(fù)用的環(huán)境。將相同的功能抽離出來(lái),可能會(huì)大量用到的方法使用靜態(tài)關(guān)鍵字。
在你的作品上簽名
過(guò)去時(shí)代的會(huì)陷入自我欣賞中,他其實(shí)還有一個(gè)作用,我對(duì)代碼負(fù)責(zé),我測(cè)試過(guò)并確保他的良手藝人為能在他們的作品上簽名而自豪。你也應(yīng)該如此。坦白的說(shuō),簽名之后再看這段代碼會(huì)非常愉悅,有時(shí)還好運(yùn)行,也是一種自我監(jiān)督吧。
“我的源碼讓貓吃了”,想想作為程序員的我們,是不是經(jīng)常會(huì)幫自己解脫,向領(lǐng)導(dǎo),測(cè)試,客戶(hù)推卸責(zé)任,其實(shí)對(duì)于他們仿佛也就好比聽(tīng)“我的源碼讓貓吃了”這句話(huà),是不是很諷刺?不管我們某個(gè)人基礎(chǔ)再扎實(shí),解決問(wèn)題的能力再?gòu)?qiáng),如果缺失了對(duì)自己的軟件的責(zé)任,一定不會(huì)有好的工作成果。
很多很多,這些不是做過(guò)一次兩次就說(shuō)明已經(jīng)掌握了,需要一個(gè)持續(xù)的過(guò)程去注意,實(shí)踐,直到他們成為你的習(xí)慣,這樣,你才能成為一個(gè)“專(zhuān)家程序員”。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。
第四篇:Java程序員修煉十大過(guò)程
Java程序員修煉十大過(guò)程
學(xué)習(xí)java這么久,見(jiàn)到過(guò)項(xiàng)目中的神人在鍵盤(pán)上運(yùn)指如飛的編程速度,當(dāng)時(shí)就被震撼了。當(dāng)編程越來(lái)越成體力活,我們還能有自己的思想,還能修煉為Java系統(tǒng)級(jí)別的程序員嘛?學(xué)習(xí)與修煉以下知識(shí)與技能,幫你早日達(dá)成愿望。
一、努力成為某個(gè)行業(yè)或者領(lǐng)域骨干
面對(duì)漫長(zhǎng)的職業(yè)生涯,要想不被淘汰,必須具備一招鮮吃遍天下的能力,選擇自己感興趣的方向,努力而深入的研究,計(jì)算機(jī)技術(shù)發(fā)展到今天已經(jīng)細(xì)分很細(xì),努力研究一種Java開(kāi)源框架或者開(kāi)源HTTP服務(wù)器源碼或者研究過(guò)網(wǎng)絡(luò)爬蟲(chóng)源碼或者WEBKIT內(nèi)核,不愁沒(méi)有人要你。如果你是非常了解金融,企業(yè)ERP,證券,保險(xiǎn),移動(dòng)應(yīng)用行業(yè)的應(yīng)用開(kāi)發(fā)業(yè)務(wù)的人,一樣不用愁工作。這些知識(shí)不隨語(yǔ)言而改變,努力做一個(gè)有核心競(jìng)爭(zhēng)力的Java程序員。
二、保持謙虛,三人行必有我?guī)?/p>
喬幫主說(shuō)他要保持初心,努力學(xué)習(xí),我等更應(yīng)該保持謙虛,IT技術(shù)發(fā)展日新月異,在你眼中不可能實(shí)現(xiàn)的技術(shù),也許別人早已經(jīng)有思路。保持謙虛就有機(jī)會(huì)吸取別人身上的長(zhǎng)處,古人有云:滿(mǎn)招損,謙受益。一個(gè)得道的高人更是說(shuō)出了“下下人,上上智”的禪語(yǔ)。永遠(yuǎn)不要拒絕幫助你周?chē)娜私鉀Q難題,解決難題是進(jìn)步最快途徑。不要放棄任何一次可以提升自己技術(shù)與能力的機(jī)會(huì)。
三、熟悉常見(jiàn)的網(wǎng)絡(luò)通信協(xié)議
對(duì)HTTP協(xié)議,知道POST, GET的區(qū)別是什么,閱讀過(guò)HTTP相關(guān)的RFC文檔。學(xué)會(huì)使用sniffer工具查看數(shù)據(jù)包,幫助查找與調(diào)試程序,知道TCP與UDP的區(qū)別,知道并理解E-Mail發(fā)送與接受的協(xié)議如SMTP,POP3,IMAP等協(xié)議,了解MIME與Base64編碼。知道組播是怎么回事情。
四、理解并能合理運(yùn)用設(shè)計(jì)模式,UML建模
知道并理解設(shè)計(jì)模式中蘊(yùn)含的幾種基本原則如:里氏替換原則,開(kāi)閉原則,合成復(fù)用原則,依賴(lài)倒置原則有很好的理解,并能舉例說(shuō)明。對(duì)常用的設(shè)計(jì)模式如工廠模式,單例模式,觀察者模式,責(zé)任鏈模式,橋接模式等知道靈活運(yùn)用,明白什么是回調(diào)(Callback)。最后用一位高人話(huà)來(lái)總結(jié)設(shè)計(jì)模式,它是為了讓軟件更容易被別人讀懂,更容易維護(hù)而產(chǎn)生,設(shè)計(jì)模式本質(zhì)是程序員之間的交流,如果A用工廠模式設(shè)計(jì)一個(gè)模塊B來(lái)接替,A只要說(shuō)該模塊是工廠模式實(shí)現(xiàn),B維護(hù)起來(lái)應(yīng)該容易得多,所以設(shè)計(jì)模式是關(guān)于交流,不關(guān)于代碼。切忌濫用設(shè)計(jì)模式。學(xué)會(huì)使用UML建模工具至少熟悉一種URL建模工具。
五、自動(dòng)測(cè)試與軟件配置管理(SCM)實(shí)現(xiàn)
知道什么是軟件配置管理,知道Hudson-http://java.net/projects/hudson/運(yùn)用該工具SCM,知道怎么獲取測(cè)試代碼覆蓋率,Java有效代碼行數(shù)(NCSS),完成firebug,JDepend等工具集成ant/maven.熟悉并注重在開(kāi)發(fā)過(guò)程中使用JUnit單元測(cè)試,理解白盒測(cè)試規(guī)范。
六、Java語(yǔ)言學(xué)習(xí)
對(duì)線(xiàn)程(thread),串行化,反射,網(wǎng)絡(luò)編程,JNI技術(shù),容器(Map,List, Iterator),類(lèi)加載器(ClassLoader),輸入輸出流,垃圾回收機(jī)制,有比較深入的了解,最起碼做過(guò)項(xiàng)目應(yīng)用。有過(guò)Java項(xiàng)目的性能優(yōu)化經(jīng)驗(yàn),最起碼掌握一種性能監(jiān)視工具的使用,熟悉JVM參數(shù),最起碼知道可以在JVM啟動(dòng)時(shí)指定不同垃圾回收機(jī)制,以及不同垃圾回收機(jī)制之間的差別,熟悉JVM參數(shù)優(yōu)化。
七、掌握英語(yǔ),良好的讀寫(xiě)能力
英語(yǔ)是計(jì)算機(jī)的母語(yǔ),掌握好英語(yǔ)對(duì)于閱讀英文資料學(xué)習(xí)新技術(shù)大有幫助,我的建議是盡量讀英
文原版書(shū),如果是算法方面的可能會(huì)困難一點(diǎn),但是其它像設(shè)計(jì)模式,軟件工程,OO編程思想等盡量讀原版,提高自己的英文水平,多多訪(fǎng)問(wèn)開(kāi)發(fā)者,code project,程序員天堂,Pc-magazine等英文IT網(wǎng)站。英語(yǔ)絕對(duì)是你必須修煉與提高的技能。此外英語(yǔ)好在外資企業(yè)尤其重要,只有外語(yǔ)足夠好才可能在外資企業(yè)中突破職業(yè)瓶頸,向上發(fā)展。
八、養(yǎng)成總結(jié)的習(xí)慣,不斷反思
上學(xué)的時(shí)候老師常讓寫(xiě)小結(jié),也沒(méi)總結(jié)出來(lái)所以然,以至于工作以后再也不提這檔子事情,建議每個(gè)項(xiàng)目做完以后對(duì)自己都有個(gè)小結(jié),總結(jié)自己在項(xiàng)目里面學(xué)到了什么,反問(wèn)自己能不能完成在不需要?jiǎng)e人幫助的情況下自己完成這樣的系統(tǒng)搭建,是否熟悉與掌握項(xiàng)目中所用到的技術(shù),即使有些東西不是你負(fù)責(zé)完成的但是什么也不能阻擋一顆求知的心,總結(jié)要盡量詳細(xì)記錄你遇到那些難題是怎么一個(gè)一個(gè)的解決的,下次再遇到你是否可以很快解決或者避免這樣的問(wèn)題。有總結(jié)才有提高,孔子曰:學(xué)而不思則罔,如果我們只是coding到吐血,不思考,不總結(jié)提高,永遠(yuǎn)不可能有能有本質(zhì)提高,秦相李斯有云:“泰山不讓土壤,故能成其大,河海不擇細(xì)流,故能就其深”,點(diǎn)滴積累不斷總結(jié)方能量變導(dǎo)致質(zhì)變。
九、Java代碼反編譯與代碼保護(hù)
Java編譯產(chǎn)生字節(jié)碼,因而可以被輕松的逆向工程(反編譯),微軟的C#生產(chǎn)的DLL也一樣可以被輕松反編譯。正式由于這個(gè)原因產(chǎn)生了許多Java開(kāi)源的代碼保護(hù)工具,而Proguard是其中佼佼者,已經(jīng)被google集成在android之中用于Java代碼保護(hù)。
十、面向市場(chǎng),永遠(yuǎn)對(duì)新技術(shù)保持渴望
計(jì)算機(jī)技術(shù)的發(fā)展日新月異,做為IT行業(yè)的軟件開(kāi)發(fā)人員要不斷的給自己充電,更新自己的技術(shù)與時(shí)代保持同步,同時(shí)還要面向市場(chǎng),華為總裁任正非說(shuō)過(guò)-“華為的技術(shù)革新必須面向市場(chǎng)”,作為程序員同樣要有市場(chǎng)意識(shí),很多人都后悔沒(méi)有在android剛出來(lái)的時(shí)候加以關(guān)注學(xué)習(xí)。那些很早關(guān)注android開(kāi)發(fā)技術(shù)的很多程序員因此獲得豐厚回報(bào)。如今HTML5得到越來(lái)越多的瀏覽器廠家
支持,你是否已經(jīng)跟上腳步,開(kāi)始學(xué)習(xí)。
第五篇:java程序員
如何迅速成為Java高手[Tomjava原創(chuàng)]
很多網(wǎng)友問(wèn)我學(xué)習(xí)Java有沒(méi)有什么捷徑,我說(shuō)“無(wú)他,唯手熟爾”。但是我卻很愿意將自己學(xué)習(xí)的一些經(jīng)驗(yàn)寫(xiě)出來(lái),以便后來(lái)者少走彎路,幫助別人是最大的快樂(lè)嘛!
要想學(xué)好Java,首先要知道Java的大致分類(lèi)。我們知道,自從Sun推出Java以來(lái),就力圖使之無(wú)所不包,所以Java發(fā)展到現(xiàn)在,按應(yīng)用來(lái)分主要分為三大塊:J2SE,J2ME和J2EE,這也就是Sun ONE(Open Net Environment)體系。J2SE就是Java2的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開(kāi)發(fā),如手機(jī)和PDA的編程;J2EE是Java2的企業(yè)版,主要用于分布式的網(wǎng)絡(luò)程序的開(kāi)發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。J2SE開(kāi)發(fā)桌面應(yīng)用軟件比起VC,VB,DEPHI這些傳統(tǒng)開(kāi)發(fā)語(yǔ)言來(lái)說(shuō),優(yōu)勢(shì)好象并不明顯。J2ME對(duì)于初學(xué)者來(lái)說(shuō),好象又有點(diǎn)深?yuàn)W,而且一般開(kāi)發(fā)者很難有開(kāi)發(fā)環(huán)境。所以現(xiàn)在應(yīng)用最廣泛又最好學(xué)的就是J2EE了。J2EE又包括許多組件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要學(xué)習(xí)起來(lái)可不是一兩天的事。
那么又該如何學(xué)習(xí)J2EE呢?當(dāng)然Java語(yǔ)法得先看一看的,I/O包,Util包,Lang包你都熟悉了嗎?然后再?gòu)腏SP學(xué)起。如果你學(xué)過(guò)HTML,那么事情要好辦的多,如果沒(méi)有,那你快去補(bǔ)一補(bǔ)HTML基礎(chǔ)吧。其實(shí)JSP中的Java語(yǔ)法也不多,它更象一個(gè)腳本語(yǔ)言,有點(diǎn)象ASP。然后你就該學(xué)一學(xué)Servlet了。Servlet就是服務(wù)器端小程序,他負(fù)責(zé)生成發(fā)送給客戶(hù)端的HTML文件。JSP在執(zhí)行時(shí),也是先轉(zhuǎn)換成Servlet再運(yùn)行的。雖說(shuō)JSP理論上可以完全取代Servlet,這也是SUN推出JSP的本意,可是Servlet用來(lái)控制流程跳轉(zhuǎn)還是挺方便的,也令程序更清晰。接下來(lái)你應(yīng)該學(xué)習(xí)一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代碼的混亂方式了,這種方式跟ASP又有什么區(qū)別呢?還好,SUN提供了Javabean可以把你的JSP中的Java代碼封裝起來(lái),便于調(diào)用也便于重用。接著就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean還是有區(qū)別的。它是一個(gè)體系結(jié)構(gòu),你可以搭建更安全、更穩(wěn)定的企業(yè)應(yīng)用。它的大量代碼已由中間件(也就是我們常聽(tīng)到的Weblogic,Websphere這些J2EE服務(wù)器)完成了,所以我們要做的程序代碼量很少,大部分工作都在設(shè)計(jì)和配置中間件上。至于JDBC,就不用我多說(shuō)了,你如果用java編過(guò)存取數(shù)據(jù)庫(kù)的程序,就應(yīng)該很熟悉。還有,如果你要用Java編發(fā)送電子郵件的程序,你就得看看Javamail了。
好了,對(duì)Java和J2EE有了一些基本概念之后,你就應(yīng)該編一些程序了,千萬(wàn)不要紙上談兵哦。最好找一些有實(shí)例且?guī)Ч獗P(pán)的書(shū)來(lái)看,這樣看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用勞您老大架再親自把它再輸一遍吧,再說(shuō)直接復(fù)制還不用怕出錯(cuò),何樂(lè)而不為呢!還有就是要經(jīng)常上一些好的Java編程文章,有好的文章要Cut下來(lái),有問(wèn)題盡管問(wèn),只要問(wèn)題不是太傻,一般高手都會(huì)回答你的。下面介紹幾個(gè)好的Java方面的編程網(wǎng)站:
CSDN論壇 http:///那里Java資料比較全;
java.com.cnhttp://.cn/看這域名就知道有多牛,注冊(cè)用戶(hù)快接近一萬(wàn)了,同時(shí)在線(xiàn)人數(shù)也在一千左右,人氣很旺的;
IBM的開(kāi)發(fā)者網(wǎng)絡(luò)http://IBM永遠(yuǎn)的藍(lán)色巨人;
那么我書(shū)也看了,程序也做了,別人問(wèn)我的問(wèn)題我都能解決了,是不是就成為高手了呢?當(dāng)然沒(méi)那么簡(jiǎn)單,這只是萬(wàn)里長(zhǎng)征走完了第一步。不信?那你出去接一個(gè)項(xiàng)目,你知道怎么下手嗎,你知道怎么設(shè)計(jì)嗎,你知道怎么組織人員進(jìn)行開(kāi)發(fā)嗎?你現(xiàn)在腦子里除了一些散亂的代碼之外,可能再?zèng)]有別的東西了吧!你現(xiàn)在最缺的是實(shí)際的工作經(jīng)驗(yàn),而不是書(shū)本上那些
憑空想出來(lái)的程序。所以你快去找一份Java的編程工作來(lái)做吧(如果是在校學(xué)生可以去做兼職啊),在實(shí)踐中提高自己,那才是最快的。不過(guò)你得祈禱在公司里碰到一個(gè)高手,而且他還愿意不厭其煩地教你,這樣好象有點(diǎn)難哦!
還有一個(gè)辦法就是讀開(kāi)放源碼的程序了。我們知道開(kāi)放源碼大都出自高手,他們?cè)O(shè)計(jì)合理,考慮周到,再加上有廣大的程序員參與,代碼的價(jià)值自然是字字珠嘰,鏗鏘有力(對(duì)不起,偶最近《金裝四大才子》看多了)。學(xué)Java必讀的兩個(gè)開(kāi)源程序就是Jive和Pet Store.。Jive是國(guó)外一個(gè)非常著名的BBS程序,完全開(kāi)放源碼。論壇的設(shè)計(jì)采用了很多先進(jìn)的技術(shù),如Cache、用戶(hù)認(rèn)證、Filter、XML等,而且論壇完全屏蔽了對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),可以很輕易的在不同數(shù)據(jù)庫(kù)中移植。論壇還有方便的安裝和管理程序,這是我們平時(shí)編程時(shí)容易忽略的一部份(中國(guó)程序員一般只注重編程的技術(shù)含量,卻完全不考慮用戶(hù)的感受,這就是我們與國(guó)外軟件的差距所在)。Jive的資料在很多網(wǎng)站上都有,大家可以找來(lái)研究一下。相信你讀完代碼后,會(huì)有脫胎換骨的感覺(jué)。遺憾的是Jive從2.5以后就不再無(wú)條件的開(kāi)放源代碼,同時(shí)有l(wèi)icence限制。不過(guò)幸好還有中國(guó)一流的Java程序員關(guān)注它,外國(guó)人不開(kāi)源了,中國(guó)人就不能開(kāi)源嗎?這里向大家推薦一個(gè)漢化的Jive版本—J道。Jive(J道版)是由中國(guó)Java界大名鼎鼎的banq在Jive 2.1版本基礎(chǔ)上改編而成, 全中文,增加了一些實(shí)用功能,如貼圖,用戶(hù)頭像和用戶(hù)資料查詢(xún)等,而且有一個(gè)開(kāi)發(fā)團(tuán)隊(duì)在不斷升級(jí)。你可以訪(fǎng)問(wèn)banq的網(wǎng)站http:///去下載,或到同濟(jì)技術(shù)論壇的服務(wù)器上ftp://nro.shtdu.edu.cn去下,安裝上有什么問(wèn)題,可以到論壇上去提問(wèn)。Pet Store.(寵物店)是SUN公司為了演示其J2EE編程規(guī)范而推出的開(kāi)放源碼的程序,應(yīng)該很具有權(quán)威性,想學(xué)J2EE和EJB的朋友不要錯(cuò)過(guò)了。
你一定會(huì)高興地說(shuō),哈哈,原來(lái)成為Java高手就這么簡(jiǎn)單啊!記得Tomjava也曾碰到過(guò)一個(gè)項(xiàng)目經(jīng)理,號(hào)稱(chēng)Java很簡(jiǎn)單,只要三個(gè)月就可以學(xué)會(huì)。其實(shí)說(shuō)這種話(huà)的人就如當(dāng)年小日本號(hào)稱(chēng)“三個(gè)月拿下中國(guó)”一樣大言不慚。不是Tomjava潑你冷水,你現(xiàn)在只是學(xué)到了Java的骨架,卻還沒(méi)有學(xué)到Java的精髓。接下來(lái)你得研究設(shè)計(jì)模式了。設(shè)計(jì)模式是高級(jí)程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。設(shè)計(jì)模式并不是一種具體“技術(shù)”,它講述的是思想,它不僅僅展示了接口或抽象類(lèi)在實(shí)際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類(lèi)的應(yīng)用,從而在原來(lái)的Java語(yǔ)言基礎(chǔ)上躍進(jìn)一步,更重要的是,設(shè)計(jì)模式反復(fù)向你強(qiáng)調(diào)一個(gè)宗旨:要讓你的程序盡可能的可重用。關(guān)于設(shè)計(jì)模式的資料,還是向大家推薦banq的網(wǎng)站http:///,他把GOF的23種模式以通俗易懂的方式詮釋出來(lái),純Java描述,真是經(jīng)典中的經(jīng)典。有時(shí)間再研究一下MVC結(jié)構(gòu)(把Model-View-Control分離開(kāi)的設(shè)計(jì)思想)吧,現(xiàn)在很流行的Structs就是它的一種實(shí)現(xiàn)方式,不過(guò)Structs用起來(lái)實(shí)在是很繁,我們只要學(xué)習(xí)其精髓即可,我們完全可以設(shè)計(jì)自己的MVC結(jié)構(gòu)。然后你再研究一下軟件Refactoring(重整)和極限XP編程,相信你又會(huì)上一個(gè)臺(tái)階。
做完這些,你不如整理一下你的Java代碼,把那些經(jīng)典的程序和常見(jiàn)的應(yīng)用整理出來(lái),再精心打造一番,提高其重用性和可擴(kuò)展性。你再找?guī)讉€(gè)志同道合的朋友成立一個(gè)工作室吧,你可以去承接一些項(xiàng)目做了,一開(kāi)始可能有些困難,可是你有技術(shù)積累,又考慮周全,接下項(xiàng)目來(lái)可以迅速作完,相信大家以后都會(huì)來(lái)找你的,所以Money就嘩啦啦的來(lái)了。。。當(dāng)然你也可以參加一些開(kāi)源項(xiàng)目,一方面可以提高自己,另一方面也是為中國(guó)軟件事業(yè)做貢獻(xiàn)嘛!開(kāi)發(fā)者在互聯(lián)網(wǎng)上用CVS合作開(kāi)發(fā),用QQ,MSN,E-mail討論聯(lián)系,天南海北的程序員分散在各地卻同時(shí)開(kāi)發(fā)同一個(gè)軟件,是不是很有意思呢?
下面介紹兩個(gè)好的開(kāi)源項(xiàng)目網(wǎng)站:
湖北省軟件公共開(kāi)發(fā)平臺(tái)http://gro.clinux.org/
共創(chuàng)聯(lián)盟http://cosoft.org.cn/
哇,好高興哦,我終于成為高手了!非也,非也。古人云:“識(shí)時(shí)務(wù)者為俊杰”。你知道計(jì)算
機(jī)界現(xiàn)在的發(fā)展形勢(shì)嗎?你知道微軟的.NET藍(lán)圖和SUN ONE計(jì)劃之間的明爭(zhēng)暗斗嗎?你知道計(jì)算機(jī)技術(shù)將向何處發(fā)展嗎?其實(shí)從各大計(jì)算機(jī)廠商最近的動(dòng)作,都可以看出來(lái)“Web服務(wù)將是下一代互聯(lián)網(wǎng)應(yīng)用的制高點(diǎn)”,而微軟的.NET藍(lán)圖和SUN ONE計(jì)劃的斗爭(zhēng)焦點(diǎn),也就是Web服務(wù)。Web服務(wù)就是一個(gè)嶄新的分布式計(jì)算模型,它是一系列標(biāo)準(zhǔn)的綜合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同語(yǔ)言編寫(xiě)的軟件能夠輕易的集成起來(lái),使網(wǎng)絡(luò)資源和Web站點(diǎn)變成一種服務(wù)而不是混亂的垃圾場(chǎng)。不遠(yuǎn)的將來(lái),我們就可以在家里點(diǎn)擊一下鼠標(biāo),就可以完成出門(mén)旅游的全部準(zhǔn)備工作,包括定飛機(jī)票,定旅游線(xiàn)路,定好房間等。請(qǐng)注意,這所有的一切都是Web站點(diǎn)間自動(dòng)完成的,再也不用象現(xiàn)在一樣,表面上是電子商務(wù),實(shí)際上很多環(huán)節(jié)都是人工操作。也許你會(huì)覺(jué)得這是天方夜談,不過(guò)就近的說(shuō),你也很有可能承接一個(gè)項(xiàng)目,要集成兩個(gè)企業(yè)的ERP系統(tǒng)。很有可能上游企業(yè)的系統(tǒng)是用Dephi編的,而下游企業(yè)的系統(tǒng)是用Java編的。你說(shuō)你是Java高手,大家都看者你怎么做呢。所以啊,你還得學(xué)習(xí)新技術(shù),如Web服務(wù),而且你Dephi也要懂一點(diǎn)吧(Dephi6現(xiàn)在已經(jīng)提供Web服務(wù)的控件了)。你編的Java系統(tǒng),可能要和.NET集成,所以你.NET要懂一點(diǎn)吧?到最后,你可能發(fā)現(xiàn)你已經(jīng)成為Java高手了,但很多時(shí)間卻在搞別的技術(shù)。太極張三豐里說(shuō),最厲害的招式就是沒(méi)有招式,可能就是這個(gè)道理吧!
因?yàn)閯倓偱d起,所以網(wǎng)上Web服務(wù)的資料不是很多,我還是給大家推薦幾個(gè)網(wǎng)站吧: 中國(guó)UDDI技術(shù)聯(lián)盟http:///developerWorks/cn/xml/index.shtml?csdnIBM可是Web服務(wù)的力推者
嗚?你費(fèi)勁千心萬(wàn)苦,總算成為Java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡(jiǎn)單,真叫人感動(dòng)啊!那么打個(gè)電話(huà)告訴我吧,什么?我的電話(huà)號(hào)碼是多少?昏到,你打電話(huà)問(wèn)不就知道了嗎,真是的??