現(xiàn)在的軟件越來越寵大、應(yīng)用越來越豐富、應(yīng)用邏輯也越來越復(fù)雜。不象最初的軟件開只依靠個人的技巧來完成的。為了解決軟件危機,有許多專家和組織也提出了相應(yīng)的方法論。身為程序員我又應(yīng)如何來提高我的軟件開發(fā)能力呢?
1:采用合適的技術(shù)
程序員大凡都是聰明的人,至少在抽象思維方面是比較強的。這也決定了我們這些程序員大都有一種追求技術(shù)的好斗心。當然有這個好斗心是好的,這是我們得以不斷追趕日新月異技術(shù)的源動力。但是在開發(fā)項目時我們應(yīng)只能采用合適的技術(shù),因為我們的項目有商業(yè)目的。我們不能為了一個小小項目而搬出EJB、DCOM等高深的技術(shù)來。也不能因為一時的項目時間吃緊而放棄應(yīng)有的技術(shù)。
2:利用可復(fù)用的資源
我總是對別人寫的代碼抱以審視的態(tài)度,總會以為別的代碼里有著BUG或者他的模塊里有著某種機關(guān)。我總想試圖自已從無到有地搭建所有的模塊。有時甚至懷疑MICROSOFT在MFC這個框架里放入了儲如什么“竊聽器”,我變得很糟糕。一個生產(chǎn)飛機的公司得要從零開始地生產(chǎn)每一個零件了,這確實是很有趣。我們會發(fā)現(xiàn)公司會很快進入一個“疲憊”的狀態(tài)。當然生產(chǎn)飛機的公司不會這樣做,他會采購有質(zhì)量保證的零件,為什么我們不這樣做呢?當然我們也要對將要采用的資源給以質(zhì)量驗證了。
3:畫出你的意圖
蜜蜂建筑的蜂巢漂亮極了,連最偉大的建筑師也不得不如是說。但是它的建巢行為并沒有任何的圖紙、規(guī)劃,它們完全憑著本能,是不是我們的“這種藝術(shù)行為”(我在這里這樣說,但實際上別人并不會這樣認為的)也不需要圖紙、規(guī)劃呢?的確是,不過前提是你必須一出生就會寫漂亮代碼了(那是你的一種本能)。別以為畫圖紙、規(guī)劃亂費了你的時間。看看指南針再走路,是不是等你走出森林才發(fā)現(xiàn)走錯了方向更好。
4:提高溝通、協(xié)作能力
軟件開發(fā)是一個集體的勞動,至少現(xiàn)在的大多數(shù)商業(yè)軟件不再是單槍匹馬地完成的。就算是一個人完成的軟件那么這個程序員也會有他的上司。我們應(yīng)在一個愉快的環(huán)境中工作,這樣我們的藝術(shù)細胞才能跳動起來,靈感才能冒出來。又有誰愿意在一個郁悶的環(huán)境中工作呢?一句意思相同的話,用兩個句子表達的作用是可能完全不同。我們要跟同事進行良好溝通以最快速度來完成工作,我們要跟上司良好的溝通以取得支持。我要提高自己的溝通、協(xié)作能力。
5:持續(xù)學(xué)習(xí)
軟件開發(fā)技術(shù)在飛速地變化,身在這個浪潮中的我們只有不斷地學(xué)習(xí)。不學(xué)習(xí)就等于倒退,再說就算不倒退。我相信在我所專的這個領(lǐng)域里我還是有太多的未知,為什么我不在空閑時去探索它呢?學(xué)海無涯,但我們不一定是苦作舟呀,如果你對此已不感興趣或者是討厭了,我建議是馬上退出去做別的。因為這世上賺錢的法子還很多。
6:測試自己的模塊
不要以為測試是測試員的事,我們要對自己做出的模塊有質(zhì)量的保證,我們也可以籍此來驗證自己的思路、發(fā)現(xiàn)自己某處的缺陷。這樣我們就在總結(jié)著經(jīng)驗,一些從“錯誤”中發(fā)掘出來的錯誤更加寶貴,因為這些都是經(jīng)過實踐洗禮。就像電視里經(jīng)過越戰(zhàn)的戰(zhàn)士比較歷害一樣。
7:寫出良好的注釋
我閱過很多的項目代碼,我發(fā)現(xiàn)大師級的模塊里總是有很多良好的注釋,相反有一些有點功底的人他們的代碼里的注釋相當少,有的根本沒有。現(xiàn)在的很多集成環(huán)境能夠自動地從我們的注釋中生成文檔,有這樣的支持,我們?yōu)槭裁催€吝嗇我們的注釋呢?