編寫程序是一項(xiàng)系統(tǒng)而繁瑣的工作,它不僅需要程序設(shè)計(jì)人員具有一定的功底,更需要有良好的編程習(xí)慣和風(fēng)格。良好的編程習(xí)慣和風(fēng)格不僅可以使程序代碼更易于讀懂和修改,更重要的是,它可以使程序的結(jié)構(gòu)更加合理,有助于提高程序的執(zhí)行效率。下面是我在程序設(shè)計(jì)中總結(jié)的一些經(jīng)驗(yàn),供大家參考。
設(shè)計(jì)順序
在我們剛開始學(xué)習(xí)程序設(shè)計(jì)的時(shí)候,要編寫一個(gè)程序,總是先進(jìn)行一番構(gòu)思,然后就一邊寫代碼一邊調(diào)試。這種方法一般只適用于非常小的程序,根據(jù)軟件工程的特點(diǎn),如果對(duì)所有程序都還按這種方法進(jìn)行設(shè)計(jì),是不合理的。
其實(shí),設(shè)計(jì)程序就像我們蓋高樓大廈,首先要設(shè)計(jì)圖紙,然后動(dòng)工。所以,對(duì)于個(gè)人編寫程序來(lái)說(shuō),應(yīng)遵循以下步驟:
1、問(wèn)題分析:對(duì)我們要使用程序設(shè)計(jì)手段去解決的問(wèn)題進(jìn)行系統(tǒng)地分析,了解程序是做什么的,要達(dá)到一種什么樣的效果等。
2、結(jié)構(gòu)設(shè)計(jì):也就是對(duì)程序的整體框架進(jìn)行設(shè)計(jì),設(shè)計(jì)出我們需要使用的模塊等等,并畫出流程圖。
3、用戶界面設(shè)計(jì):在此,我們要設(shè)計(jì)出用于與用戶交互的輸入輸出界面。
4、代碼設(shè)計(jì):在這個(gè)步驟中,我們要進(jìn)行代碼的編寫。
5、調(diào)試:對(duì)程序中正在發(fā)生或可能發(fā)生的各種錯(cuò)誤進(jìn)行處理。
6、維護(hù):通俗地說(shuō),維護(hù)就是對(duì)程序進(jìn)行升級(jí),對(duì)原有錯(cuò)誤進(jìn)行修改。
對(duì)于以上幾個(gè)步驟,我想大多數(shù)人會(huì)認(rèn)為代碼設(shè)計(jì)最為重要,但如果程序的結(jié)構(gòu)尚未清楚,我們?cè)诰帉懘a的時(shí)候就會(huì)發(fā)生混亂,一個(gè)程序性能的好壞,主要還是取決于它的結(jié)構(gòu)是否合理。因此,在程序設(shè)計(jì)中,我們要盡可能注意這一點(diǎn),這樣才能使我們的程序更加完善。
設(shè)計(jì)環(huán)境
一個(gè)良好的編程環(huán)境可以使我們?cè)诰帉懗绦驎r(shí),不至于造成各種資源的紊亂,還可以避免資源的丟失。建議大家要在放源程序的目錄下建立“Programs”文件夾;然后再以你要編寫的程序名和版本為名建立一個(gè)文件夾,用于存放整個(gè)源程序以及各種資源;最后,分別建立幾個(gè)文件夾,“Documents”:用于存放程序文檔,包括流程圖等;“Resource”:用于存放圖片,聲音,影片等資源;“Debug”:用于存放調(diào)試的程序!癛elease”:用于存放最終釋放的程序。
例如:我們要制作一個(gè)英語(yǔ)學(xué)習(xí)軟件,名為“English”,版本為1.0,那么我們的編程環(huán)境中應(yīng)存在以下文件夾:
[DRIVE]:\…\Programs\English1\Debug\
[DRIVE]:\…\Programs\English1\Documents\
[DRIVE]:\…\Programs\English1\Resource\
[DRIVE]:\…\Programs\English1\Release\
另外,最好再建立一個(gè)專門的文件夾,用于存放各種模塊,以便能實(shí)現(xiàn)代碼的重用,這樣,我們就不用在每次寫程序時(shí),都重寫所有的模塊,編程速度會(huì)有很大的提高。
設(shè)計(jì)技巧
代碼如果寫得很亂,程序便不易被閱讀與修改,所以,在編寫代碼時(shí)要注意以下幾點(diǎn):
(1)注釋:寫注釋雖然要占用一定的時(shí)間,但在閱讀和修改代碼時(shí)卻會(huì)節(jié)省很多的時(shí)間。所以,建議大家在定義一個(gè)函數(shù)時(shí),在函數(shù)的第一行寫出函數(shù)的作用,再用一行解釋函數(shù)的參數(shù),并在每個(gè)變量的定義語(yǔ)句后注釋出其作用。
(2)變量和函數(shù)的命名:每個(gè)程序都會(huì)使用很多的變量和函數(shù),如果隨意命名變量與函數(shù),每次使用時(shí)還得在變量或函數(shù)的定義語(yǔ)句處查出它的數(shù)據(jù)類型及名稱,而且隨意命名還會(huì)造成變量與函數(shù)重復(fù)定義。
建議大家使用匈牙利命名法,方法是:每個(gè)變量或函數(shù)的開頭都以其數(shù)據(jù)類型的縮寫命名,然后再加上代表這個(gè)變量或函數(shù)的作用的英文單詞簡(jiǎn)寫共同組成變量或函數(shù)的名稱。例如:要定義用于計(jì)數(shù)的整型變量count,其定義語(yǔ)句為C\C++:int icount; Basic:Dim icount as Integer。以這種方法定義,不僅可以有效地避免變量與函數(shù)的混亂與重復(fù)定義,還可以保證數(shù)據(jù)類型的匹配。
(3)控件命名:如果在Windows下編程,你有可能會(huì)大量地使用控件,如果不對(duì)控件名嚴(yán)加管理,會(huì)造成很大程度的混亂,因此,建議在給控件命名時(shí),以控件類型縮寫再加上代表這個(gè)控件作用的英文單詞的簡(jiǎn)寫共同組成此控件的名稱。例如:你要命名一個(gè)按鈕控件,作用是進(jìn)行刪除操作,那么控件名可以命名為cmdDel。
并不是每個(gè)人都能成為頂級(jí)程序員,但我們都在程序員之路上不斷進(jìn)步,追求更完美、更專業(yè)化的程序。不妨好好改造一下你的程序,你會(huì)從中感受到很多好處。