• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    我總結的一些軟件開發規范

    發布: 2008-5-04 12:31 | 作者: 網絡轉載 | 來源: 中程在線 | 查看: 114次 | 進入軟件測試論壇討論

    領測軟件測試網 為了提高軟件開發質量,降低開發周期,增強代碼的可重用性和易讀性,使軟件便于維護,開發人員間便于交流和協作,特總結出開發規范,以為參考。

    一. 原則:

    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。

    代碼的重用要仔細,要將相關的代碼也拷貝過來,注意那段代碼也許不適合你的應用場合。

    刪掉從來沒有用過的函數或變量,大篇幅注釋掉的代碼行也應刪除,以免使程序混亂難讀。

    3. 工程文件組織規范
    一個工程往往包含很多很多文件(*.h,*.cpp,*.inc,*.lib,資源文件等),向工程中加入文件或刪除工程中的文件要慎重,避免把工程損壞。工程中不起作用的文件或類應刪除,工程目錄下的非工程文件也應該移走,保持工程的清潔,避免混淆難于管理。工程文件如果很多,應歸類。

    在VC環境下,建議將常用的頭文件全部放入stdafx.h中,而在每個cpp開始處嵌入stdafx.h。避免頭文件的交叉引用,如果有嚴重的交叉引用,適當使用類的聲明。

    將獨立性比較強的模塊抽出來,做成DLL,控件或COM組件,該模塊可單獨編寫和測試,也增強了其可重用性。

    一個比較大的工程應留有一定的消息接口或插件接口等。

    工程的版本控制要嚴格,版本格式為xx.xx.xx,必要時使用Build次數或日期。高版本盡量兼容低版本的用法、數據或協議。

    工程的編譯宏定義和工程參數設置應正確,每作一個新工程時應檢查工程參數是否正確。
    建議字節對齊方式為1字節對齊。

    工程文件應經常備份,備份時注明備份日期和主要增加的功能。

    4. 類組織規范
    類一般有兩個文件,一個頭文件,一個實現體CPP。

    類力求封裝好,嚴格區分public,private,protect等作用域,如果一個函數與本類有莫大的關系,可以作為該類的靜態成員函數,不用或少用友元函數等破壞類封裝性的方法和技巧。 如果一些結構或宏僅與本類有關,可在類頭文件中定義。

    類的成員變量在構造函數或初始化函數中應賦初值。指針在構造函數中賦NULL,析構時DEL_EMPTY它,以免內存泄露。

    5. 用戶界面規范
    有四大類型的用戶界面:對話框、單文檔界面、多文檔界面、其它界面

    對話框要易用且簡潔,字體和控件的組織搭配要得體,能簡單不復雜,各控件的焦點、Tab順序等要講究,視應用場合要適當支持鍵盤。在簡潔易用的前提下,力求個性化,設計得更加友好。程序各對話框的風格要保持一致。

    單文檔和多文檔界面的程序功能可以做得很強,也便于擴充和管理。其中菜單、工具欄、狀態欄等設計要有特色。菜單按一定的分類彈出,必要時設計成多套菜單,在重要的窗口或區域應能彈出右鍵,實現常見操作。工具欄上放最常用的操作按鈕,必要時動態更換按鈕。狀態欄顯示足夠多的有用信息。
    消息主控在Mainframe中,單文檔的主控也可在View中,所有的對話框的彈出或非模態對話框的控制都在主控窗口中完成,具體的數據處理放在單獨的文件中或設計成類。在App類中實現Ini讀寫,各數據對象的定義和析構,全局變量的賦值和初始計算,存盤退出等。各視圖的OnDraw和GDI畫圖盡量使用內存位圖的方式,以免閃爍。

    其它還有ATL,控制臺,嵌入式程序界面等,也有作為其它容器如IE中的插件等,此類程序可能不用MFC,而采用COM組件等方法實現。

    6. 疑難解答和Bug調試方法
    勤問、善于問。在不打擾正常工作的前提下,開發人員間應相互幫助,聚思廣益,也許你的問題或Bug就是他人的前車之鑒。

    從各種途徑請求解答。專業書、教材、期刊、電子文檔以及國際標準文獻、RFC等,Internet上專業網站、論壇、專家組等。

    Bug的出現總是有一定的原因的,冷靜查找,不要總是拘泥于某一個小局部,換一個想法、從另外一個角度也許讓你柳暗花明。使用一些輔助開發或調試工具,如Spy++,Process Viewer,系統監視器等。

    拓寬知識面。多參閱其它編程語言、數據庫知識、編譯原理、網絡協議等,熟悉硬件設備、底層匯編、數字邏輯電路等。使用和揣摩其它軟件功能和界面,集百家之長,做出有創新意義和有特色的功能性軟件。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 規范 開發

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>