喬云
摘 要 隨著計算機產業(yè)的發(fā)展,大量的IT企業(yè)紛紛涌現(xiàn),程序員這種職業(yè)越來越常見。但是良好的編程習慣卻是每個程序員都應該具備的工作素質。不好的編程習慣在軟件開發(fā)過程中留下很多的隱患,造成很多的資源浪費,加大了軟件維護的成本,有些甚至制約了整個系統(tǒng)的生命力。探討糟糕的編程習慣帶來的危害,并希望能引起廣大程序員的共鳴,共同關注代碼習慣的養(yǎng)成。
關鍵詞 代碼習慣 軟件開發(fā) 編程習慣 危害
中圖分類號:TP39 文獻標識碼:A
0緒論
隨著計算機以及智能手機的發(fā)展,軟件應用已經完全進入人們的日常生活,與之相對應的,產生了大量的軟件開發(fā)、升級、維護工作,而在這龐大的工作之余,缺陷的修改、版本的維護、版本回退、客戶的個性化需求,還有由于開發(fā)團隊的人員變動等等因素引起的代碼維護問題,對任何一個程序員來說,都是不可避免的問題。每個程序員都不可避免的要去讀別人的代碼,改別人的代碼,所以,面對糟糕的代碼就像面對一個打結的毛線團,處處不敢動,處處看不透。也許本來是來改bug的,結果卻留下了更大的隱患。所以良好的編程習慣,是每個程序員都應該具備的工作素質
1常見的錯誤代碼習慣以及其危害
1.1堅決不動原代碼,永遠添加新方法
這種情況在開發(fā)團隊人員變動大的情況下非常常見。因為最初的開發(fā)人員都不在了,后來的程序員是在一個很大的代碼平臺上做后續(xù)的開發(fā)。這種情況下要做的第一件事當時是讀代碼,但是讀起來卻費時費力,而每每要調整或者實現(xiàn)的功能看起來卻又不復雜,所以就更加懶得讀,所以直接添加了新方法,將調用接口改到新方法上了事。當然還有一種情況就是不敢去動原方法,因為不知道有幾處調用這個方法,怕出現(xiàn)牽一發(fā)動全身的情況,一個小修改,導致其他的問題,所以最穩(wěn)妥的就是添加新方法。但是這種代碼習慣的危害顯而易見:
(1)增大了后續(xù)的維護成本。面對一個功能類似的程序和面對一堆功能類似的程序,哪個更輕松是顯而易見的,而且,這樣的解放方法會讓其他的程序員迷惑,功能類似,卻個個不同,調用的人迷茫,維護的人困惑。
(2)嚴重的代碼冗余。代碼冗余的危害是眾所周知的,暫且不提效率問題以及無意間的代碼耦合等等,單說無用的代碼,卻增大了系統(tǒng)崩潰的可能性,就可以直接說明精簡代碼的必要性了。
(3)降低了軟件的可維護性,養(yǎng)成糟糕的代碼習慣。這樣的維護方式維護起來的代碼就像是一個亂搭起來棚子,沒有一處敢輕易的修改,系統(tǒng)脆弱,而且隨著時間的推移,其維護越來越困難,而且也養(yǎng)成的很不好的代碼習慣,不讀代碼,圖一時清閑,埋下大的隱患。
1.2無規(guī)范,無備注
關于代碼的規(guī)范已經是老生常談了,相信每一個老程序員都會告訴你一大堆代碼規(guī)范的好處,易讀,便于維護,不易出現(xiàn)混亂與bug,有助于促進團隊合作,方便代碼審查等等。同時代碼備注同樣的重要。而且是代碼不可或缺的一部分,或者換句話說,是規(guī)范的代碼不可獲取的一部分。我們寫一個方法或一個類,通過標準的備注告訴以后的自己或者將來的維護人員這段代碼做了什么或者定義了什么,用到了什么對象,輸出了什么對象,易讀性和效率是不是大大的提高了?而且也可以避免出現(xiàn)大量的相同定義、相同方法。我們在開發(fā)中使用到的大量的幫助文檔,就是這些標準的備注,我們在開發(fā)中享受了前人優(yōu)秀備注帶來的好處,為什么不能也把自己的代碼變成可方便別人的代碼,況且,與人方便,與己方便呢。但是很多剛入行的程序員不喜歡在代碼里加備注,覺得麻煩,覺得自己完成了自己的模塊,自己清楚就行,哪里需要給自己留說明。卻忘了軟件是個整體,模塊,類,方法之間的相互調用本就稀松平常,況且,躺在代碼行里的備注永遠躺在代碼行里,而躺在腦海中的備注卻會在日復一日的工作中去留無蹤。無備注,無規(guī)范完全是害人害己的代碼習慣。
1.3無視架構,恣意發(fā)揮
代碼就是要實現(xiàn)功能,這本身沒有錯,但是有些人完全無視架構,不管是表現(xiàn)層,還是業(yè)務邏輯層,反正要訪問數(shù)據(jù)庫,就寫sql。有些代碼甚至在頁面上都有直接訪問數(shù)據(jù)庫的方法。架構混亂,一樣導致代碼難讀,不可復用,甚至影響安全性。
1.4其他錯誤的代碼習慣
還有很多錯誤的代碼習慣,如:學會一招,就開始一招鮮吃遍天,不管方法是不是適合系統(tǒng),硬塞方法進去。再比如有的程序員隨意修改別人和過往的代碼,不去問,不去好好的讀,上手就大刀闊斧,一路改,一路留bug,不問前人為什么這么寫,抬手就給改了,導致到處是隱患,到處留后門。再比如,不愛自查代碼,增大代碼測試壓力,而且容易遺留問題。
2結論
以上是從事了五年的軟件開發(fā)所汲取經驗和教訓,要杜絕這樣的現(xiàn)象,除了要加強管理,程序員的自我修煉也顯得尤其重要。其實很多人并不是故意要這樣,而是受自身的限制。作為管理者要不斷地教育和敦促程序員,程序員也要注意不斷地學習,培養(yǎng)自己的編程意識和素質,同樣要培養(yǎng)自己對產品負責,對項目負責,對同事負責,對自己的工作負責的態(tài)度和榮譽感。
參考文獻
[1] 劉玉.當代程序員的基本素質與能力[J].河北職業(yè)技術學院學報,2004(03).
[2] 左輕侯.如何成為一名優(yōu)秀的程序員[J].程序員,2006(03).
[3] 蘇亞麗,李淑英,陳剛.論程序設計中良好編程風格的運用與分析[J].玉溪師范學院學報,2010(08).