命名规则

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

  • 所有类都必须以首字母大写开头
  • 接口必须以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. Jquery实现的简单轮播效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 基础算法(javascipt)总结

    一.排序: 1.选择排序: 2.交换排序: 3.插入排序 二.查找: 三.节点遍历: 四.数组去重: 时间复杂度:找出算法中的基本语句->计算基本语句的执行次数的数量级->用大O记号表示算 ...

  3. SuperMap iServer 扩展服务及扩展服务提供者范例

    一.扩展服务实例 1.将iserver-extend1下的listener.java打成jar包2.复制到D:\SuperMap-iServer\webapps\iserver\WEB-INF\lib ...

  4. IOS 序列化与反序列化NSKeyedUnarchiver

    开篇 1到底这个序列化有何作用? 面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中. 当你写的 ...

  5. Git:Git初体验——Git安装配置

    作为即将成为一个程序员的男人,一直在听别人说Git多好多好,之前也随便了解了一些,但是始终没有决心去学会.现在大四了,只有毕设和一门开学六七周只去过一次课的全员必修课外,也没有什么事情做,何不去做这些 ...

  6. 基于Flume+LOG4J+Kafka的日志采集架构方案

    本文将会介绍如何使用 Flume.log4j.Kafka进行规范的日志采集. Flume 基本概念 Flume是一个完善.强大的日志采集工具,关于它的配置,在网上有很多现成的例子和资料,这里仅做简单说 ...

  7. Linux LVM学习总结——创建卷组VG

    在Linux平台如何创建一个卷组(VG)呢?下面简单介绍一下卷组(VG)的创建步骤.本文实验平台为Red Hat Enterprise Linux Server release 6.6 (Santia ...

  8. Red Hat Enterprise Linux 6.6安装体验

    Red Hat Enterprise Linux 6.6的安装首界面有五个选项,这跟以前的Red Hat Enterprise Linux 5.x的安装界面是有一些区别的.   安装或者升级现有系统( ...

  9. html之长文本框置顶

    方法: 在<body> </body>中添加如下代码: <a name="top"></a> <a href="#t ...

  10. 解决ntp的错误:no server can be used,exiting

    台湾地区一台机器进行时间同步时,出现下面的错误.很显然,它提示的是不能找到主机time.stdtime.gov.tw. 所以我初步猜测是由于dns解析的问题   1 2 3 4 #  /usr/sbi ...