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快速开发框 ...
随机推荐
- Linux学习心得之 linux命令
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本篇博客是对 每日一linux命令(http://www.cnblogs.com/pe ...
- iOS团队风格的统一
不知不觉团队已经有了4个iOS开发,大家的代码风格完全不一样,所以每次改起别人的代码就头疼,理解起来不是那么顺畅,如鲠在喉.所以,就开了场分享会,把一些基本调用方法和代码风格统一了一下. 前言 主要参 ...
- Mac Security工具使用总结
Security是Mac系统中钥匙串和安全模块的命令行管理工具,(图形化工具为Keychain Access.app).钥匙串(Keychain)实质上就是一个用于存放证书.密钥.密码等安全认证实体的 ...
- 从汇编角度分析C语言的过程调用
➠更多技术干货请戳:听云博客 基本术语定义 1.系统栈(system stack)是一个内存区,位于进程地址空间的末端. 2.在将数据压栈时,栈是自顶向下增长的,该内存区用于函数的局部变量提供内存.它 ...
- CoreData数据库浅析
Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象.在此数 ...
- J2ObjC 1.0 发布,将 Java 转换为 Objective-C
J2ObjC 是一个Google开发的开源工具,用于将Java代码转换为Objective-C代码.其目的是为了能在iOS平台上重用Android平台.web服务器端的Java代码.服务器端代码的转换 ...
- 添加 All Exceptions 断点后, 每次运行都会在 main.m 中断的一种解决方法
在本人项目添加导入和使用新的字体过程中,遇到一个很奇怪的问题: 项目开启了全局断点,但是每次启动都会运行在mian.m中断,点击下一步程序继续正常运行. 不知道是什么原因,于是google百度寻找答案 ...
- 解决Jenkins 2.0 初始化界面卡住的问题
***************************************** *原创博客转载请注明出处,谢谢!* **************************************** ...
- 开篇:软件项目的整个流程 - IT软件人员学习系列文章
这段时间闲来无事,就在总结以前的项目经验,然后写成博客的形式以进行记录.本文就对<IT软件人员学习系列文章>做个开篇吧. 对于IT软件的开发来说,无外乎B/S.C/S和Android.iO ...
- [Erlang 0104] 当Erlang遇到Solr
Joe Armstrong的访谈中有一段关于"打开黑盒子"的阐述,给我留下很深的印象:Joe Armstrong在做XWindows开发时没有使用对应的类库,而是在了解XW ...