良好的編程習(xí)慣是每個程序員都應(yīng)該具備的工作素質(zhì),在我的軟件生涯中屢屢發(fā)現(xiàn)一些程序員的身上總有這樣或者那樣的壞毛病,這些毛病在一些從業(yè)時間不是很長的程序員的身上表現(xiàn)的特別突出。
1. 搭棚子
搭棚子顧名思義就是拿到一個任務(wù)的時候,既不做更詳細(xì)的需求分析,也不作詳細(xì)設(shè)計(jì),一開始就打開編程工具,噼里啪啦的定義了一堆的模塊,我不說是定義類,是因?yàn)檫@樣代碼里根本就找不到對象,然后就在這些模塊的基礎(chǔ)上進(jìn)行工作,結(jié)果整個程序看起來就象胡亂搭起來的棚子,雖然有個程序的樣子,而且似乎也實(shí)現(xiàn)了所要的功能,但是這樣的程序往往是邏輯混亂,不僅理解困難,維護(hù)起來也是十分的困難。既然是個棚子,在風(fēng)雨飄搖之日自然難以久長。
出現(xiàn)搭棚子的現(xiàn)象暴露出幾個方面的問題:
- 管理的混亂。管理者有職責(zé)去檢查這樣的代碼,并及早給予糾正和提供指導(dǎo)。
- 不重視設(shè)計(jì)。如果一個軟件組織不重視設(shè)計(jì),出現(xiàn)這樣的現(xiàn)象是自然而然的事情。
- 實(shí)用主義。在項(xiàng)目實(shí)施的過程中,有些人的口號就是實(shí)現(xiàn)功能就好,滿足用戶的需求就好,因而在編程的過程中總是匆匆上馬,表面上是加快了進(jìn)度,實(shí)際為項(xiàng)目的后期維護(hù)埋下了炸藥,嚴(yán)重的會嚴(yán)重影響項(xiàng)目的進(jìn)度和質(zhì)量。
2. 釘釘子
釘釘子的表現(xiàn)為代碼維護(hù)或者程序?qū)崿F(xiàn)的時候,硬生生的往程序中添加不必要或者與對象和邏輯相關(guān)的代碼。這樣的代碼往往表現(xiàn)在多層體系的系統(tǒng)中,有些人為了偷懶,不愿意從下層將代碼維護(hù)好,而是從上層開始修改,如用戶需要做一個報表程序,那么有的程序員的做法就是將SQL語句直接在界面層進(jìn)行調(diào)用,破壞了系統(tǒng)的層次和封裝。還有的做法就是在不相干的對象中添加對其他對象操作 的代碼。
3. 甩錘子
有的人剛學(xué)了一個新的技術(shù),或者一個得到一個好的點(diǎn)子,不管這個點(diǎn)子是否使用于當(dāng)前的程序,就到處應(yīng)用。頗有“手上拿了個錘子就看到什么都是釘子”的架勢。應(yīng)用新的技術(shù)或者點(diǎn)子是好的,但是也要看時機(jī)和場合。
4. 糊窗子
窗子破了的時候,如果沒有地方配玻璃或者懶得去搞一塊玻璃,一些人的做法就是弄一張報紙或者美女的圖片帖子破了地方,以期遮風(fēng)擋雨。在我們的程序中出現(xiàn)BUG的時候就如同窗戶破了一個洞。有的人不是從源頭上進(jìn)行解決,或者不是尋找合理的解決方案,而是就地將一個漏洞堵上。其后果可能真的堵上了,但是也可能是因?yàn)槠涓膭訋砹烁嗟膯栴},也可能是堵住了一個地方,回頭發(fā)現(xiàn)又有其他的漏洞,然后不停的往程序身上帖報紙。這樣的程序看起來將不知道有多難看。
5. 拉肚子
拉肚子,我想每個人都拉過,相信每個人都會承認(rèn)其滋味實(shí)際上是不怎么好受的,但實(shí)際上在編程活動中有的人偏偏喜歡這樣。我曾發(fā)現(xiàn)有的人一個函數(shù)居然超過3000行,以一屏幕25行來計(jì)算,要翻100多屏才能將一個函數(shù)的代碼看完,My God!我想這樣的代碼拿給誰誰都要捏著鼻子,更不要說去維護(hù)了。還有一個表現(xiàn)是一行往往寫的很長,自己將滾動條滾過來滾過去不知道是否曾經(jīng)感到過累的慌。
6. 遛狗子
狗子是動物,隨地大小便是控制不住了,一個是它們沒有文明的意識,另外一個是人無法控制它們的意識。然而我們有的程序員在維護(hù)舊代碼的過程,就仿佛如果遛狗。每修改一個程序就留下一些隱患,結(jié)果弄的一個原本好好的代碼到處都是隱患。
以上是我的一些總結(jié),一是提醒,而是警醒。要杜絕這樣的現(xiàn)象,除了要加強(qiáng)管理,程序員的自我修煉也顯得尤其重要。其實(shí)很多人并不是故意要這樣,而是受自身的限制。作為管理者要不斷的教育和敦促程序員,程序員也要注意不斷的學(xué)習(xí),培養(yǎng)自己的編程意識和素質(zhì),同樣要培養(yǎng)自己對產(chǎn)品負(fù)責(zé),對項(xiàng)目負(fù)責(zé),對同事負(fù)責(zé),對自己的工作負(fù)責(zé)的態(tài)度和榮譽(yù)感。
原文:http://www.cnblogs.com/yanrongpi/archive/2007/12/15/996072.html
本文鏈接:http://m.95time.cn/tech/program/2009/6861.asp
出處:Water is wide
責(zé)任編輯:bluehearts
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|