命名采起驼峰式,例如: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