這幾天參與了一個(gè)c語言和c 語言是不是應(yīng)該算一種語言的討論,引發(fā)了寫沒寫過大項(xiàng)目的質(zhì)疑。我先自我介紹一下,我03年參加工作,畢業(yè)后就進(jìn)入了當(dāng)時(shí)可能是最火的電信軟件開發(fā)行業(yè),開始寫c語言,unix下c語言。當(dāng)時(shí)中國移動(dòng)是最有錢的甲方了吧,主機(jī)都是IBM 小機(jī),hp的也用,但是沒有IBM的數(shù)量多。aix、hp-ux都用過,直到linux。我當(dāng)時(shí)做賬務(wù)處理,主要就是算月租,把話單變成賬單,對(duì)賬單做優(yōu)惠,收用戶的手機(jī)費(fèi)。
有人說計(jì)費(fèi)系統(tǒng)不算大項(xiàng)目,但是就我從業(yè)的這么多年看,至少不是小項(xiàng)目。我也沒再參與過更大的項(xiàng)目了。
轉(zhuǎn)回到軟件開發(fā),一個(gè)軟件項(xiàng)目,是由很多功能模塊構(gòu)成的,有前臺(tái),有中間件,有后臺(tái),有接口,有主機(jī)監(jiān)控,有統(tǒng)計(jì)分析報(bào)表等等。每個(gè)大類里面,還要細(xì)分更多的子模塊,子功能等等。我想任何一個(gè)項(xiàng)目經(jīng)理、系統(tǒng)架構(gòu)師,都不可能把這樣的項(xiàng)目寫到一個(gè)main里面,代碼寫幾百萬行吧?按照項(xiàng)目管理的理論要求,項(xiàng)目要進(jìn)行分解,形成wbs,切分成最長(zhǎng)2周的工作任務(wù)包,那么我們肯定會(huì)把模塊細(xì)化,切分成細(xì)小的功能點(diǎn),按照原來的軟件工程理論,這可能叫解耦吧?再按照中國軟件工程師的特點(diǎn),獨(dú)立個(gè)體都是龍,捏合到一起往往1 1不一定大于2,所以拆分功能模塊,最合適的就是拆分到一個(gè)模塊一個(gè)人負(fù)責(zé),與其他模塊交互,架構(gòu)師或項(xiàng)目經(jīng)理參與,雙方談好接口,這樣既保證了軟件的可靠性,又提高了工作效率,工程師離職后也不會(huì)對(duì)整個(gè)系統(tǒng)有大的影響。
寫具體的一個(gè)程序也是,因?yàn)槲抑粫?huì)c語言,我就拿c語言舉例。寫一個(gè)程序,不是一個(gè)函數(shù)從頭寫到尾,寫幾萬行,那樣不叫程序,也不是一個(gè)成熟的有水平的程序員干的事。一個(gè)程序,也是由多個(gè)模塊、多個(gè)函數(shù)構(gòu)成,每個(gè)函數(shù)最好不要超過1000行,一些功能關(guān)聯(lián)性高的,組成一個(gè)lib庫文件,lib庫可以有層級(jí),平級(jí)直接沒有調(diào)用關(guān)系,高層級(jí)可以調(diào)用低層級(jí),層級(jí)也不易太多,5級(jí)足以。這樣開發(fā),主程序中按照事物或數(shù)據(jù)的處理流程,調(diào)用相關(guān)的函數(shù)即可。編譯也方便,代碼復(fù)用率也高,出了問題也好查。
總之每個(gè)人寫程序的習(xí)慣都不一樣,選擇適合自己的就好。至于大項(xiàng)目,我真的覺得你可能就是參與了其中一塊而已,如果真有人純手?jǐn)]500萬行代碼,請(qǐng)收下我的膝蓋,我對(duì)您頂禮膜拜,您永遠(yuǎn)是我的神!
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。