易忽略的程序風格

字號:

良好的習慣對于人的成長是非常重要的,良好的編程習慣對于我們編程能力的提高也是非常重要的。我們編程時要有良好的風格,源程代碼的邏輯簡明清晰,易讀易懂是好程序的重要標準。
    其實編程的過程中最容易忽略的還是程序的“風格”。這些東東有時讓人挺煩的,剛剛放射出光茫的思想似乎被約束住了,本來是靈感發(fā)現(xiàn),還要在后面羅索上半天。
    程序需要風格嗎?讓我們的程序?qū)懙酶悠揭捉耍由鷦訉ξ覀兊木幊淌谴笥幸嫣幍?。對我們的程序?qū)W習也能起到事半功倍的作用。編程過程中遵守的不成文的標準,對于我們和他人的交流和自己的再學習都是有益無害的。畢竟有時我們寫的程序不是只給自己看的,也不是一時興起,不管以后。
    好的編碼可使源代碼的可讀性強且意義清楚,與其他語言約定相一致,并且盡可能直觀。我們自己一眼能看出個大概,在別人眼中也不至于成為千古奇書。下面以VB為例,對程序風格做一下全面的概述,希望對您的編程水平的提高有所幫助。
    --------------------------------------------------------
    一、程序內(nèi)部文檔應具備的規(guī)則
    1、標識符應含有含義鮮明的文字。
    含義鮮明的文字,能正確地提示程序?qū)ο笏淼膶嶓w。這對于幫助閱讀者理解程序是非常重要的。如果用縮寫的形式,那么縮寫規(guī)則應該一致,并且應該給每個名字加注解。在VB中,主要有如下的約定:
    (一)對象命名約定
    應該使用一致的前綴來命名對象,使人們?nèi)菀鬃R別對象的類型。例如我們常用控件CommandButton(命令按鈕)可用cmd做為其前綴。Form以frm,Image以 img ,Label以 lbl,List Box 以lst,PictureBox以 pic,Timer以 tmr,等等,在我們編程的過程中,我們看到下面的名稱cmdExit我們就知道這一定是一個命令按鈕了。如果是第三方提供的控件,我們的說明要清晰地標出制造商的名稱,以區(qū)別于我們的常用控件。
    (二)常量和變量命名約定
    除了控件以外,常量和變量也是我們編程過程中經(jīng)常遇到的,我們和他們打交道也是通過名字。
    (1)給變量加范圍前綴
    變量按其作用范圍可分做三類,過程級,模塊級和全局,所以我們在編程的過程中應將三者加以區(qū)別。我們在使用變量時,為了更好地體現(xiàn)代碼重用和可維護原則,其定義范圍應盡量縮小,這樣將使我們的應用程序更加容易理解和易于控制。在VB應用程序中,只有當沒有其他方便途徑在窗體間共享數(shù)據(jù)時才使用全局變量。當使用全局變量時,在一個單一模塊中聲明它們,并按功能分組,給模塊取一個有意義的名字。較好的編碼習慣是盡可能地定模塊化的代碼。除了全局變量,過程和函數(shù)應該僅對傳遞給它們的的對象操作。在過程中使用的全局變量應該在過程起始處的聲明部分標識出來。變量的作用范圍前綴如下:全局 g(global) ,模塊級 m(model),本地過程不需要使用。例如:gintFlag,表示全局整型變量,mstrPassword,可表示模塊級字符型變量。
    (2)聲明所有變量原則。聲明所有變量將會節(jié)省編程時間,鍵入錯誤將大大減少,我們可在程序開始寫上如下語句:
    Option Explicit
    該語句要求在程序中聲明所有變量。
    (3)變量數(shù)據(jù)類型聲明??赏ㄟ^下面的前綴來做為變量的數(shù)據(jù)類標志。
    Boolean bln
    Byte byt
    Double dbl
    Integer int
    String str
    (4)常量。常量的命名,可遵循與變量命名大體相同的原則。
    (5)對變量和過程名作出描述。變量或過程名的主體應該使用大小寫混合的形式,并且應該足夠長以描述它的作用。而且,函數(shù)名應以一個動詞開頭。如JudgeDialog。
    VB編程過程中,主要有如下約定。
    2、適當?shù)淖⒔?BR>    注解是程序員和程序讀者通信的重要手段,正確的注解非常有助于對程序的理解。VB中代碼注解約定如下:所有的過程和函數(shù)都應該以描述這段過程的功能的一段簡明的注釋開始,說明該程序是干什么的,至于是如何做的,也就是編程的細節(jié),不要包括。因為可能日后我們要修改程序,這樣做會帶來不必要的注釋維護工作,如果不修改,將提供誤導信息,可能成為錯誤的注釋。因為代碼本身和后面程序中的注釋將起到相應的說明作用。
    過程中的注釋塊應該包括如下標題:
    小節(jié) 描述內(nèi)容
    目的 該過程完成什么
    假設 列出每個外部變量、控件、打開文件或其他不明顯元素
    效果 列出每個被影響的外部變量、控件或文件及其作用(只有當它不明顯時)
    輸入 每一個可能不明顯的參數(shù)。
    返回 函數(shù)返回值的說明
    格式化代碼
    (1)標準的,基于制表位的嵌套應該包括一個嵌注釋,來描述該變量的使用。
    (2)變量、控件及過程的命名應該足夠清楚,使得只有復雜的執(zhí)行細節(jié)才需要嵌入注釋。
    (3).bas 模塊包含包含工程的VB一般常量聲明,在其起始處,應包括程序的綜述,列舉主要數(shù)據(jù)對象,過程、算法、對話、數(shù)據(jù)庫及系統(tǒng)需求。
    3、程序的視覺組織
    程序的視覺組織可用階梯式,結(jié)構(gòu)化的程序風格對于我們實際編程也很有意義,可極大地改善代碼的可讀性。主要有代碼注釋和一致性縮進。
    -------------------------------------------------------------------
    二、數(shù)據(jù)說明
    數(shù)據(jù)結(jié)構(gòu)的組織和復雜程序是在設計期間就已經(jīng)確定了的,然而數(shù)據(jù)說明的風格卻是在寫程序時確定的。為了使數(shù)據(jù)更容易理解和維護,有一些比較簡單的原則應該遵循。
    1、數(shù)據(jù)說明的次序應該標準化。有次序就容易查閱。因此能夠加速測試、調(diào)試和維護的過程。當多個變量名在一個語句中說明時,應按字母順序排列這些變量。
    2、數(shù)據(jù)結(jié)構(gòu)復雜時,應加以說明其特點和實現(xiàn)方法。