亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        高效程序設計的七個習慣

        2017-05-12 09:53:01文艾陳衛(wèi)衛(wèi)
        計算機教育 2017年4期
        關鍵詞:迭代程序設計編碼

        文艾+陳衛(wèi)衛(wèi)

        (解放軍理工大學 指揮信息系統(tǒng)學院,江蘇 南京 210007)

        摘 要:分析大學生難以掌握程序設計技能的問題,提出學生的程序設計習慣是導致上述問題的關鍵因素。根據(jù)程序設計和教學方面的經(jīng)驗,總結出高效程序設計的七個習慣,并說明實踐過程,最后指出這些習慣可有效提高學員的程序設計效率。

        關鍵詞:程序設計;習慣;編碼;迭代

        1 背 景

        程序設計是計算機及相關專業(yè)學生必須掌握的一門重要技能。然而,從歷年畢業(yè)生的學習情況來看,能夠較好地掌握程序設計能力的學生只是一小部分,還有相當一部分學生無法順利地設計程序,甚至不會編程,其中不乏高分學生。為何同樣的課程設置、同樣的教材,甚至同一個教師,學習結果有如此差異?針對上述問題,已有很多研究和解決方案[1-3]。筆者從學生個體差異的角度進行分析,認為智力不是上述問題的關鍵因素,因為對同一所大學的學生來說,除特別突出者,絕大部分學生處在同一水平,而每個學生在程序設計學習和實踐過程中的個人習慣,才是導致上述現(xiàn)象的關鍵因素。

        為此,筆者根據(jù)程序設計開發(fā)和教學方面的經(jīng)驗,總結出高效程序設計的七個習慣,并利用學院的本科生導師制,將這些習慣的養(yǎng)成貫穿到人才培養(yǎng)的各個方面。

        2 高效程序設計的七個習慣

        高效程序設計的七個習慣分別是:①先找輪子;②從最簡出發(fā);③讓程序先跑起來;④友好編碼;⑤即時驗證;⑥無損迭代;⑦定期備份。

        2.1 先找輪子

        在進行程序設計之前,不要急于開始編碼,而是要盡可能地找到與設計目標相對應的實現(xiàn),稱之為“輪子”。在互聯(lián)網(wǎng)上,程序設計的資源非常豐富,尤其隨著開源運動的蓬勃發(fā)展,小到一個簡單的Hello World程序,大到操作系統(tǒng),都有開源實現(xiàn)。對于初學者,先找到輪子,就可以站在巨人的肩膀上,快速進入某個專業(yè)領域。比如,設計一個分布式文件系統(tǒng),如果從零開始,會非常復雜,如果能找到MFS(一個開源的分布式文件系統(tǒng)),就可以從使用、設計到編碼實現(xiàn),全方位地進行學習和借鑒,會大大節(jié)省時間,并迅速累積經(jīng)驗;又如,JPEG圖片的編碼和解壓功能,如果從零開始實現(xiàn),不但需要掌握JPEG算法原理,還要考慮實現(xiàn)的效率,在時間和可行性上是不可接受的,如果能找到JPEG的開源實現(xiàn),然后在此基礎上進行修改,適配需求,就會大大節(jié)省時間。

        2.2 從最簡出發(fā)

        設計一個復雜程序的時候,不要試圖一次實現(xiàn)整個程序,應該先實現(xiàn)其最核心的功能,然后進行多次迭代,形成最終的版本。程序從本質(zhì)上講,就是邏輯的組合,一次實現(xiàn)這些復雜的邏輯,對開發(fā)者來說,可能無法把控,有時即便實現(xiàn)了,穩(wěn)定性也無法保證。在實現(xiàn)之前,可以先對這些邏輯進行分解,確定哪些是核心、是不可再分的,哪些可以后續(xù)進行組合,再按照先核心、后外圍的順序進行開發(fā)。比如,要實現(xiàn)一個聊天軟件,其最核心的功能就是網(wǎng)絡通信,因此,可以先實現(xiàn)Server端和Client端的網(wǎng)絡通信,然后在此基礎上定義消息、完善功能。又如,用硬件語言實現(xiàn)CPU時,如果先對指令進行分類,然后實現(xiàn)代表指令,構建數(shù)據(jù)通路,后續(xù)的指令就可以線性添加,不需要改變數(shù)據(jù)通路和狀態(tài)機,只需要改變控制信號,這樣整個CPU的復雜邏輯就可以實現(xiàn)。

        2.3 讓程序先跑起來

        無論是設計程序還是學習代碼,讓程序跑起來都是第一要義。如果是設計程序,一開始就讓程序跑起來,可以及時對程序邏輯進行驗證,從而避免錯誤的累積;如果是學習代碼,讓程序跑起來可以直接觀察程序的運行狀態(tài)和輸出結果,必要時還可以進行調(diào)試,這樣可以快速理解代碼的含義和設計機制。

        2.4 友好編碼

        友好編碼是指編寫代碼時,要遵守一定的編碼規(guī)范,具體來說包括文件、目錄、變量、函數(shù)的命名規(guī)則、代碼縮進與對齊、注釋風格等。不同的語言有不同的規(guī)定,例如C語言的代碼風格和Java語言就有所區(qū)別,即使是同一種語言,也可能有多種風格,應盡量選取大多數(shù)人遵循的風格。再如,在Linux平臺下設計C程序,就可以參照內(nèi)核代碼或者平臺軟件(如GCC)的代碼風格。

        2.5 即時驗證

        即時驗證是指對代碼進行一定修改后,要及時驗證,有效防止錯誤的累積。由于修改前的代碼已經(jīng)過驗證,因此,修改后如果出現(xiàn)錯誤,可以根據(jù)提示信息,比照修改的代碼部分,迅速定位。即時驗證包括語法驗證和語義驗證。一般來說,一旦做出代碼修改,就應立即進行語法驗證,即重新編譯、鏈接代碼;而一旦完成某個邏輯功能的修改,應立即進行語義驗證,運行相應的測試用例。

        2.6 無損迭代

        無損迭代是指在擴展功能時,要注意新增代碼不能影響原有代碼的穩(wěn)定性。在具體實施中,功能的增加盡可能采用代碼追加的方式實現(xiàn),而不是重構代碼,這樣雖然可能導致代碼冗余,但是程序的原有功能沒有改變,新增功能即使有問題,也可以迅速定位。

        2.7 定期備份

        定期備份的重要性不言而喻,最重要的是要形成習慣并長期堅持。此外,備份的對象不僅包括代碼,也應包括開發(fā)環(huán)境等;備份的存儲對象,不僅在本機,也可實時備份到移動設備或者網(wǎng)絡;為了方便版本管理,可以利用git等優(yōu)秀工具;對于非常重要的代碼和文件,除了使用git進行備份外,還應進行完全備份。

        上述習慣對于高效程序設計有非常重要的作用,具體體現(xiàn)在以下幾個方面。

        (1)加速程序開發(fā)。先找到輪子可以讓程序開發(fā)基于已有的實現(xiàn),而不需要從零開始編碼。

        (2)減少出錯。讓程序先跑起來可以檢查程序的語法錯誤,同時可以動態(tài)調(diào)試程序,減少出錯;即時驗證可以立即驗證程序的語法和語義錯誤,將錯誤限定在最近一次修改中,便于快速定位錯誤。

        (3)確保復雜程序的可靠性。從最簡出發(fā)使程序的邏輯遵循從簡單到復雜的順序,確保每個簡單程序的正確性,確保最終復雜程序的可靠性;無損迭代可以使程序在添加新功能后,原有功能的可靠性不受影響。

        (4)提升協(xié)作效率。友好編碼可以使程序的編碼遵循統(tǒng)一風格,提升團隊協(xié)作開發(fā)的效率。

        (5)確保開發(fā)進程的可靠性。定期備份可以確保整個開發(fā)進行中所需資源的可靠性,避免資源丟失后的重復勞動。

        3 實踐結果

        近年來,筆者共隨機選取22人參加高效程序習慣的養(yǎng)成實踐,結果表明學員掌握程序設計技能的時間大幅縮短,且程序設計的水平相對普通學員普遍較高。參與該實踐的學員中,獲得畢業(yè)設計良好以上的有20人次,獲得全國軟件大賽一等獎9人次、二等獎7人次,還獲得多項大學程序競賽獎。在2013年,有學員作為江蘇高校的唯一代表,獲得第三屆中科杯全國軟件大賽一等獎(一等獎覆蓋率不到千分之三),是當時軍隊院校參賽以來的最好成績;在2014年,學員獲得第五屆藍橋杯全國軟件大賽團隊賽選拔賽一等獎(一等獎覆蓋率不到百分之五),也是當時軍隊院校參賽以來的最好成績;在2015年,參與實踐的4名本科合訓學員作為軍隊唯一代表,參加首屆全國高校云計算應用創(chuàng)新大賽,面對與全國14支985、211大學的博士、碩士團隊的競爭,他們沉著應戰(zhàn),獲得大賽最高獎項——特等獎,新華日報、解放軍報、網(wǎng)易新聞等對此進行了報道。由于上述學員均來自“本科生導師制”隨機分配的學員,并未擇優(yōu)選取,因此樣本具有普遍性。

        4 結 語

        實踐結果表明,高效程序開發(fā)的七個習慣可以幫助學生在有限的時間內(nèi),快速掌握程序設計技能,提升獨立解決問題的能力。要實現(xiàn)高效程序設計,僅僅明白上述七個習慣遠遠不夠,重要的是將它們轉(zhuǎn)化成程序設計中不易改變的習慣。因此,研究如何讓學員更高效和牢固地養(yǎng)成上述習慣是下一步工作的方向。

        第一作者簡介:文艾,男,講師,研究方向為云計算、大數(shù)據(jù)開發(fā),hdfsha@126.com,

        參考文獻:

        [1]丁金鳳. 基于計算思維的程序設計類課程教學實踐[J]. 計算機教育, 2012(15): 65-68.

        [2]陳杰華. 程序設計課程中強化計算思維訓練的實踐探索[J]. 計算機教育, 2009(20): 84-85.

        [3]劉振華. 計算機應用型本科人才程序設計能力培養(yǎng)[J]. 計算機教育, 2010(12): 38-40.

        (編輯:孫怡銘)

        猜你喜歡
        迭代程序設計編碼
        基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
        《全元詩》未編碼疑難字考辨十五則
        基于Visual Studio Code的C語言程序設計實踐教學探索
        計算機教育(2020年5期)2020-07-24 08:52:56
        子帶編碼在圖像壓縮編碼中的應用
        電子制作(2019年22期)2020-01-14 03:16:24
        從細節(jié)入手,談PLC程序設計技巧
        電子制作(2019年9期)2019-05-30 09:42:04
        Genome and healthcare
        基于最小二乘的視野區(qū)域運動方向分析
        JavaScript計算性能對比研究
        軟件導刊(2016年11期)2016-12-22 21:36:13
        高職高專院校C語言程序設計教學改革探索
        中間件“迭代”
        插上翅膀插上科学的翅膀飞| 国产aⅴ丝袜旗袍无码麻豆| 亚洲精品女同在线观看| 国产青青草在线观看视频| 日韩中文字幕免费视频| 99国产精品99久久久久久| 亚洲国产免费公开在线视频| 日本一区二区三区区视频| 亚洲国产成人精品无码区在线秒播| 97久久精品人人做人人爽| 亚洲欧美另类日本久久影院| 国产麻豆一区二区三区在| 亚洲国产成人一区二区精品区 | 亚洲一区二区三区中文视频| 精品一区二区三区久久| 免费网站看av片| 91精品手机国产在线能| 亚洲色图视频在线观看,| 中文字幕亚洲精品久久| 日本爽快片18禁免费看| 亚洲av日韩av一卡二卡| 国产自拍av在线观看| 天天爽夜夜爽人人爽| 四虎成人精品无码永久在线| 国产好片日本一区二区三区四区| 亚洲日本人妻少妇中文字幕| 国产成人一区二区三区| 国产成人77亚洲精品www| 一区二区黄色素人黄色| 久久精品中文字幕无码绿巨人| 国产又黄又猛又粗又爽的a片动漫| 国产精品美女久久久久浪潮AVⅤ| 亚洲一区二区三区偷拍厕所| 亚洲熟女乱色综合亚洲av| 国产一级在线现免费观看| 亚洲av天堂在线免费观看| 牛牛在线视频| 草莓视频一区二区精品| 永久免费看黄在线观看| 日本动漫瀑乳h动漫啪啪免费| 妇女性内射冈站hdwwwooo |