2.1 程序設(shè)計(jì)風(fēng)格
程序設(shè)計(jì)的風(fēng)格主要強(qiáng)調(diào):“清晰第一,效率第二”(注釋1)。主要應(yīng)注重和考慮下述一些因素:
(1)源程序文檔化。
1)符號(hào)名的命名。符號(hào)名能反映它所代表的實(shí)際東西,應(yīng)有一定的實(shí)際含義。
2)程序的注釋。分為序言性注釋和功能性注釋。
序言性注釋?zhuān)何挥诔绦蜷_(kāi)頭部分,包括程序標(biāo)題、程序功能說(shuō)明、主要算法、接口說(shuō)明、程序位置、開(kāi)發(fā)簡(jiǎn)歷、程序設(shè)計(jì)者、復(fù)審者、復(fù)審日期及修改日期等。
功能性注釋?zhuān)呵对谠闯绦蝮w之中,用于描述其后的語(yǔ)句或程序的主要功能。
3)視覺(jué)組織。利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?BR> (2)數(shù)據(jù)說(shuō)明。
1)數(shù)據(jù)說(shuō)明的次序規(guī)范化;
2)說(shuō)明語(yǔ)句中變量安排有序化;
3)使用注釋來(lái)說(shuō)明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。
(3)語(yǔ)句的結(jié)構(gòu)。
1)在一行內(nèi)只寫(xiě)一條語(yǔ)句;
2)程序編寫(xiě)應(yīng)優(yōu)先考慮清晰性;
3)程序編寫(xiě)要做到清晰第一,效率第二;
4)在保證程序正確的基礎(chǔ)上再要求提高效率;
5)避免使用臨時(shí)變量而使程序的可讀性下降;
6)避免不必要的轉(zhuǎn)移;
7)盡量使用庫(kù)函數(shù);
8)避免采用復(fù)雜的條件語(yǔ)句;
9)盡量減少使用“否定”條件語(yǔ)句;
10)數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡(jiǎn)化;
11)要模塊化,使模塊功能盡可能單一化;
12)利用信息隱蔽(注釋2),
確保每一個(gè)模塊的獨(dú)立性;
13)從數(shù)據(jù)出發(fā)去構(gòu)造程序;
14)不要修補(bǔ)不好的程序,要重新編寫(xiě)。
(4)輸入和輸出。
1)對(duì)輸入數(shù)據(jù)檢驗(yàn)數(shù)據(jù)的合法性;
2)檢查輸入項(xiàng)的各種重要組合的合法性;
3)輸入格式要簡(jiǎn)單,使得輸入的步驟和操作盡可能簡(jiǎn)單;
4)輸入數(shù)據(jù)時(shí),應(yīng)允許使用自由格式;
5)應(yīng)允許缺省值;
6)輸入一批數(shù)據(jù)時(shí),使用輸入結(jié)束標(biāo)志;
7)在以交互式輸入/輸出方式進(jìn)行輸入時(shí),要在屏幕上使用提示符明確提示輸入的請(qǐng)求,同時(shí)在數(shù)據(jù)輸入過(guò)程中和輸入結(jié)束時(shí),應(yīng)在屏幕上給出狀態(tài)信息;
8)當(dāng)程序設(shè)計(jì)語(yǔ)言對(duì)輸入格式有嚴(yán)格要求時(shí),應(yīng)保持輸入格式與輸入語(yǔ)句的一致性;給所有的輸出加注釋?zhuān)⒃O(shè)計(jì)輸出報(bào)表格式。
注釋1:“清晰第一,效率第二” 是當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。
注釋2:信息隱蔽是指采用封裝技術(shù),將程序模塊的實(shí)施細(xì)節(jié)隱藏起來(lái),使模塊接口盡量簡(jiǎn)單。即指在設(shè)計(jì)和確定模塊時(shí),使得一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其它模塊來(lái)說(shuō),是不能訪(fǎng)問(wèn)的。

