王芳++孟惠++史子良
摘要:編程能力是計算機相關專業(yè)學生的基本技能。筆者在帶領學生進行項目實踐的過程中,發(fā)現編程規(guī)范對整個項目進度和質量影響巨大,由此指出項目實踐中關于編程規(guī)范方面存在的問題,并對實際教學的相關環(huán)節(jié)給出針對性建議。
關鍵詞:編程規(guī)范 習慣養(yǎng)成 三位一體
中圖分類號:TP311.1 文獻標識碼:A 文章編號:1007-9416(2016)12-0253-01
引言
近年來,國家加大對本科應用型人才培養(yǎng)模式的探討。對于計算機相關專業(yè)的學生來說,編程能力是一項基本功,項目實踐作為提高學生編程能力和團隊協作能力的一項基本訓練也越來越受重視。
然而,多次項目實踐經驗表明,影響進度和質量的不只是編程人員的程序設計能力,良好的編程規(guī)范起著至關重要的作用。
1 問題的提出
當前的軟件行業(yè),絕大多數軟件開發(fā)以項目團隊的形式完成。團隊協作中,良好的編程習慣不僅有利于團隊成員之間的交流,對軟件的測試和后期維護也至關重要。
而無規(guī)范的程序代碼將反映以下問題:
1)客戶和公司感覺編程人員不夠專業(yè),由此產生不信任感;2)影響項目成員溝通,甚至造成項目多次返工;3)增加軟件測試的難度;4)軟件維護困難,無規(guī)范的程序代碼將使后續(xù)的維護和功能擴展舉步維艱。
2 項目實踐中存在的編程規(guī)范方面的問題
大量成功或不成功的項目實踐中,編程規(guī)范暴漏的問題主要有以下幾點:
(1)命名不規(guī)范。大部分的計算機院校,第一門程序語言課程是C程序設計。市面上的C程序類教科書,有很多如圖1所示的程序段:
教師為節(jié)約時間,程序舉例中也多采用這樣的命名方式,導致初始參加項目實踐的很多程序員,習慣以a,b,c,i,j,k等命名變量,無法做到見名知意。
(2)注釋不規(guī)范??茖W而規(guī)范的注釋有助于項目團隊其他成員更好地理解程序架構及功能。很多初級程序員往往忽略注釋,或隨意添加,使得項目組成員的溝通和協調不暢。
(3)項目成員任務劃分不明確或不合理。任務劃分應考慮每個成員所學特長,物盡其用;工作量要求平衡,差異不大;各成員任務要求能同步開展,無先后次序之分。
(4)代碼縮進及文檔書寫不規(guī)范。項目文檔只是表面文章,無具體細節(jié)內容;項目日志經常漏寫。
3 編程規(guī)范需遵循的原則
目前,軟件行業(yè)及各軟件公司都制定了自己的編程規(guī)范,歸納下來,應遵循以下原則:
清晰:根據市場調查,軟件維護成本占軟件生命周期成本的40%-90%。代碼的可讀性已經成為衡量質量的一個重要標準。
簡潔:包括長和多兩方面。代碼越長越難看懂,修改時越容易引入錯誤;代碼越多越易出錯,意味著可靠性越低。具體應用中,廢棄的代碼需及時清除,重復代碼應盡可能提煉成函數。
在清晰和簡潔的指導下,結合項目實踐暴漏的問題,以下方面應引起注意:
(1)標識符的命名遵循統一風格,使用完整單詞或公認縮寫,不得使用漢語拼音;
(2)注釋遵循公司規(guī)范,頭文件、函數聲明、全局變量等要有詳細注釋,同時避免注釋的二義性,更新代碼同時需更新注釋;
(3)程序塊采用嚴格的縮進風格編寫,獨立的程序塊、變量聲明后須加空行,以增強代碼的可讀性;
(4)模塊化編程 中應增強模塊間的弱連接和模塊內的強耦合;
(5)一個函數實現一個功能,函數參數<=5個,函數嵌套<=4層,函數高扇入,低扇出(原則<=7)。
4 良好編程規(guī)范的培養(yǎng)
一種習慣的養(yǎng)成往往需要多管齊下,比如學—練—用。良好的編程規(guī)范不僅有利于眼前的項目實現,也將伴隨程序員一生。因此,我們提出“三位一體”訓練法,如圖2所示,集理論、實踐、應用于一體,通過逐步滲透、習慣養(yǎng)成、項目加強三個階段,不斷加強編程規(guī)范的培養(yǎng),使之成為伴隨程序員一生的無意識的良好習慣。
5 結語
良好的編程習慣,可使計算機專業(yè)各方向人才終生受益,也便于項目組進行軟件測試和后期的軟件維護,體現專業(yè)化的素養(yǎng)。理論指導的逐步滲透、實踐訓練的習慣養(yǎng)成、企業(yè)實訓應用的項目加強,三位一體,必能增強學生編程規(guī)范方面的素養(yǎng)。
參考文獻
[1]丁紅勝.C語言教學中學生編程風格的培養(yǎng)[J].計算機時代,2006(10).
[2]陳中育.技能型軟件人才的實踐教學模式[J].計算機教育,2013(10).
[3]何成巨.淺談軟件編程中的代碼規(guī)范問題[J].電腦知識與技術,2011(9).
[4]譚浩強.C程序設計(第四版)[M].2010(6).
[5]華為技術有限公司.華為技術有限公司內部技術規(guī)范[Z].2011(5).