命名採起駝峯式,例如:AccountName,「A」和「N」大寫,不要使用下劃線。
命名包括變量、函數、參數,類等命名要能很好的表述其承載的業務。
要名副其實,不存在歧義,要直截了當。c#
例子:緩存
函數和參數函數
public AccountEntity QueryAccountDetailById(int accountId):根據用戶ID獲取用戶詳情ui
變量插件
int uncheckProductAmount:未確認的產品數量(注:變量首字母小寫)code
類orm
public class AccountCacheBiz:用戶緩存邏輯類(注:Biz表示業務邏輯)對象
一個函數在於短小精悍,只做一件事情,並作好這件事。
只作一件事才能獲得更好的利用函數名錶述本身。索引
函數的參數應該足夠的少,無最好,一次之,再次爲二,儘可能避免三個以及三個以上。
對於太多的參數可能該採用IntroduceParameterObject(引入參數對象)。開發
杜絕重複代碼,不要對一段代碼進行拷貝操做,這樣意味着往後維護須要更新多個地方,確定會出現遺漏,留下隱患。
避免返回NULL。
在開發過程當中最多見異常的就是NullReferenceException。
在非特定場景下,要極力的避免返回null。
面對這種場景能夠採用null object Pattern(空對象模式)返回特例對象。
如c#類庫中的Guid.Empty,string.Empty。
對於集合類型咱們能夠返回長度0的空集合而非null。
類第一原則應是是小並足夠的小。但與函數不一樣的是函數以代碼行數統計,而類以權責統計。
第二原則是:高內聚低耦合。
類需加上大體說明註釋,例如:
/// <summary>
/// DiYi ERP用戶業務類
/// 初版
/// 李偉
/// 2017/4/6
/// </summary>
public class UserBiz{
/* INNER CODE */
}
複雜邏輯須要加上業務邏輯的註釋,例如:
/// <summary>
/// 查詢用戶分頁數據
/// </summary>
/// <param name="pagedParam">分頁查詢參數,包括索引和單頁顯示數量</param>
/// <param name="totalAmount">總數,爲輸出參數</param>
/// <returns></returns>
public DataTable QueryPagedUserDataTable(PagedParam pagedParam,out int totalAmount)
{
/* INNER CODE */
}
一組方法需加上#Region,生成註釋塊,例如:
/#region FineUI通知對話框顯示
/// <summary>
/// 顯示通知對話框
/// </summary>
/// <param name="message"></param>
public virtual void ShowNotify(string message)
{
ShowNotify(message, MessageBoxIcon.Information);
}
/// <summary>
/// 顯示通知對話框
/// </summary>
/// <param name="message"></param>
/// <param name="messageIcon"></param>
public virtual void ShowNotify(string message, MessageBoxIcon messageIcon)
{
ShowNotify(message, messageIcon, Target.Top);
}
/// <summary>
/// 顯示通知對話框
/// </summary>
/// <param name="message"></param>
/// <param name="messageIcon"></param>
/// <param name="target"></param>
public virtual void ShowNotify(string message, MessageBoxIcon messageIcon, Target target)
{
Notify n = new Notify(); n.Target = target; n.Message = message; n.MessageBoxIcon = messageIcon; n.PositionX = Position.Center; n.PositionY = Position.Top; n.DisplayMilliseconds = 3000; n.ShowHeader = false; n.Show();
}
/#endregion
DD
一款VS插件,能夠幫助開發者編寫出更乾淨整潔的代碼,去除一些定義了卻不使用的變量,自動給出命名建議,一鍵應用未引用的命名空間等等。
2017/4/27 V0.1