為了提高軟件開發質量,降低開發周期,增強代碼的可重用性和易讀性,使軟件便于維護,開發人員間便于交流和協作,特總結出開發規范,以為參考。
一. 原則:
1. 軟件工程化
2. 模塊化
3. 能簡單不復雜
4. 強調團隊協作
5. 強調創新和特色
二. 具體規范:
1. 命名規范
命名應盡量使用匈牙利命名法,變量名或函數名中使用大寫字符來區分各個部分,以便于記憶和閱讀。如bPatchMinute, DeleteDirInfo()。全局(包括類中的)變量用長名字,局部變量用短名字。
類成員變量前一般應加上m_,全局變量加上g_,僅與本模塊有關的變量加上l_,緊接著是變量的類型。
整型: n,i
長整型: l
無符號整型: u
無符號長整型:dw
字符: ch
布爾量: b
浮點數: f
雙精度浮點: d
字符串: str,lpsz,sz,p,lp,ac,
指針: p
字節指針: pb
無符號指針: pv
字符指針: lpsz
整型指針: lpn
文件指針: fp
如:
m_nTotalNum,m_strPath,m_bRcving,m_fPrice,g_lOpenDate,g_dwCardNo,lpszNameStr,
lpnSysDoomType,uMsgID,m_pProgress
局部變量應盡量易懂簡潔,使用常見的變量,如
Num,nCount,i,j,k,n,len,pos, offset,nReadNum,index,nRet,ret, string,filename
臨時變量,如ltmp,ftmp,tmpStr,tempStr,
函數命名也應該見名知意。如CalcAllDataStyle(),ReadDocDataFromTime(),GetIndexInfo()
常見的函數
Init, OpenAll, Create_, Get_, Set_, Read_, Load_, Write_, Start_, Stop_,
Check_, Test_, Fill_, Process_, Sort_, Do_, Select_, Is_, Exist_,_Ex。
宏命名和typedef定義類型應詳細,避免重復,一律為大寫,如
#define DEL_EMPTY(a) {if (a) {delete a;a=NULL;}}
#define SUCCESS 0
#define FAIL -1
typedef struct
{
char lpzSource[100];
char lpzTitle[100];
char lpzURL[194];
short nType;
long npos;
long nlen;
}ATTBODY,*LPATTBODY; (指針前加LP)
自定義消息從WM_USER開始
#define MYAPP_MESSAGE WM_USER+0x1001
2. 代碼規范
有些不易理解的變量或函數應作注釋,難懂的代碼要有注解,在文件的開始處有該文件的用途描述。一定要保持注釋的一致性。
代碼組織要清晰,{,},(,),if,else,do,while,for,case等要對應整齊,少用空格,縮進全部用Tab鍵。變量的定義要集中,函數間要有空行分開,一個程序中的空行數目最好占8%-16%。多態函數和功能相近的函數集中放在一起。
代碼應該簡潔、清楚并講述了所發生的一切,我們的目標應該是寫出最清晰的代碼,而不是最巧妙的代碼。例如如果是MFC多文檔程序,就要嚴格按照其生成的框架寫代碼。盡量使用編譯器已經提供的函數,不必花時間另行編寫。例如系統已經有qsort函數,可直接拿來排序用。
某些公用代碼要注意多平臺易移植,最好使用標準C。
代碼的重用要仔細,要將相關的代碼也拷貝過來,注意那段代碼也許不適合你的應用場合。
刪掉從來沒有用過的函數或變量,大篇幅注釋掉的代碼行也應刪除,以免使程序混亂難讀。
文章來源于領測軟件測試網 http://www.kjueaiud.com/