命名规则

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

  • 所有类都必须以首字母大写开头
  • 接口必须以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快速开发框架前期约定的更多相关文章

  1. Base-Android快速开发框架(一)--概述

    首先简单介绍一下Base.Base是本人长期以来经过10来款APP总结出来的一个Android快速开发框架.包含数据缓存模块.工具包.第三方组件包.网络模块.数据解析.常用主界面布局等.可以快速的开发 ...

  2. Android快速开发框架汇总

    知乎贴:Android 开发有什么好的架构么? 里面这篇不错:Architecting Android…The clean way? 知乎贴: 一.如果对App的性能.包size有要求,对代码有洁癖不 ...

  3. 【Android】Android的快速开发框架Afinal

    Afinal简介 Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp. 通过finalA ...

  4. ASP.NET Core模块化前后端分离快速开发框架介绍之4、模块化实现思路

    源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin 前 ...

  5. ASP.NET Core模块化前后端分离快速开发框架介绍之2、快速创建一个业务模块

    源码地址 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin ...

  6. 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,这种形 ...

  7. Mario是一个基于.NETCore的简单快速开发框架

    Mario .NET Core简单快速开发框架 Mario是一个基于.NET Core的简单快速开发框架 GitHub:https://github.com/deeround/Mario 技术特点 基 ...

  8. 第一章 Net 5.0 快速开发框架 YC.Boilerplate--框架介绍

    YC.Boilerplate 框架介绍 YC.Boilerplate 是一套快速开发框架,采用当下流行的前后端分离开发模式,前端 采用VUE.后端采用Net 5.0:框架实现了 多租户.动态webAp ...

  9. CRL快速开发框架系列教程十三(嵌套查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

随机推荐

  1. CSS项目学习总结

    1.我过去在HTML和CSS阶段是如何学习的? 我一开始学HTML和CSS,更多的是通过看视频.书籍,一个知识点一个知识点地去学习,很少把他们串联起来,看代码多于敲代码. 然而,通过现在这几个项目的实 ...

  2. 《java数据结构和算法》读书笔记

    大学时并不是读计算机专业的, 之前并没有看过数据结构和算法,这是我第一次看.         从数据结构方面来说:                数组:最简单,遍历.查找很快:但是大小固定,不利于扩展 ...

  3. 来自沪江、滴滴、蘑菇街架构师的 Docker 实践分享

    架构师小组交流会是由国内知名公司架构师参与的技术交流会,每期选择一个时下最热门的技术话题进行实践经验分享. Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化.可移植性是 CI/CD.Dev ...

  4. 基于Ruby的Watir-WebDriver自动化测试方案

    Watir-WebDriver       —— 软件测试的自动化时代 QQ群:160409929 自动化测试方案书 系统架构 该自动化测试框架分三个模块:Test用例.Control控制层.Tool ...

  5. python-切片 迭代 生成器

    1 切片操作 >>> L ['aaa', 'bbb', 'ccc', 'ddd'] >>> L[0:3] ['aaa', 'bbb', 'ccc'] >> ...

  6. MySQL如何导出带日期格式的文件

    一网友问在MySQL中如何只用SQL语句导出带日期格式的文件.觉得有点意思,于是尝试了一下.导出文件使用SELECT INTO OUTFILE 但是OUTFILE后面的值不能使用变量,所以只能使用动态 ...

  7. 使用JNI封装底层input系统提供的event事件

    首先说下思路,本文采用jni技术封装底层触摸事件,封装成MotionEvent类一样,不过没有android系统MotionEvent强大.源码MotionEvent位置:java-->fram ...

  8. Javascript 中的严格模式

    原文:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 一.概述 除了正常运行模式,ECMAscript 5添加了第 ...

  9. 关于Spring中配置LocalSessionFactoryBean来生成SessionFactory

    转载http://m.blog.csdn.net/blog/SpbDev/8545372     学习Spring的过程中,一直不理解为何配置的bean的class是LocalSessionFacto ...

  10. 解决webkit浏览器中js方法中使用window.event提示未定义的问题

    这实际上是一个浏览器兼容性问题,根源百度中一大堆,简要说就是ie中event对象是全局变量,所以哪里都能使用到,但是webkit内核的浏览器中却不存在这个全局变量event,而是以一个隐式的局部变量的 ...