專案程式碼風格要求

weixin_34377065發表於2013-10-22

來源:http://www.cnblogs.com/shangxia/p/3165672.html

1. C# 程式碼風格要求

1.1註釋

型別、屬性、事件、方法、方法引數,根據需要新增註釋。

如果型別、屬性、事件、方法、方法引數的名稱已經是自解釋了,則不需要加註釋;否則必須新增註釋。

當新增註釋時,新增方式如下圖所示:

1.2 型別(類、結構、委託、介面)、欄位、屬性、方法、事件的命名

優先考慮英文,如果英文沒有合適的單詞描述,可以使用拼音,使用中文是不符合要求的。

唯一可以使用中文的地方是列舉的列舉項,列舉項實際已經不屬於本節標題的範疇了。這裡只是放到一起說明,如下圖所示:

1.3 不使用縮寫

所有型別、方法、引數、變數的命名不得使用縮寫,包括大家熟知的縮寫,例如msg。

1.4 程式碼使用半展開

第一步,開啟Visual Studio,進入“工具”,“選項...”,如下圖所示:

第二步,進入“文字編輯器”,“C#”,“格式設定”,“新行”,取消掉右側所有核取方塊中的對號,如下圖所示:

第三步,點選“確定”,完成設定。

1.5 使用Tab作為縮排,並設定縮排大小為4

第一步,開啟Visual Studio,進入“工具”,“選項...”,如下圖所示:

第二步,進入“文字編輯器”,“C#”,“製表符”,如下圖所示,設定製表符。

第三步,點選“確定”,完成設定。

1.6 一個.cs原始檔至多定義兩個型別

如果兩個型別的關係是緊密相關的,比如 產品、產品型別,此時Product類,和ProductType列舉可以定義在同一個Product.cs檔案中。

但不能在一個.cs檔案中出現兩個不相關的型別定義,例如將 Product類和Reseller類(分銷商)定義在一個BasicInfo.cs檔案中。

1.7 型別名稱和原始檔名稱必須一致

當型別命名為Product時,其原始檔命名只能是Product.cs。

1.8 所有名稱空間、型別名稱使用Pascal風格(單詞首字母大寫)

如下圖所示,紅色標記的為使用Pascal風格的型別:

注意ProductType是私有型別,不管型別是公有的還是私有的,其命名總是採用Pascal風格。

1.9 本地變數、方法引數名稱使用Camel風格(首字母小寫,其後每個單詞的首字母大寫)

紅色標記的為使用Camel風格的變數或者方法引數:

1.10 私有方法、受保護方法,仍使用Pascal風格命名

示例程式碼如下:

1.11 如果if語句內容只有一行,可以不加花括號,但是必須和if語句位於同一行

範例1.9 中的if判斷實際上與下面的語句是等效的:

1.12 呼叫型別內部其他成員,需加this;呼叫父類成員,需加base

示例程式碼如下:

1.13 型別內部的私有和受保護欄位,使用Camel風格命名,但加“_”字首

程式碼示例如下:

1.14 不能出現公有欄位

如果需要公有欄位,使用屬性進行包裝。

1.15 型別成員的排列順序

型別成員的排列順序自上而下依次為:

欄位:私有欄位、受保護欄位

屬性:私有屬性、受保護屬性、公有屬性

事件:私有事件、受保護事件、公有事件

建構函式:引數數量最多的建構函式,引數數量中等的建構函式,引數數量最少的建構函式

方法:過載方法的排列順序與建構函式相同,從引數數量最多往下至引數最少。

1.16 委託和事件的命名

委託以EventHandler作為字尾命名,例如 SalesOutEventHandler。

事件以其對應的委託型別,去掉EventHandler字尾,並加上On字首構成。

例如,對於SalesOutEventHandler委託型別的事件,其事件名稱為:OnSalesOut。

示例程式碼如下:

1.17 返回bool型別的方法、屬性的命名

如果方法返回的型別為bool型別,則其字首為Is、Can或者 Try,例如:

1.18 常見集合型別字尾命名

凡符合下表所列的集合型別,應新增相應的字尾。

說明 字尾 示例
陣列 Array int[] productArray
列表 List List<Product> productList
DataTable/HashTable Table HashTable productTable
字典 Dictionary Dictionay<string,string> productDictionary
EF中的DbSet /DataSet Set DbSet<Product> productSet

1.19 常見字尾命名

凡符合下表所列的區域性變數、方法引數、欄位、屬性,均需新增相應的字尾。

