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