代 碼 設 計 規 范
一、注釋規范
1、自建代碼文件注釋
對於自己創建的代碼文件(如函數、腳本),在文件開頭,一般編寫如下注釋:
/*************************************************
作者:
說明:
創建日期:
版本號:
**********************************************/
2、標准注釋
在模塊、類、屬性、方法前一行添加注釋,以便調用的時候提示用戶,下以方法聲明做例子:
///<summary>
///<對該方法的說明>
///</summary>
///<paramname="<參數名稱>"><參數說明></param>
///<returns>
///<對方法返回值的說明,該說明必須明確說明返回的值代表什麼含義>
///</returns>
3、代碼中的注釋
代碼間注釋分為單行注釋和多行注釋:
單行注釋:
//<單行注釋>
多行注釋:
/*多行注釋1
多行注釋2
多行注釋3*/
代碼中遇到語句塊時必須添加注釋(if,for,foreach,……),添加的注釋必須能夠說明此語句塊的作用和實現手段(所用算法、循環條件、不同分支的意義等等)。
二、異常處理
1、數據層及服務層異常必須要記錄到服務日志中
try
{ }
catch (DbEntityValidationException ex)
{ throw new SerivceException ("");}
catch (SerivceException ex)
{throw ex; }
catch (Exception ex)
{throw new SerivceException (""); }
2、業務層及客戶端異常要記錄在文件中
原則異常msg描述清楚所發生錯誤原因、關鍵必要的參數,已便於客戶端使用者、測試人員及相關研發人員明白錯誤原由。
三、Web頁面
1、出現超出半屏幕的html標簽時需要加注釋 例:<!-- BEGIN 描述 --> <body></body> <!-- End 描述 -->
2、Js命名規則
函數: fn 例: fnMethod
事件: on例: eventBeforeSave
3、單行的 IF - ELSE,WHILE 或者 FOR 語句也 必須 加入括號,不過他們可以這樣寫:
if (condition){ statement; }
while (condition){ statement; }
for (intialization; condition; update){ statement; }
4、
foreach(var item in list){
foreach(var item1 in list){
foreach(var item2 in list){
}
}
}
三、命名規范
1、程序集命名、命名空間、類(全部為中文名)
1)程序集:項目域名+項目名稱+模塊名 例:六月版.供應商.業務層
2)命名空間:六月版.供應商.業務層.單據管理 (業務邏輯後綴'管理')
3)類名:訂單
2、方法命名
1)業務層、服務方法命名
以混合命名法為主,常用動詞單詞+中文詞描述+'_'+精確描述
Get*** //'獲取***'
Create*** //'創建***'
Update*** //'更新***'
Del*** //'刪除***'
Save*** //'創建或修改***'
Fill*** //'填充***' 多用於業務邏輯處理
Add*** //'添加***' 多用於業務邏輯處理
Remove*** //'移除***' 多用於業務邏輯處理
例:public VM.訂單 Get訂單信息(string 訂單編號)
public void Update訂單狀態_已出庫(string 訂單編號, string 操作人)
對於獲取多條記錄的方法名要加以 '集'結尾
例:public List<VM.訂單> Get訂單信息集(string 關鍵字)
3) 方法參數全部為中文名,Mvc Controllers方法參數(全英文)//開頭字母小寫
4) MVC 分布視圖 _開頭加開頭大寫單詞
3、變量命名
命名空間引用縮寫
業務層: 例:using BS供應商=六月版.供應商.業務層 ;
數據層: 例:using DAO供應商=六月版.供應商.數據層 ;
服務層: 例:using Server供應商=六月版.供應商.服務 ;
視圖模型: 例:using VM供應商=六月版.供應商. 視圖模型
公共類庫: 例:using Comm= DotNet.Common;
變量命名以混合命名法為主
Sbyte: sbte
Char: chr
Short: sht
Object: obj
Int: int
String: str
Long: lng
DateTime: dte
Byte: bte
IntPtr: intptr
Ushot: usht
臨時變量: tmp
Uint: uint
Guid: g
Ulong: ulng
(s、dao)實體模型: model
Float: flt
類的私有變量: m
Double: dbl
靜態變量: st
Decimal: dcl
常量: const
Bool: is
全局: p
StringBulider: sb
List:lst
Array: arr
枚舉: e
數組: a
對象來自視圖:vm
總體原則以中文表示所要表示的內容,以變量類型做為前綴。變量類型做為前綴是為了索引方便,使用中文名是為了意義容易理解。
注:方法的參數變量命名不使用以上規則,返回值變量使用以上規則
Html命名規則
命名
說明
標准命名舉例
doc
Document
wnd
Window
frm
Form
btn
input type=button
ckb
input type=checkbox
file
input type=file
hid
input type=hidden
img
input type=image|img
pwd
input type=password
rdb
input type=radio
rst
input type=rest
smt
input type=submit
txt
input type=text
sel
select
tar
textarea
Table
tbl
常用命名規則
登錄條:loginBar
加入:joinus
主導航:mainNav
標志:logo
指南:guild
頂導航:topnav
側欄:sidebar
服務:service
邊導航:sidebar
廣告:banner
熱點:hot
左導航:leftsideBar
導航:nav
新聞:news
右導航:rightsideBar
子導航:subNav
下載:download
標語:banner
菜單:menu
注冊:register
菜單內容1:menu1Content
子菜單:subMenu
狀態:status
菜單容量:menuContainer
搜索:search
按鈕:btn
子菜單:submenu
滾動:scroll
投票:vote
邊導航圖標:sidebarIcon
頁面主體:main
合作伙伴:partner
注釋:note
內容:content
版權:copyright
容器:container
標簽頁:tab
外套:wrap
登陸:login
文章列表:list
主導航:mainNav
購物車:shop
提示信息:msg
子導航:subnav
當前的curren
小技巧:tips
商標:label
頁腳:footer
整個頁面:content
友情鏈接:friendLink
頁眉:header
標題:title
1提高編碼質量,代碼可讀性和可維護性。
2代碼編寫規范
2.1 刪除所有無用代碼
2.2 必須給代碼添加注釋,一個類的注釋字數不得小於代碼的百分之20%
2.3 建議遵循30秒原則。如果另一個程序員無法在三十秒內無法知道你的函數在做什麼,如何做以及為什麼要這樣做,那麼說明你的代碼是難於維護的,需要得到提高。
2.4 一個函數的代碼長度不允許超過100行,超過一百行的函數建議在不破壞原子性的基礎上進行拆分。
2.5 變量都應在方法或者類的頭部集中定義
2.6 保證一行代碼只做一件事
2.7 使用括號來控制操作符的運算順序,以免使用java默認的操作符優先級順序。
2.8 代碼格式化:對代碼進行格式化,再進行提交。
2.9 接口不允許沒有方法或者變量的聲明
3. 命名規范
3.1 各種標識符的命名要使用有實際意義的英文單詞或者英文單詞縮寫,縮寫詞及英文單詞要收錄在項目的簡寫詞匯表中。切忌使用阿拉伯數字和拼音進行命名。
3.2 類名:首字母大寫,每個單詞首字母都需要大寫。
3.3 方法名:首字母小寫,其余單詞首字母都需大寫。
3.4 全局變量,和常量名稱要求全部字母大寫。
3.5 參數名稱與局部變量基本相同,區別在於參數名稱需要加上冠詞a ,an 或者在單詞結尾以s結束。
4. 注釋規范
4.1 注釋需要注意的事項:
★注釋應該用中文清晰表達意思,應該是程序看起來更清晰,更容易理解
★注釋要盡量簡明,避免裝飾性的注釋。
★注釋不但要說明做什麼,還應當說明為什麼要這樣做。最好先寫注釋表明要做什麼,再進行編碼。
4.2 類的注釋
★類的用途,目的。包括其他人感興趣的介紹。
★已知bug,當然最好是修改好所有的錯誤,但有時可能暫時沒有辦法修改,或者沒有時間修改。
★開發和維護該類的歷史列表,記錄每一次修改的作者,日期,修改的內容。
★列舉類的各種穩定狀態,說明調用成員函數使類的狀態產生的變遷(可選)。
★同步問題(可選)
★對主要的算法必須加以說明,主要流程必須給予引導性說明
標准格式:
如果對已經版本話的類進行了修改,需要按照如下格式為每一次修改附加修改歷史記錄:
// 修改人 + 修改日期
// 修改說明 范例:
// 李四 2010/07/02
// 添加錯誤數據修改後繼續批量保存的處理函數 saveBatch(
@Bind(key = "itemParams", defaultValue = "") String itemParams,
@Bind(key = "pid", defaultValue = "") String pid)。
// 王小二 2010/07/02
4.3 接口注釋:
★接口的注釋風格基本與類的注釋風格相同;
★在別人使用接口之前,必須了解接口所包含的概念。檢驗一個接口是否應該定義的簡單方法是:你是否能★夠容易的描述接口的用途;
★接口如何應當和不應當被使用。開發者需要知道該接口如何被使用,也希望知道該接口不能被怎樣使用。
4.4 函數的注釋
★函數頭注釋必須包括:函數執行了什麼功能,為什麼要這樣處理;函數處理過程中對對象的哪些屬性
★可能進行更改;函數執......余下全文>>
新實施的是2010版本,50010是一個編號,指的就是“混凝土結構設計規范”這個標准。每本標准都會有一個編號的,2010是指這個標准的發行年份。標准編號:GB