20060626隨筆
好的程序不是一蹴而就的,是一點點地積累,完善直至形成較為穩(wěn)定的產(chǎn)物。為什么說是較為穩(wěn)定?小時候玩過搭積木的朋友應該知道,不管用何種方式搭成的積木,在超過它能承受之外力的時候就會坍塌。而程序也是這樣,沒有bug的程序是不存在的,也沒人知道潛在的bug何時會爆發(fā),這也是程序崩潰的潛在因素。編程是基于你的想法,你想要用程序代碼來模擬或替代現(xiàn)實中的何種事務(wù)。想法明確是前提,基于此你才能在編程的各個階段清楚地知道自己想要做什么,在做好各個階段的前提下,整合調(diào)試形成能良好工作的軟體產(chǎn)物。
對于業(yè)務(wù)化的軟體,開發(fā)調(diào)試的時候其實就是在測試這個業(yè)務(wù),按理說完成某一業(yè)務(wù)時再測試的時候也就是對對需求,看看有沒有遺漏或業(yè)務(wù)理解錯誤的地方,可還是有很多錯誤要改正。這取決于你在做編碼時的態(tài)度,是認真地對待,還是拷貝相似的地方再更改了事,顯然后者是bug產(chǎn)生機率較大的地方,尤其是那些尚不明顯,對業(yè)務(wù)又沒明顯影響的bug。
項目有好有壞,有單調(diào)的重復,也有艱難的調(diào)試,每種情況都可以有很大的收獲。編程講究的是一種想法,項目體現(xiàn)的是一個團隊的合作,在特定情況下對某種特定情況的處理,如何把看似不相關(guān)的業(yè)務(wù)捏合到一起的經(jīng)驗。要學會在重復單調(diào)的勞動中體會這種思想,并試著用某幾個小程序片斷來簡單地實現(xiàn)它,這樣長此以久,可以形成自己的一套開發(fā)經(jīng)驗,在任何情況都能游刃有余,快速地融入一個項目中去。愚以為這是轉(zhuǎn)型為項目經(jīng)理的前提,項目經(jīng)理可以技術(shù)有限,但要清楚可能發(fā)生在項目中的問題是如何處理的,這就要取決于你的經(jīng)驗。手下的程序員需要地就是這樣一個指導作用,有時就需要這樣一個提示,問題就迎刃而解,這對情緒的鼓舞是巨大的,而每個人都知道一個人情緒好的時候,幾乎沒有解決不了的問題。
對于比較流行的XP編程,也就是結(jié)對編程,愚以為也是建立在結(jié)對的兩個人互相尊重互相信任的前提下才可以進行的。
其實軟件工程,是項目經(jīng)驗的一個總結(jié),是經(jīng)驗的總集,可惜被高度抽象化難以理解。而在當前社會利益的驅(qū)使下,也幾乎沒人能靜下心研究軟件工程,這前人經(jīng)驗的結(jié)晶。
信息化的步伐越來越快,軟件外包也又開始成為軟件公司賺錢的法寶,在銀行可以將其非核心業(yè)務(wù)外包出來的今天,還有什么不可以外包的。程序員的門檻越來越低,越來越平民化,有點像現(xiàn)在大學生與以前的轉(zhuǎn)變趨勢,大學生也越來越平民化。也許在不久的將來,中國可以取代印度成為世界第一外包大國。