.net下分層架構系統的開發技術規範(1) (轉)

themoney發表於2007-10-05
.net下分層架構系統的開發技術規範(1) (轉)[@more@]

do.NET專案組編碼規範

Bill_Fang

2004-3-15

要開發出專業化的軟體產品,在編碼階段,必須嚴格貫徹一定的程式碼開發準則,這會減少程式的隱含錯誤,同時使程式的內部結構清晰。從而開發出少錯誤、易維護的優質程式,使得程式的團隊合作性和專業化程度大為提高。這是軟體開發中公認的一個準則,也是軟體工程在編碼階段的一個具體的應用。

一. 程式程式碼的註釋

1. 儲存過程的頭部註釋

每一個儲存過程都要寫註釋,寫在最前面。如

/*

Author: Bill

Create Time: 2003-06-16 17:04

Last Modify Time: 2003-06-16 17:13

Version: 1.0.01

Action describe:

Memo:

*/

2. 儲存過程的程式碼內部註釋

儲存過程的內部需要視情況新增註釋,簡單說明其功能、設計思想、演算法等等。如:

/* SET NOCOUNT ON */

3. CS檔案的頭部註釋

每一個.CS檔案都要寫註釋,寫在CS檔案的最前面。如

/*

File Name(檔名): ClientServiceS.cs

Storage Path(儲存路徑): Capitalnet_MISEntityDAO

Author(作者): Bill

Create Time(建立日期及時間): 2003-06-16 17:04

Last Modify Time(最後修改日期及時間): 2003-06-16 17:13

File Version(本檔案版本號):X.X.XXX 1.0.01

File Action describe(檔案功能描述): 客戶服務實體訪問層

File Memo(備註):

*/

4. 類的註釋

為你定義的類寫詳細的註釋,包括作者、時間、版本修訂資訊、基本的演算法,如:

///

/// 類的簡單描述

///

5. 類成員的註釋

每一個類的成員,如變數、屬性等都要加相應的註釋。

6. 方法的註釋

為你定義的每一個函式寫詳細的註釋,包括輸入輸出引數說明、返回值說明、函式功能說明:

///

/// 取得本帳期的帳單

///

/// 合同Guid

/// 本帳期日期

/// 帳單列表

public static ContractPaidListData CalculateThisPaid(string contractGuid,DateTime date)

{ }

7. 程式碼內部的註釋

關鍵程式碼必須加註釋,簡單說明其功能、設計思想、演算法等等。長條註釋(劃分功能模組)、短條註釋(說明實現的各步驟)與句後解釋(說明重要句的意義)相結合,清晰功能的實現層次。如:

// Draw the string as normal and let then transforms do the work

/*

This is a test

*/

1) 一般來講,按需要來註釋,簡明扼要。

2) 修改程式碼的註釋,當有第二人開始修改程式碼時,應在每一次修改的程式碼部分加以註釋,必須包括修改人,修改時間,還可以包括修改目的等。

8. 其他要點

1) 對上述較長者在範圍結束處加註釋。如//for 迴圈結束 。

2) 註釋必須簡明扼要,規範易懂。

二. 物件的可訪問性設計

1) 不要隨意定義類的public,這在基於元件的開發中相當重要。

2) 只有被其他類引用的函式才定義成public型函式。

3) 類中最好不用public型成員變數(一般使用屬性來代替)。

4) 最好不使用全域性變數。可以使用一些代替的方法。

三. 物件的命名規範

1. 命名要求

1) 所有命名(類、函式、變數..)均要求意義明確易於理解。

2) 避免在程式碼中直接使用數字等不確定意義的詞,儘量使用有意義的串值代替。

例子:Protected Const string CAPTION_TITLE= "Bind Data to a ComboBox"

3) 在名字上區分各種變數及函式。

2. 命名約定

1) 常量命名規則。一般用大寫具有意義的複合單詞來定義。

protected Const string CAPTION_TITLE= "Bind Data to a ComboBox"

2) 欄位(變數),開頭將一小寫字母開頭,後面的具有意義的英語單詞開始於大寫。

public string strName等

3) 屬性,一般用大寫字母開頭,要具有一定的意義。

Name;

4) 類名, 以大寫字母開頭的有意義的複合英語單詞。對類名的定義還要考慮到該類的意義。

比如我們在專案中分了商務規則層、資料層、商務介面層、資料訪問層等。我在下面給出一個Agent表在各層中進行處理的時候相關的類的命名:

AgentData--àAgentS--àAgentR--àAgentF(分別是:資料實體、資料訪問層、商務規則層、商務介面層的命名)

5) 控制元件的命名規則,控制元件的命名可以以控制元件的縮寫開頭(小寫),配以一定意義的英文單詞;儘量讓縮寫可以理解。遇到新的控制元件可以大家討論來制定。

比如:

Button:btnUpate

DropDownList: ddlstCity

Label: lblName

DataGrid : grdAgent

DataList : dlstAgent

TextBox : txtName

(等等)

6) 檔名字的命名,以大寫字母開頭。DataAccess.cs

四. 資料表的定義和功能描述

1) 基礎表的定義

基礎表是指與業務無直接關係,僅為業務實現提供基礎資料的資料庫表。這類表有國家(Country)、貨幣(Currency)、單位(Company)、聯絡人(Contact)、產品(Product)、銀行(Bank)等等。

2) 基礎表提供的維護功能

對這些基礎表要提供新增、修改、刪除、檢視等等維護功能。在這些功能中,檢視功能是很重要的,要給出多個條件的檢視功能的方法,以便別的功能模組的檢視和引用的需要。

3) 業務表的定義

業務表則是指與業務直接相關,用以儲存各項業務資料、實現各項業務功能的資料庫表,這類表有合同(Contract)、專案(Project)、機會(Opportunity)、合同費用(ContractPaidList)等等。

4) 業務表提供的維護功能

對這些業務表要提供新增、修改、刪除、檢視等等維護功能。因為這些資料與業務息息相關,故要能給出多種查詢的方法。這些業務會涉及到大量的業務邏輯,故需使用業務邏輯層對業務表中的資料進行處理。

(未完待續)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10794571/viewspace-974801/,如需轉載,請註明出處,否則將追究法律責任。

相關文章