首页 > 代码库 > Monk快速开发框架前期约定

Monk快速开发框架前期约定

命名规则

 

后端命名(统一采用[前缀]骆驼命名)

 

  • 所有类都必须以大写开头
  • 接口必须以I开头
  • 业务逻辑或业务接口必须以Services结尾
  • 数据仓储或仓储接口必须以Repository结尾
  • 所有特效必须以Attribute结尾
  • 所有过滤器必须以Filter结尾
  • 关于全局配置类必须以Config结尾
  • 所有控制器必须以Controller结尾
  • 所有拓展类必须以Extention结尾
  • 所有的T4生成文件必须以Generator结尾
  • 所有的枚举必须以Enum结尾
  • 所有的结构必须以Struct结尾
  • 所有的Key配置类都必须以Key结尾
  • 所有的变量必须第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母
  • 私有变量必须以下划线开头
  • 对象属性统一采用首字母大写的骆驼命名方式,个别情况可以小写开头,应尽量避免
  • 所有的数据传输对象(DTO)定义的类必须以Dto开头
  • 全局注入的数据必须以两个下划线开头
  • 通常根据数据库表生成对应的实体模型都放在MVC结构中根目录下的Models文件夹中,同时类的名称和表名称一一对应,如果有特殊情况,如有前缀,可自己添加映射关系。
  • 每一个MVC结构中,新建一个控制器,必须在Views文件夹下有对应的控制器同名文件夹,同时对应的Models文件夹也应该有控制器同名的文件夹。
  • Models文件夹下面的所有控制器文件夹中的类必须和控制器下的Action一一对应,如:有DefaultController控制器,那么Models下面就有Default文件夹,那么DefaultController控制器中有多少个Action,就应该对应多少个Dto的类,命名方式为:Dto+控制器名称+Action名称+Model.cs
  • 所有的控制器必须指定请求类型
  • 所有的代码片段必须以snippet_开头,文件的后缀名也是.snippet
  • 所有的类,变量,属性,接口,枚举,方法,结构等命名必须有意义,遵循“宁可长,不可懵”的命名方式。

 

文件或文件夹夹介绍

 

  • App_Data 数据库存储文件或初始化脚本,如init.sql,*.mdb,*.xml,*.json等
  • App_Start 应用程序启动时执行的类或方法
  • Areas 区域,对应每一块完整的功能模块
  • Assets 静态资源,包括CSS,Image,Js,HTML,字体图标等
  • Assist 助手文件夹,也就是工具库
  • Configure 配置文件,通常是json或xml文件
  • Controllers 控制器
  • Exports 导出的数据文件文件夹
  • Extentions 拓展类
  • Filters 过滤器
  • Generator 代码生成器
  • Models 数据库表对应的实体类
  • Repository 数据库操作文件夹
  • Services 业务逻辑文件夹
  • Snippet 代码片段
  • Views 公共视图文件夹
  • Global.asax 全局类
  • packages.config Nuget包配置文件
  • Web.config 网站配置文件

 

后端注释规范

 

  • 所有的.cs文件必须在最顶部注释,注释格式为:
/*! * 文件名称: * 文件版本: * 文件作者: * 编写日期: * 版权所有: * 文件描述: */

  

  • 所有自定义插件或者框架必须在最顶部注释,注释格式为:
/*! * 文件名称: * 文件版本: * 文件作者: * 编写日期: * 版权所有: * 企业官网: * 开源协议: * 文件描述: */

  

  • 所有的方法必须添加C#语言summary的注释,注释格式为:
/// <summary>/// 方法名称:/// 编写作者:/// 编写日期:/// 方法描述:/// </summary>/// <param name="id"></param>/// <returns></returns>

  

  • 所有的类,接口,枚举,结构必须添加C#语言summary的注释,注释格式为:
/// <summary>/// 类名称:/// 类描述:/// 编写作者:/// 编写日期:/// </summary>

  

  • 单行代码注释统一在该代码上面注释,注释格式为:
// 说明string str="百小僧";

  

代码编写规则

 

  • 变量采取就近原则,就是什么时候用,就在什么时候定义
  • 处理同一逻辑功能的代码不用空出一行,其他的应空行分割

Monk快速开发框架前期约定