備案號:遼ICP備19007957號-1
聆聽您的聲音:feedback@highmark.com.cn企業(yè)熱線:400-778-8318
Copyright ?2015- 海馬課堂網(wǎng)絡(luò)科技(大連)有限公司辦公地址:遼寧省大連市高新技術(shù)產(chǎn)業(yè)園區(qū)火炬路32A號創(chuàng)業(yè)大廈A座18層1801室
許多編程課程都要求學(xué)生必須完成的編碼項目。對于那些沒有經(jīng)驗寫長程序的人來說,這些項目可能相當(dāng)令人生畏。項目還需要考慮到一些測試用例。這篇文章為大家?guī)?strong>猶他大學(xué)編碼設(shè)計環(huán)節(jié)基礎(chǔ)技巧講解。
1.仔細(xì)閱讀規(guī)范
你的作業(yè)會有某種描述你正在構(gòu)建什么的規(guī)范。確保仔細(xì)閱讀此規(guī)范。如果你收到的是PDF格式的,試著先打印出來再閱讀。你可以在規(guī)范中突出一些重要的部分,對我來說,紙質(zhì)紙張更容易閱讀。規(guī)范是你的指南,你希望在開始之前確保你完全理解它們。
2.先草稿,后編碼
閱讀規(guī)范后,你會對你的要求有一些想法。對于許多學(xué)生來說,很誘人直接跳到他們的IDE或文本編輯器中開始編碼。我想強(qiáng)調(diào)一件事。
3.不要做的事
如果從這篇文章中你能記住一件事,那就是這一點。你不應(yīng)該立即跳到編碼。拿出一張紙,起草你的程序。如果你有iPad或數(shù)字記事本設(shè)備,請創(chuàng)建一個新的記事本,先隨便寫下你的計劃。
為什么要這么做呢?因為編碼實際上并不是關(guān)于代碼的。這更像是系統(tǒng)設(shè)計的藝術(shù)。編程項目就像建筑項目。你不想在沒有藍(lán)圖的情況下建造建筑物。
我太多次看到人們無目的地編碼,只是在中途卡住,因為某些東西出了問題。這就像試圖用木頭建造摩天大樓,只是后來才意識到有一個高度限制。
這是我在計劃代碼時考慮的一些事情:
我將使用哪些數(shù)據(jù)結(jié)構(gòu)?哪一個最適合這項工作?
A函數(shù)會如何工作?B?C?它將使用什么算法?
數(shù)據(jù)的期望流程是什么?
我接受什么輸入,輸出什么?
我是否應(yīng)該將變量和函數(shù)封裝在類中?或者這是不必要的嗎?
我如何處理內(nèi)存分配?在哪里創(chuàng)建堆中的新對象?
我是傳值還是傳引用?
相信我,當(dāng)我說這個時,你會想先計劃再采取行動。你會在開發(fā)經(jīng)驗中看到明顯的改善。
4.編寫模塊化的代碼
我上面提到編碼主要是系統(tǒng)設(shè)計的藝術(shù)。我仍然認(rèn)為這是真的,但這并不意味著你免于編寫糟糕的代碼。當(dāng)你編寫丑陋、難以閱讀和難以維護(hù)的代碼時,你只是在自欺欺人。
風(fēng)格是個人選擇,我不是一個會批評別人品味的人。然而,有一些做法是你應(yīng)該遵循的,這有助于你自己。
其中之一是編寫模塊化的代碼。這意味著盡可能抽象掉盡可能多的代碼。這也與DRY(不要重復(fù)自己)原則有關(guān)。如果你發(fā)現(xiàn)自己寫了很多重復(fù)的代碼,你可能想考慮將其抽象為一個可以稍后重復(fù)使用的函數(shù)。這樣,你的代碼變得更容易閱讀,調(diào)試也變得更容易。
5.確保知道如何使用調(diào)試器
這將為你節(jié)省大量時間。我知道很多人默認(rèn)使用打印調(diào)試,我也有此罪過。如果你不熟悉它,打印調(diào)試是一種技術(shù),你會在代碼中的某些區(qū)域插入打印語句,其中你認(rèn)為可能發(fā)生錯誤,或者在代碼的某些點打印出變量。打印調(diào)試在需要進(jìn)行一些快速的合理性檢查時很有用,但效率不高。在你的學(xué)生生涯中,你可能能夠應(yīng)付過去,但我強(qiáng)烈建議你學(xué)會使用調(diào)試器。以下是一些建議的原因:
你的代碼會非常、非??焖俚刈兊梅浅;靵y。
如果你的代碼輸出到命令行或文件,打印調(diào)試將破壞你的輸出,使其變得耗時閱讀和檢查。在終端中滾動不是最好的使用你寶貴時間的方式。
如果你想通過打印調(diào)試檢查容器中的項目,你需要循環(huán)遍歷容器并打印出每個項目。這很丑陋。
有時你需要檢查內(nèi)存地址和堆棧,調(diào)試器將為你完成這項工作。
有時你只是希望能夠在變量的生命周期內(nèi)跟蹤它。調(diào)試器可以幫助你做到這一點。
如果你使用的是Visual Studio Code,我建議你學(xué)會內(nèi)置的可視化調(diào)試器。這是一個非常易于使用的調(diào)試器,可以為你節(jié)省大量時間。在學(xué)會如何使用調(diào)試器后,我發(fā)現(xiàn)我的調(diào)試錯誤能力有了明顯的提高。
6.明確列出可能的錯誤向量
還有一個調(diào)試提示。當(dāng)你編寫代碼時,你需要停下來思考可能發(fā)生的錯誤。例如,如果你的代碼將項目插入到數(shù)組中,你需要承認(rèn)與索引有關(guān)的可能錯誤。如果你正在使用指針,你總是要確保它被刪除,并確保你沒有試圖在堆中雙重釋放內(nèi)存或使用懸掛指針。我將很快制作一個關(guān)于指針的教程,所以如果你還不理解這些,不用擔(dān)心。
關(guān)鍵是,如果你等到最后才檢查錯誤,你需要滾動幾百行代碼才能找到可能發(fā)生錯誤的地方。如果你列出可能的錯誤點,那么你識別它們就容易得多。
海馬課堂留學(xué)生作業(yè)輔導(dǎo)服務(wù)全面升級啦!
?試聽課全面升級,不滿意退50%,
?輔導(dǎo)不滿意可以隨心退!
我們根據(jù)學(xué)生的輔導(dǎo)需求匹配背景相符的專業(yè)老師。1V1個性化備課,雙語教學(xué),實時輔導(dǎo)。老師講解相關(guān)知識點和解題思路,提供大型作業(yè)任務(wù)的解決方案,輔導(dǎo)計算機(jī)編程語言操作,教授學(xué)生高效完成PPT和演講稿,針對性解決留學(xué)生各類作業(yè)中遇到的困擾,提高作業(yè)成績!
閱讀原文:http://cheshan.cn/news/17200_60.html
版權(quán)作品,未經(jīng)海馬課堂 highmarktutor.com 書面授權(quán),嚴(yán)禁轉(zhuǎn)載,違者將被追究法律責(zé)任。
24h在線客服



備案號:遼ICP備19007957號-1
聆聽您的聲音:feedback@highmark.com.cn企業(yè)熱線:400-778-8318
Copyright ?2015- 海馬課堂網(wǎng)絡(luò)科技(大連)有限公司辦公地址:遼寧省大連市高新技術(shù)產(chǎn)業(yè)園區(qū)火炬路32A號創(chuàng)業(yè)大廈A座18層1801室
hmkt088