說明 字尾 示例 示例說明
費用相關 Cost ShipCost 運輸費
價格相關 Price ProductUnitPrice 產品單價
訊息相關 Message(棄用Note) SuccessMessage 成功訊息
日期相關 Date(棄用Time) OrderDate 下單日期
計數、數量相關 Count(棄用Time) LoginCount 登入次數
連結地址相關 Url BlogUrl 部落格連結
圖片相關 Image SignImage 簽名圖片
金額相關 Amount PrepaidAmount 預付款
點數、積分相關 Point MemberPoint 會員積分
記錄、日誌相關 Record(棄用Log) ErrorRecord 錯誤記錄
配置相關 Config DataBaseConfig 資料庫配置
狀態相關 Status OrderStatus 訂單狀態
模式、方式相關 Mode OpenMode 開啟方式
種類相關 Category / Type 二選一 UserCategory 使用者種類
工廠類相關 Factory ConnectionFactory 連線工廠
啟用相關 Enabled ExportEnabled 開啟匯出
流相關 Stream UploadStream 上傳流
讀取器相關 Reader ExcelReader Excel讀取器
寫入器相關 Writer ExcelWriter Excel寫入器
介面卡相關 Adapter IntroOPAdapter IntroOP介面卡
提供器相關 Provider MemebershipProvider 會員資訊提供器
包裝器相關 Wrapper ProductWrapper Product包裝器
連線相關 Connection ExcelConnection Excel連線

1.20 常見型別命名

凡存在下表中的型別,需採用下表指定的名稱命名。

型別 命名 型別 命名
客戶 Customer 分銷商 Reseller
零售商 Retailer 經銷商/批發商 Dealer
使用者 UserInfo(User為資料庫關鍵字) 訂單 OrderInfo(Order為資料庫關鍵字)
供應商 Supplier 管理員 Admin
密碼 Password 會員 Member
評論 Remark(棄用Comment) 文章 Article
新聞 News 發票 Invoice
匯入 Import 匯出 Export
公司、企業 Company(棄用Enterprise) 產品 Product
省份 Province 城市 City
區縣 District 地址 Address
角色 Role(棄用Group) 許可權 Authority(棄用Permission)
倉庫 Warehouse 工廠 Plant
登入 Login(棄用SignIn) 登出 LogOut(棄用SignOut)
建立 Create(棄用Add) 編輯 Edit
更新 Update 刪除 Remove(棄用Delete)
照片 Photo 圖片 Image

1.21 常見欄位、屬性命名

欄位、屬性種類比較繁雜,因此僅列出最常用的幾項。

型別 名稱 型別 名稱
Id(int型) Id(“d”小寫,棄用ID) GuidId(Guid型) Id
Name 名稱 Title 標題
Remark 備註、描述(棄用Memo、Description) Category 種類(棄用Class、Type)
Linkman 聯絡人    

2. XHTML 程式碼風格要求

2.1 如果XHTML標記有層次,那麼程式碼也要有層次

下面是書寫符合要求的例子:

下面是書寫 不符合要求 的例子:

2.2 所有標記必須閉合

示例程式碼如下:

2.3 如果標記中間程式碼超過20行,則應在標記末尾加註標識

標註方式如下:

3. CSS 程式碼風格要求

3.1 程式碼使用半展開

設定方法參考1.4節。

3.2 使用Tab作為縮排,並設定縮排大小為4

設定方法參考1.5節。

3.3 程式碼註釋

註釋主要說明該樣式應用於頁面的哪個部分,而非說明樣式的應用效果,程式碼註釋風格如下所示:

3.4 程式碼編寫

每一個樣式設定必須獨佔一行,不能位於同一行,下面是符合要求的寫法:

下面是 不符合要求 的寫法:

3.5 嵌入式樣式的比例不超過樣式表程式碼總量的10%

嵌入式樣式為直接寫在HTML標記內部的樣式,如下圖所示:

3.6 內聯式樣式的比例不超過樣式表程式碼總量的30%

內聯式樣式為寫在<head></head>中的樣式,如下圖所示:

內聯式樣式,不能 寫在<body></body>之間。

3.7 外聯式樣式表的比例不少於樣式表程式碼總量的60%

外聯式樣式表為寫在.css檔案中的樣式,通過link引入到XHTML頁面中,如下圖所示:

4. JavaScript 程式碼風格要求

4.1 程式碼使用半展開

設定方法參考1.4節。

4.2 使用Tab作為縮排,並設定縮排大小為4

設定方法參考1.5節。

4.3 程式碼註釋

程式碼註釋需要說明“函式功能”、“入口引數”、“返回值”,註釋範例如下:

其中第一行說明函式功能;第二行說明入口引數;最後一行說明返回值

4.4 不得出現內嵌式程式碼

內嵌式程式碼是指寫在XHTML標記中的JavaScript程式碼,下面的寫法是 不符合要求 的:

4.5 內聯式程式碼佔JavaScript的總量不得超過40%

內聯式程式碼是指寫在<head />或者<body />之間的程式碼:

4.6 外聯式程式碼佔JavaScript的總量至少為60%

外聯式程式碼指寫在單獨的.js檔案中,然後通過script標記連線到XHTML頁面中的程式碼。

相關文章