zoukankan      html  css  js  c++  java
  • 代码设计规范

    代 码 设 计 规 范

    一、注释规范

    1、自建代码文件注释          

    对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释:

    /*************************************************

    作者:

    说明:

    创建日期:

    版本号:

    **********************************************/ 

    2、标准注释 

    在模块、类、属性、方法前一行添加注释,以便调用的时候提示用户,下以方法声明做例子:

           ///<summary>

          ///<对该方法的说明>

          ///</summary>

          ///<paramname="<参数名称>"><参数说明></param>

       ///<returns>

         ///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>

         ///</returns>

    3、代码中的注释

      代码间注释分为单行注释和多行注释:

      单行注释:

          //<单行注释>

                

    多行注释:

                 /*多行注释1

                多行注释2

                多行注释3*/

             

    代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法、循环条件、不同分支的意义等等)。

               

             

    二、异常处理

    1、数据层服务层异常必须要记录到服务日志中

    try

    { }

    catch (DbEntityValidationException ex)

    { throw new SerivceException ("");}

    catch (SerivceException ex)

    {throw ex; }

    catch (Exception ex)

    {throw new SerivceException (""); }

    2、业务层客户端异常要记录在文件中

    原则异常msg描述清楚所发生错误原因、关键必要的参数,已便于客户端使用者、测试人员及相关研发人员明白错误原由。

    三、Web页面

    1、出现超出半屏幕的html标签时需要加注释 例:<!-- BEGIN 描述 --> <body></body> <!-- End 描述 -->

             

    2Js命名规则

    函数: fn 例: fnMethod

    事件: on例: eventBeforeSave

    3、单行的 IF - ELSE,WHILE 或者 FOR 语句也 必须 加入括号,不过他们可以这样写:

    if (condition){ statement; }

    while (condition){ statement; }

    for (intialization; condition; update){ statement; }

    4、

    foreach(var item in list){

    foreach(var item1 in list){

    foreach(var item2 in list){

                }

        }

    }

             

    三、命名规范

     1、程序集命名、命名空间、类(全部为中文名)

    1)程序集:项目域名+项目名称+模块名 例:六月版.供应商.业务层

    2)命名空间:六月版.供应商.业务层.单据管理 (业务逻辑后缀'管理')

    3)类名:订单

    2、方法命名

    1)业务层、服务方法命名

    以混合命名法为主,常用动词单词+中文词描述+'_'+精确描述

            Get***        //'获取***'

            Create***    //'创建***'

            Update***   //'更新***'

            Del***        //'删除***'

            Save***      //'创建或修改***'

            Fill***         //'填充***'  多用于业务逻辑处理

                Add***         //'添加***' 多用于业务逻辑处理

                Remove***   //'移除***' 多用于业务逻辑处理 

            例:public VM.订单 Get订单信息(string 订单编号)

                public void Update订单状态_已出库(string 订单编号, string 操作人)

                 对于获取多条记录的方法名要加以 '集'结尾

                例:public List<VM.订单> Get订单信息(string 关键字)

    1. Mvc Controllers 方法命名(全英文) 开头大写,文件名开头大写

        3)     方法参数全部为中文名,Mvc Controllers方法参数(全英文)//开头字母小写

    4)        MVC 分布视图 _开头加开头大写单词

    3、变量命名

    命名空间引用缩写

    业务层: 例:using BS供应商=六月版.供应商.业务层 ;

    数据层: 例:using DAO供应商=六月版.供应商.数据层 ;

    服务层: 例:using Server供应商=六月版.供应商.服务 ;

    视图模型: 例:using VM供应商=六月版.供应商. 视图模型

    公共类库: 例:using Comm=DotNet.Common;

    变量命名以混合命名法为主

    Sbyte: sbte

    Char: chr

    Short: sht

    Object: obj

    Int: int

    String: str

    Long: lng

    DateTime: dte

    Byte: bte

    IntPtr: intptr

    Ushot: usht

    临时变量: tmp

    Uint: uint

    Guid: g

    Ulong: ulng

    (s、dao)实体模型: model    

    Float: flt

    类的私有变量: m

    Double: dbl

    静态变量: st

    Decimal: dcl

    常量: const

    Bool: is

    全局: p

    StringBulider: sb

    List:lst

    Array: arr

    枚举: e

    数组: a

    对象来自视图:vm

     DbContext:db

         

    总体原则以中文表示所要表示的内容,以变量类型做为前缀。变量类型做为前缀是为了索引方便,使用中文名是为了意义容易理解。

    注:方法的参数变量命名不使用以上规则,返回值变量使用以上规则

    Html命名规则

    命名

    说明

    标准命名举例

    doc

    Document

          

    wnd

    Window

          

    frm

    Form

          

    btn

    input type=button

          

    ckb

    input type=checkbox

          

    file

    input type=file

          

    hid

    input type=hidden

          

    img

    input type=image|img

          

    pwd

    input type=password

          

    rdb

    input type=radio

          

    rst

    input type=rest

          

    smt

    input type=submit

          

    txt

    input type=text

          

    sel

    select

          

    tar

    textarea

         

    Table

    tbl

          

             

             

    常用命名规则

    登录条:loginBar

    加入:joinus

    主导航:mainNav

    标志:logo

    指南:guild

    顶导航:topnav

    侧栏:sidebar

    服务:service

    边导航:sidebar

    广告:banner

    热点:hot

    左导航:leftsideBar

    导航:nav

    新闻:news

    右导航:rightsideBar

    子导航:subNav

    下载:download

    标语:banner

    菜单:menu

    注册:register

    菜单内容1:menu1Content

    子菜单:subMenu

    状态:status

    菜单容量:menuContainer

    搜索:search

    按钮:btn

    子菜单:submenu

    滚动:scroll

    投票:vote

    边导航图标:sidebarIcon

    页面主体:main

    合作伙伴:partner

    注释:note

    内容:content

    版权:copyright

    容器:container

    标签页:tab

    外套:wrap

    登陆:login

    文章列表:list

    主导航:mainNav

    购物车:shop

    提示信息:msg

    子导航:subnav

    当前的curren

    小技巧:tips

    商标:label

         

    页脚:footer

    整个页面:content

         

    友情链接:friendLink

    页眉:header

         

         

    标题:title

         

     定制:Customized

       ID:Id 

        编号:Number

          

         

         

         

    四、编码优化

    1.使用String.Compare()字符串比较
    不要使用UpperCaseLowerCase转换字符串的大小写,再进行比较
    使用String.Compare()可忽略字符串大小写进行比较
    String  strTemp = "Active";
    If(String.Compare(strTemp,"active",true)==0){
             Consolt.Write("Equal");
    }

    2.避免在循环体里声明变量,应该在循环体外声明变量,在循环体内初始化变量
    //
    避免
    For(int i=0;i<10;i++){
           SomeClass obj = new SomeClass();
           //…
    }
    //
    推荐
    SomeClass obj = null;
    For(int i=0; i<10; i++){
           obj = new SomeClass();
           //…
    }

    3.关于this的使用

    this可以让人直接看出来调用的是参数或局部变量,还是类的成员

    3.设计原则

    • 单一职责原则(SRP - 就一个类而言,应该仅有一个引起它变化的原因
    • -闭原则(OCP- 软件实体(类,模块,函数等)应该是可以扩展的,但是不可以修改
    • 里氏替换原则(LSP- 子类必须能够替换它们的基类型
    • 依赖倒置原则(DIP- 抽象不应该依赖于细节。细节应该依赖于抽象。
    • 接口隔离原则(ISP- 不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。
    • 重用发布等阶原则(REP- 重用的粒度就是发布的粒度。
    • 共同封闭原则(CCP- 包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成影响。
    • 共同重用原则(CRP-  一个包中所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
    • 无环依赖原则(ADP- 在包的依赖关系图中不允许存在环。
    • 稳定依赖原则(SDP- 朝着稳定的方向进行依赖。
    • 稳定抽象原则(SAP- 包的抽象程度应该和其稳定程度一致。
    • 合成/聚合复用原则(CARP要尽量使用合成/聚合,尽量不要使用继承

    补充:

    2014/10/08

    关于项目中Id或编号的变量、参数等 命名需要注意结名称尾要加上 **Id  **编号    例: 商品Id   商品编号

  • 相关阅读:
    i5ting_doc的安装和使用
    vscode—修改默认的shell
    cookie的相关知识
    这是一段有毒的js代码,求大神解释!!!
    BFC的触发条件
    替换元素与非替换元素
    css中em的使用方法
    误操作导致ps界面中的工具栏消失
    导航栏里面的li标签和a标签的配合使用
    记录一下 elmentui 循环复选框不能选中问题
  • 原文地址:https://www.cnblogs.com/shanhe/p/3877998.html
Copyright © 2011-2022 走看看