一、 編碼規范
(一)【強制】命名規范:所有命名(類名、屬性名、變量名、常量名、屬性名)必須以字母開頭(a-z、A-Z),不能以特殊字符(_、$)開頭。
1、【強制】類名命名規則:大駝峰命名法【DTO、POCO、VO等除外】
public class UserInfo{}
2、【強制】屬性命名規則:大駝峰命名法
public string UserInfo { get; set; }
3、【強制】字段、參數、成員變量、局部變量命名規則:小駝峰命名法
public string userName; public string GetUserName(string userId) { return "userName"; }
4、【強制】方法/函數命名規則:大駝峰命名法
public int GetUserInfo() { }
5、【強制】常量命名規則:名稱全部大寫,單詞間用下划線_分開
public const string USER_NAME = "userinfo";
6、【強制】DTO、POCO、VO命名規則:大駝峰命名法+DTO/VO/POCO等
public class UserInfoDTO { } public class UserInfoVO { } public class UserInfoPOCO { }
7、【強制】命名空間命名規則:大駝峰命名法
namespace UserInfo { }
8、【強制】枚舉命名規則(枚舉名稱采用大駝峰命名規則,枚舉成員所有名稱也使用大駝峰命名法)(沒有特殊情況的話,枚舉成員建議從默認值0開始)
public enum UserState { Success, Fail }
9、【強制】代碼中所有成員禁止直接使用中文的命名方式,禁止使用中文拼音命名(一些通用的命名除外:比如城市可以采用beiJing、shangHai這樣的命名規則是可以的),禁止使用中英文混合命名方式,禁止出現a、b、c、aa、ss、x、xx等毫無意義的命名方式。
10、【推薦】復數類型(集合類、數組等)命名規則:優先以小寫字符s結尾,如果單詞最后的字母就是s或其他不適合s結尾的單詞,可以使用復數類型的類型名稱結尾(如List、Array等結尾)。前面規則如果都不好命名,可自行命名。
public List<string> userNames { get; set; } public string[] userNameArray { get; set; } public List<string> userNameList { get; set; }
11、【強制】接口命名規則:以大寫字母I開頭+類名稱
public interface IUserInfo { }
12、【強制】異常類命名規則:大駝峰命名法+Exception
public class UserInfoException { }
13、【強制】項目命名規則:大駝峰命名法,各個字母之間用字母(.)隔開。
14、【推薦】業務層和數據層名命名規則:業務層類庫名稱命名規則:以Service結尾、數據層類庫命名規則:以Repository結尾。
1)、獲取數據的方法以Get開頭(加上要獲取的對象名)。如獲取單個對象,可以使用Get()、GetUserInfo()。獲取復數對象(集合類),可以使用Gets()、GetUserInfos()。
public class UserInfoService { /// <summary> /// 獲取一條用戶信息【命名規則:直接用Get命名】 /// </summary> /// <param name="userId">用戶Id</param> /// <returns></returns> public UserInfo Get(string userId) { return null; } /// <summary> /// 獲取一條用戶信息【命名規則:Get+對象名】 /// </summary> /// <param name="userId">用戶Id</param> /// <returns></returns> public UserInfo GetUserInfo(string userId) { return null; } /// <summary> /// 獲取多條用戶信息【命名規則:Gets】 /// </summary> /// <returns></returns> public IEnumerable<UserInfo> Gets() { return null; } /// <summary> /// 獲取多條用戶信息【命名規則:Get+對象名復數】 /// </summary> /// <returns></returns> public IEnumerable<UserInfo> GetUserInfos() { return null; } }
2)、新增數據的方法以Insert開頭(加上要獲取的對象名)。如往數據庫中新增一條記錄,方法命名為Insert()、InsertUserInfo()。往數據庫中新增多條記錄,方法命名為Inserts()、InsertUserInfos()。
public class UserInfoService {/// <summary> /// 新增一條用戶信息【命名規則:Insert命名】 /// </summary> /// <param name="userInfo">用戶信息</param> /// <returns></returns> public int Insert(UserInfo userInfo) { return 1; } /// <summary> /// 新增一條用戶信息【命名規則:Insert+對象名】 /// </summary> /// <param name="userInfo">用戶信息</param> /// <returns></returns> public int InsertUserInfo(UserInfo userInfo) { return 1; } /// <summary> /// 新增多條用戶信息【命名規則:Inserts】 /// </summary> /// <param name="userInfos">用戶信息</param> /// <returns></returns> public int Inserts(List<UserInfo> userInfos) { return 1; } /// <summary> /// 新增多條用戶信息【命名規則:Insert+對象名復數】 /// </summary> /// <param name="userInfos">用戶信息</param> /// <returns></returns> public int InsertUserInfos(List<UserInfo> userInfos) { return 1; } }
3)、刪除數據的方法以Delete/Remove(加上要刪除的對象名)。如刪除數據庫中的一條記錄,方法命名為Delete()、DeleteUserInfo()。刪除數據庫中的多條記錄,方法命名為Deletes()、DeleteUserInfos()。
public class UserInfoService {/// <summary> /// 刪除一條用戶信息【命名規則:Delete】 /// </summary> /// <param name="userId">用戶Id</param> /// <returns></returns> public int Delete(string userId) { return 1; } /// <summary> /// 刪除一條用戶信息【命名規則:Delete+對象名】 /// </summary> /// <param name="userId">用戶Id</param> /// <returns></returns> public int DeleteUserInfo(string userId) { return 1; } /// <summary> /// 刪除多條用戶信息【命名規則:Deletes】 /// </summary> /// <param name="userIds">要刪除的用戶Id集合</param> /// <returns></returns> public int Deletes(List<string> userIds) { return 1; } /// <summary> /// 刪除多條用戶信息【命名規則:Delete+對象名復數】 /// </summary> /// <param name="userIds">要刪除的用戶Id集合</param> /// <returns></returns> public int DeleteUserInfos(List<string> userIds) { return 1; } }
4)、修改數據的方法以Update開頭(加上要修改的對象名)。如修改一條數據信息,方法命名為Update()、UpdateUserInfo()。修改多條數據的信息,方法命名為Updates()、UpdateUserInfos()。
public class UserInfoService {/// <summary> /// 修改一條用戶信息【命名規則:Update】 /// </summary> /// <param name="userInfo">用戶信息</param> /// <returns></returns> public int Update(UserInfo userInfo) { return 1; } /// <summary> /// 修改一條用戶信息【命名規則:Update+對象名】 /// </summary> /// <param name="userInfo">用戶信息</param> /// <returns></returns> public int UpdateUserInfo(UserInfo userInfo) { return 1; } /// <summary> /// 修改一條用戶信息【命名規則:Update】 /// </summary> /// <param name="userInfo">用戶信息</param> /// <returns></returns> public int Updates(UserInfo userInfo) { return 1; } /// <summary> /// 修改一條用戶信息【命名規則:Update+對象名】 /// </summary> /// <param name="userInfo">用戶信息</param> /// <returns></returns> public int UpdateUserInfos(UserInfo userInfo) { return 1; } }