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
- 所有的类,变量,属性,接口,枚举,方法,结构等命名必须有意义,遵循“宁可长,不可懵”的命名方式。
- 缓存依赖文件必须以缓存依赖单词结尾
- 在布局页定义的@RenderSection必须带Section结尾
前端命名规范
- HTML标签自定义属性必须以data-开头
- CSS中所有自定义的class必须遵循monk-开头
- Javascript中的类必须是都是首字母大写的骆驼命名方式
- Javascript中的变量,方法都是首字母小写的骆驼命名方式
- 自定义的所有前端组件必须遵循 monk-组件名称[-主题]命名方式
文件或文件夹夹介绍
- 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=""></param>
/// <returns></returns>
- 所有的类,接口,枚举,结构必须添加C#语言summary的注释,注释格式为:
/// <summary>
/// 类名称:
/// 类描述:
/// 编写作者:
/// 创建时间:
/// 更新时间:
/// 参与人员:
/// </summary>
- 单行代码注释统一在该代码上面注释,注释格式为:
// 说明
string str="百小僧";
- 控制器Action注释格式:
/// <summary>
/// 行为名称:
/// 行为方式:
/// 编写作者:
/// 创建时间:
/// 更新时间:
/// 方法描述:
/// 参与人员:
/// </summary>
/// <param name=""></param>
/// <returns></returns>
代码编写规则
- 变量采取就近原则,就是什么时候用,就在什么时候定义
- 处理同一逻辑功能的代码不用空出一行,其他的应空行分割
Monk快速开发框架前期约定的更多相关文章
- Base-Android快速开发框架(一)--概述
首先简单介绍一下Base.Base是本人长期以来经过10来款APP总结出来的一个Android快速开发框架.包含数据缓存模块.工具包.第三方组件包.网络模块.数据解析.常用主界面布局等.可以快速的开发 ...
- Android快速开发框架汇总
知乎贴:Android 开发有什么好的架构么? 里面这篇不错:Architecting Android…The clean way? 知乎贴: 一.如果对App的性能.包size有要求,对代码有洁癖不 ...
- 【Android】Android的快速开发框架Afinal
Afinal简介 Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp. 通过finalA ...
- ASP.NET Core模块化前后端分离快速开发框架介绍之4、模块化实现思路
源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin 前 ...
- ASP.NET Core模块化前后端分离快速开发框架介绍之2、快速创建一个业务模块
源码地址 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin ...
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
C# 嵌入dll 在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...
- Mario是一个基于.NETCore的简单快速开发框架
Mario .NET Core简单快速开发框架 Mario是一个基于.NET Core的简单快速开发框架 GitHub:https://github.com/deeround/Mario 技术特点 基 ...
- 第一章 Net 5.0 快速开发框架 YC.Boilerplate--框架介绍
YC.Boilerplate 框架介绍 YC.Boilerplate 是一套快速开发框架,采用当下流行的前后端分离开发模式,前端 采用VUE.后端采用Net 5.0:框架实现了 多租户.动态webAp ...
- CRL快速开发框架系列教程十三(嵌套查询)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
随机推荐
- iOS Block界面反向传值
在上篇博客 <iOS Block简介> 中,侧重解析了 iOS Block的概念等,本文将侧重于它们在开发中的应用. Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C ...
- Sap SE16n 修改表数据
SAP中直接修改表.视图的Tcode有SE16N和SM30. 其中使用SE16N修改表需要先输入命令&SAP_EDIT, 回车左下角显示激活SAP编辑功能后,就可以对相应的表进行新增.删除.修 ...
- Event 8306 5021 5059 5057发布安全令牌时异常
现象:站点访问一个,应用程序池就自动停掉一个 日志报错 解决: 1.受域策略影响,作为批处理作业登录选项被锁定,需修改域策略: 更新后: 2.确保程序池账户倒在IIS_IUSER组 ...
- Golang语法与代码格式速记【转】
// Description: Golang语法与代码格式速记 // Author: cxy // Date: 2013-04-01 // Version: 0.3 // TODO 说明 // TOD ...
- IOS 绘制圆饼图 简单实现的代码有注释
今天为大家带来IOS 绘图中圆饼的实现 .h文件 #import <UIKit/UIKit.h> @interface ZXCircle : UIView @end .m文件 #impor ...
- tabbarItem字体及图片颜色设置
tabbarItem设置图片后运行往往与我们原始图片颜色有出入,这是因为在默认情况下,未选中状态图片和字体颜色为灰色,选中状态下图片和字体颜色为蓝色. UIImage 在呈现(render)时会选 ...
- 使用私有Pod Spec的类库--提高公司开发效率
前言 找了这么长时间,再次开始去尝试Cocoapods了.前面已经写过一篇关于如何把自己的Github上的代码库添加Cocoapods支持.现在就让我们看一下如果搭建私有的Spec吧. 之所以构建私有 ...
- Android 四大组件之Activity(续2)
1.生命周期 关于生命周期,在详细讲解下: 上图是从android官网获取的生命周期. 正常的流程,很多文章都讨论过了,我们讨论几个特殊的情况. 1)OnResume->OnPause-> ...
- jQuery对表格的操作及其他应用
表格操作 1.隔行变色:对普通表格进行隔行换色:单击显示高亮样式:复选框选中高亮 <!DOCTYPE html> <html> <head> <meta ht ...
- winform(四)——简单计算器制作
效果图: 代码区: using System; using System.Collections.Generic; using System.ComponentModel; using System. ...