精华内容
参与话题
问答
  • 程序开发的命名规范(必读)

    万次阅读 2016-09-28 16:24:55
    良好的命名规范可以为团队合作开发推波助澜,无论在项目开发,还是产品维护上都起到了至关重要的作用。应该说命名规范是一种约定,也是程序员之间良好沟通的桥梁。另外古人相信只要知道一个人真正的名字就会获得凌驾...

    良好的命名规范可以为团队合作开发推波助澜,无论在项目开发,还是产品维护上都起到了至关重要的作用。应该说命名规范是一种约定,也是程序员之间良好沟通的桥梁。另外古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力量。只要给事物想到正确的名字,它就可以带来比代码更强的力量。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推想也能在意料之中。

    Java中的命名规则

    .NET中的命名规则

    PHP中的命名规则

    NoahWeb中的命名规则

    网站文件命名规则

    Dreamweaver文件的命名规则

    VBScript中的命名规则

    CSS类及id中的命名规则

    数据库中的命名规则

    常见命名规则有四种样式:完全大写、完全小写、Pascal 大小写和 Camel 大小写。

    1 Pascal 大小写
    组成标识符的每个单词的首字母大写,其余字母小写的书写约定。对于缩写的双字母单词,要求全部大写。
    例如:ApplicationException
    ID
    2 Camel 大小写
    标识符的首字母小写,每个后面连接的单词的首字母大写,其余字母小写的书写约定。对于缩写的双字母单词,要求它们出现在标识符首部时全部小写,否则全部大写。
    例如:applicationException


    id
    3 匈牙利命名法
    匈牙利命名法由匈牙利程序员发明,他在微软工作了多年,此命名法就是通过微软的各种产品和文档传出来。多数有经验的程序员,不管他们用的是哪门语言,都或多或少在使用它。
    基本原则:变量名 = 属性 + 类型 + 对象描述
    即一个变量名是由三部分信息组成,这样,程序员很容易理解变量的类型、用途,而且便于记忆。

    变量类型和首字母对照关系如下表:

    数据类型/对象类型 / 变量前缀 / 备注
    byte bye
    char chr
    float flt
    boolean bln 做布尔变量时,使用bln
    Integer/int int
    String str
    Single sng
    short sht
    Long/long lng
    Double/double dbl
    Currency cur
    Variant bln      astr      obj      vnt 做布尔变量用时,用bln,做字符串数组用时,用astr,做为对象使用时,用obj,不确定时,用vnt。

    对于数组,在数据类型的前缀前再增加一个a,例如字符串数组为astr。对于在多个函数内都要使用的全局变量,在前面再增加“g_”。例如一个全局的字符串变量:g_strUserInfo。





    Java中的命名规则


    在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的。比如,大小写的区分,使用不同字母开头等等。但究其本,追其源,在为一个资源定名称的时候,应该本着描述性以及唯一性这两大特征来命名,才能保证资源之间不冲突,并且每一个都便于记忆。

    包的命名

    Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。
    例如:net.frontfree.javagroup

    类的命名

    类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。
    例如:Circle

    属性、方法的命名

    方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。
    例如:sendMessge

    常量的命名

    常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。
    例如:MAX_VALUE

    参数的命名

    参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。

    接口的命名

    接口名称都加上前缀“I”。

    接口名称在前缀之后的部分命名规则与类相同。

    根据接口类型可以在之后加上业务类型的头等。

    例如:

    IRunnable

    ISingleton

    变量的命名

    总的来说,变量的命名与属性相似。

    循环计数器
    一般使用i、j和k来命名。

    例外(Exception)
    一般可以使用e,ex等来命名。

    布尔变量(boolean)
    可以使用bool***,***为有意义的英文单词或单词组合,如boolHaveRecord:是否有记录。

    数组的定义

    要用"int[] packets",而不是"int packets[]"

    List变量

    可采取如下规则的命名规则,***List;

    ***为有意义的英文单词或单词组合,如dayList;

    二维数组变量

    可采取如下规则的命名规则,***Arr;

    ***为有意义的英文单词或单词组合,如lmtTypeArr;

    某一数组或set的长度的命名

    变量名称+Size如

    packetsSize

    常见分层及类名

    action[控制层]:UserAction.java

    model[数据模型层]:UserInfo.java

    service[业务逻辑接口层]:IUserService.java

    service.impl[业务逻辑实现层]:UserServiceImpl.java

    service.dto[数据传输对象]:UserDTO.java

    service.assembler[模型转换]:UserAssembler.java

    dao[数据访问接口层]:IUserDao.java

    dao.impl[数据访问实现层]:UserDaoImpl.java

    api[API接口层]:IUserServiceApi.java

    api.impl[API实现层]:UserServiceApiImpl.java

    common[公共层]:***.java


    Javadoc注释

    Java除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,它是用来记录我们代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些HTML标记符和专门的关键词。使用Javadoc注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。
    例如:

    /**
    * This is an example of
    * Javadoc
    *
    * @author darchon
    * @version 0.1, 10/11/2002
    */

    在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成文档中以特定方式显示。
    虽然为一个设计低劣的程序添加注释不会使其变成好的程序,但是如果按照编程规范编写程序并且为程序添加良好的注释却可以帮助你编写出设计完美,运行效率高且易于理解的程序,尤其是在多人合作完成同一项目时编程规范就变得更加重要。俗话说“磨刀不误砍柴工”,花费一点时间去适应一下Java编程规范是有好处的。



    .NET中的命名规则


    名称空间的命名

    命名名称空间的一般规则如下:
    CompanyName.TechnologyName
    这样,我们看到的名称空间应该是这样的:
    Microsoft.Office
    PowerSoft.PowerBuilder

    注意:这只是一个原则。第三方公司可以选择其它的名字。
    避免用公司名称或其它著名品牌的名称作为名称空间的前缀,这样会造成两个公布的名称空间有同一个名称的可能性。
    例如:将微软提供的Office自动类命名为Microsoft.Office

    使用Pascal大写方式,用逗号分隔逻辑成分。
    例如:Microsoft.Office.PowerPoint

    如果你的品牌使用的是非传统大写方式,那么一定要遵循你的品牌所确定使用的大写方式,即使这种方式背离了通常的名称空间大写规则。
    例如:NeXT.WebObjects
    ee.cummings


    类和类成分的命名

    类的命名原则是用名词或名词短语命名类,使用Pascal大写。减少类名中缩写的使用量。不要使用任何类前缀(比如C),不要使用带下划线的字符。
    例如:public class FileStream {}
    public class Button {}
    public class String {}

    变量的命名

    采用Camel 大小写命名,名称中首字母小写。
    例如:findLastRecord
    redrawMyForm
    在内部范围中避免使用与外部范围中的名称相同的名称。若访问错误变量,则会产生错误结果。

    若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。

    函数和方法的命名

    函数和方法的命名应该以动词开始,使用Pascal大写。不要使用带下划线的字符。
    例如:InitNameArray
    CloseDialog

    接口命名原则

    使用名词或名词短语,或者描述行为的形容词来命名接口,使用Pascal大写。 减少接口名中缩写的使用量,在接口名前加前缀I,以表示这个类型是一个接口。
    例如:IComponent(描述性名词)
    ICustomAttributeProvider(名词短语)
    IPersistable(形容词)

    参数的命名

    使用描述性参数名。参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。根据参数的意思来命名参数,而不是根据参数的种类来命名。我们希望开发工具可以用很方便的方式提供关于参数种类的信息,这样参数名可以得到更好的使用,可以对语义而不是对种类进行描述。但是偶尔使用根据类型命名的参数名也是完全可以的。不要使用保留参数。如果在下一个版本中需要更多的数据,可以增加进来。
    例如:Type GetType (string typeName)
    string Format (string format, object [ ] args)

    属性的命名

    用名词或名词短语命名属性,属性与类型要一样。 用与一个类型的名称相同的名字来命名属性时,就使这个属性的类型成为那个类型。虽然听起来有些奇怪,但这是正确的。
    例如:public enum Color {...}
    public class Control {
    public Color Color {get {...} set {...}}
    }

    事件的命名

    用EventHandloer后缀命名事件处理程序,使用名为sender和e的两个参数,Sender参数代表提出事件的对象。Sender参数永远是一个类型对象,即使它可能使用了更为特定的类型,与事件相关的状态被封装在一个名为e的事件类范例中。要使用这个类型的正确的、特定的事件类。
    例如:public delegate void MouseEventHandler(object sender, MouseEvent e);
    命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxxAfterXxx的方式)。例如,可以被取消的结束事件就有Closing事件和Closed事件。

    长项和常用项的命名

    可使用缩写使名称长度适中,通常,多于 32 个字符的变量名在低分辨率的监视器上难以阅读。同时,请确保缩写在整个应用程序中保持一致。
    例如:可以使用“HTML”代替“HyperText Markup Language”。

    常见分层及类名

    BLL[业务逻辑层]:UserController.cs

    DAL[数据访问层]:UserDal.cs

    Model[实体类层]:UserInfo.cs

    Common[公共层]:***.cs


    代码书写格式规范

      • 文件之中不得存在无规则的空行,比如说连续十个空行。一般来讲函数与函数之间的空行为2-3行。
      • 在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。
      • 每行长度尽量避免超过屏幕宽度,应不超过80个字符。
      • 尽量用公共过程或子程序去代替重复的功能代码段。
      • 使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。如将 x=a*b/c*d 写成 x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。
      • 避免采用过于复杂的条件测试。
      • 避免过多的循环嵌套和条件嵌套。
      • 一个函数不要超过200行。一个文件应避免超过2000行。
      • 避免使用goto语句。
      • 避免采用多赋值语句,如x = y = z;。

    代码注释规范

    .cs文件的注释
    所有.cs文件开头都要加上注释,写明文件创建时间、作者、用途概述等
    例如:

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

    //新增日期:2004.7.19

    //作者:XXX

    //內容说明: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    函数过程注释
    所有的函数体开头都要加上注释,所以注释使用.NET注释规范。
    例如:

    ///

    /// 构造函数

    ///

    ///示例参数1

    ///示例参数2

    public UpgradeThread(string is_xxx1, string is_xxx2)

    {

    //…
    }

    常量变量注释
    所有的常量变量,无论是全局还是局部使用的,凡是对代码整体起到关键性做用的都需要加上注释。
    例如:

    ///

    /// 当前线程指向的备份文件本地保存路径

    ///

    public string StorePath = '';

    代码修改注释
    当开发者维护以前的程序代码时,需要在修改处的开始及结尾,加上自己的注释信息。
    例如:

    //BEGIN 2004-7-19 Jayson 修正了XXX问题
    略…
    //END 2004-7-19 Jayson



    PHP中的命名规则


    类的命名

    在为类(class )命名前首先要知道它是什么。如果通过类名的提供的线索,还是想不起这个类是什么的话,那么就说明设计存在问题。
    超过三个词组成的混合名是容易造成系统各个实体间的混淆,尝试使用(CRC Se- ssion card)看看该命名所对应的实体是否有着那么多的功用。
    对于派生类的命名应该避免带其父类名的诱惑,一个类的名字只与它自身有关,和它的父类叫什么无关。
    使用大写字母作为词的分隔,其他的字母均使用小写,名字的首字母使用大写 。不要使用下划线('_') 。
    例如:class NameOneTwo
    class Name

    类库的命名

    目前命名空间正在越来越广泛的被采用,以避免不同厂商和团体类库间的类名冲突。当尚未采用命名空间的时候,为了避免类名冲突,一般的做法是在类名前加上独特的前缀,两个字符就可以了,当然多用一些会更好。
    例如:John Johnson的数据结构类库可以用Jj做为前缀,如下:
    class JjLinkList
    {
    }

    方法的命名

    采用与类命名一致的规则,同样是使用英文单词诠释出方法的作用。
    例如:class NameOneTwo
    {
    function DoIt() {};
    function HandleError() {};
    }

    类属性的命名

    属性命名应该以字符‘m’为前缀。前缀‘m’后采用于类命名一致的规则。‘m’总是在名字的开头起修饰作用,就像以‘r’开头表示引用一样。
    前缀'm'防止类属性和方法名发生任何冲突。你的方法名和属性名经常会很类似,特别是存取元素。
    例如:class NameOneTwo
    {
    function VarAbc() {};
    function ErrorNumber() {};
    var mVarAbc;
    var mErrorNumber;
    var mrName;
    }

    方法中参数的命名

    第一个字符使用小写字母。在首字符后的所有字都按照类命名规则首字符大写。
    这样做可以随时知道哪个变量对应哪个变量。另外,这样做可以使用与类名相似的名称而不至于产生重名冲突。
    例如:class NameOneTwo
    {
    function StartYourEngines(
    &$rSomeEngine,
    &$rAnotherEngine);
    }

    变量的命名

    所有字母都使用小写。使用'_'作为每个词的分界
    通过这一途径,代码中变量的作用域是清晰的。所有的变量在代码中都看起来不同,容易辨认。
    例如:function HandleError($errorNumber)
    {
    $error = OsErr();
    $time_of_error = OsErr->getTimeOfError;
    $error_processor = OsErr->getErrorProcessor;
    }

    全局变量的命名

    全局变量应该带前缀‘g’。
    知道一个变量的作用域是非常重要的。
    例如:global $gLog;
    global &$grLog;

    函数的命名

    函数名字采用C GNU的惯例,所有的字母使用小写字母,使用'_'分割单词。
    这样可以更易于区分相关联的类名。
    例如:function some_bloody_function()
    {
    }



    NoahWeb中的命名规则

    NoahWeb汲取了各种编程语言的精华,经过反复的总结,最终形成了一套独特且高效的命名规则。在命名的过程中,使用“资源名称+功能描述”的方式,保证了资源之间的唯一性,并且大大提高了资源的描述性和阅读性。

    页面或动作传值命名规则

    应用 规则 示范
    传递id使用 pointid abc.aspx?pointid=123
    传递name使用 pointname abc.aspx?pointname=xxx
    搜索关键词 keyword abc.aspx?keyword=xxx
    当前页索引 page abc.aspx?page=1

    字符资源命名规则

    应用 规则 示范
    针对表的列表命名 list_表名[_功能名] list_user_view
    手写数据库操作集 sql_[表名或功能名] sql_user_search

    表单命名规则

    应用 规则 示范
    表单id命名 表名+功能 userLogin
    输入区控件id命名 form+对应数据库的列名 formId;formname

    数据库操作命名规则

    应用 规则 示范
    查询 表名_S_条件+功能说明 user_S_ById
    user_S_ByName
    user_S_Pagelist
    user_S_ByNamePagelist
    user_S_ByNameSearch
    user_S_ByIdTopTen
    user_S_ByDateTopTen
    user_S_ByDateTopFive
    user_S_ByDateTopSet
    删除 表名_D_条件+功能说明 user_D_ById
    插入 表名_I_+功能说明 user_I_NewData
    更新 表名_U_条件+功能说明 user_U_ByIdChangePassword

    动作命名规则

    应用 规则 示范
    动作命名

    表名+所属功能+操作方式


    add:添加输入区显示
    add_ex:添加执行
    list:列表显示内容
    search:搜索
    viewinfo:显示详细信息
    update_ex:更新执行
    del: 删除执行
    )
    user_manager_add
    user_manager_add_ex
    user_manager_list
    user_manager_search
    user_manager_viewInfo
    user_manager_update_ex
    user_manager_del

    文件上传命名规则

    应用 规则 示范
    表单文件上传区命名规则 myfile+编号 myfile1
    myfile2
    myfile3

    cookie命名规则

    应用 规则 示范
    变量名命名 cookie+变量名 cookieusername




    网站文件命名规则

    关于文件的命名,看似无足重轻,但实际上如果没有良好的命名规则进行必要的约束,一味的乱起名称,最终导致的结果就是整个网站或是文件夹无法管理。所以,命名规则在这里同样非常重要。 需要特别注意的时候,网站文件或文件夹命名请尽量避免使用中文字符命名。

    文件的命名

    以最少的字母达到最容易理解的意义。
    索引文件统一使用index.html文件名(小写) index.html文件统一作为"桥页",不制作具体内容,仅仅作为跳转页和meta标签页。主内容页为main.html。
    按菜单名的英语翻译取单一单词为名称。所有单英文单词文件名都必须为小写,所有组合英文单词文件名第二个起第一个字母大写; 所有文件名字母间连线都为下划线。
    例如:关于我们 aboutus
    信息反馈 feedback
    产  品 product

    图片的命名

    以图片英语字母为名。以最少的字母达到最容易理解的意义。
    对于较小的图片,我们使用如下格式的命名 :
    sm.kahn.gif
    其中,sm 代表“small”,kahn 代表图片的内容。较大图像的命名规则也一样,不过是以 bg 开头的:
    bg.kahn.gif
    用以区分不同图像的命名规则应当是全站通用的,这样可以尽量避免将不同的名称搅混。

    网站目录的命名

    目录建立的原则是以最少的层次提供最清晰简便的访问结构。
    服务器的ftp上传目录默认为html 根目录文件 根目录只允许存放index.html和main.html文件,以及其他必须的系统文件。
    每个语言版本存放于独立的目录。已有版本语言设置为: 简体中文 gb 繁体中文 big5 英 语 en 日 语 jp 每个主要功能(主菜单)建立一个相应的独立目录。 根目录下的images为存放公用图片目录,每个目录下私有图片存放于各自独立images目录.
    例如:menu1images
    menu2images
    另外,所有的js文件存放在根目录下统一目录script 所有的CSS文件存放在根目录下的style目录 所有的CGI程序存放在根目录并列目录cgi_bin目录。
    对于一些信息更新量比较大的站点或是栏目,还可以采用一种更为特殊的方式来进行文件架的命名,这样能使得日后的维护更加方便,这样的方式就是使用“单一单词命名的目录”+“年年年年_月月_日日”的方式命名,最后的“日日”是根据更新量大小可选择的,如果每日更新量很大则可以加上“日日”。
    例如:news2005_08
    news2005_09
    news2005_10_12



    Dreamweaver文件的命名规则

    在Dreamweaver中用户可以对一系列不同类型的对象进行命名,这些对象包括图片、层、表单、文件、数据库域等,这些对象将会被许多不同的工作引擎进行分析处理,这些工具包括各种浏览器、JavaScript脚本解析器、网络服务器、应用程序服务器、查询语言等等。
    如果某个对象的名称无法被某个解析器识别,就有可能会导致故障的发生,更加麻烦的是用户可能很难发现问题的原因,例如某个具体的特效无法正确显示,或者是在某个特殊阶段无法正确显示,有时故障可能只会在某种特殊情况或在使用某个浏览器时发生,而在其它情况下保持正常,用户将很难分析出故障是由于命名问题而导致的。
    由于需要命名的对象的种类很多,对这些对象进行解析的引擎工具也很多,因此用户在给这些对象命名时应该遵循一个常规的标准,以确保普遍兼容性。命名的基本原则就是:使用独一无二的、小写、不带空格的名称,名称应由字母和数字组成,并以字母开始,名称中可以包含"_"符号。

    独一无二

    请确保某对象的名称与其它对象不同,保证其独一无二的属性。
    例如:你可以将某对象命名为"feedback_button_3"

    小写

    有些服务器和脚本解析器对文件名的大小写也进行检查,而为了避免因大小写引起的不兼容问题,建议用户在命名时全部使用小写文件名。

    不带空格

    不同的解析器对空格等符号的解析结果不同,例如某些解析器会把空格视为某个十六进制的数值,因此建议用户使用不带空格的单词做为文件对象的名称。

    词数混合

    用户在命名中可以随意使用26个罗马字母以及10个阿拉伯数字,而不建议使用其它标点符号。

    以字母开始

    有些解析器不喜欢以数字开头的文件名。
    例如:在某些浏览器中的JavaScript脚本内部,如果使用"alpha23"这样的名称就不会出现问题,而如果使用"23alpha"这样的名称就可能会发生故障。

    可包含"_"符号

    为了使某个对象的文件名独一无二,用户可以通过使用"_"符号来更加详细地描述文件名。
    例如:某对象的文件名可以是"jd_background_17"。
    除了上述原则标准之外,我们还需要注意一些其它情况,如文件名与系统的冲突。某些文件名可能满足上述标准,但可能还会导致故障的发生,原因是因为它们与系统产生了冲突。
    例如:当在使用JavaScript脚本函数时,不建议用户将某个变量命名为"for",因为"for"在本系统下是一个工作语言字串,使用其命名某个变量可能会导致解析器工作出错。许多程序都有一些保留名称,这些名称一般不建议用户使用。
    例如:用户使用某个SQL程序保留的名称来命名某个数据库域,SQL对其进行分析时就可能会报错。
    此外,用户在将不同来源的代码编到一起时,应该注意文件名的冲突情况。
    例如:用户把来自不同资源的两个JavaScript行为代码编至同一网页内,而这两个行为代码的变量名相同,这时就有可能出现问题。
    因此做为查询故障的一个技巧,在出现故障时,用户可以查询一下相同网页中是否存在相同文件名的变量名称。




    VBScript中的命名规则

    常数命名规则

    VBScript 的早期版本不允许创建用户自定义常数。如果要使用常数,则常数以变量的方式实现,且全部字母大写以和其他变量区分。常数名中的多个单词用下划线 (_) 分隔。
    例如: USER_LIST_MAX 、NEW_LINE

    这种标识常数的方法依旧可行,但您还可以选择其他方案,用 Const 语句创建真正的常数。这个约定使用大小写混合的格式,并以con”作为常数名的前缀。
    例如: conYourOwnConstant

    变量命名规则

    出于易读和一致性的目的,请在 VBScript 代码中使用以下变量命名约定:

    子类型 前缀 示例
    Boolean bln blnFound
    Byte byt bytRasterData
    Date (Time) dtm dtmStart
    Double dbl dblTolerance
    Error err errOrderNum
    Integer int intQuantity
    Long lng lngDistance
    Object obj objCurrent
    Single sng sngAverage
    String str strFirstName

    变量作用域命名规则

    变量应定义在尽量小的作用域中。VBScript 变量的作用域如下所示:

    作用域 声明变量处 可见性
    过程级 事件、函数或子过程 在声明变量的过程中可见
    Script 级 HTML页面的HEAD部分,任何过程之外 在脚本的所有过程中可见

    变量作用域前缀命名规则


    随着脚本代码长度的增加,有必要快速区分变量的作用域。在类型前缀前面添加一个单字符前缀可以实现这一点,而不致使变量名过长。

    作用域 前缀 示例
    过程级 dblVelocity
    Script 级 s sblnCalcInProgress

    描述性变量名和过程名的命名规则

    变量名或过程名的主体应使用大小写混合格式,并且尽量完整地描述其目的。另外,过程名应以动词开始,例如 InitNameArray 或 CloseDialog。

    对于经常使用的或较长的名称,推荐使用标准缩写以使名称保持在适当的长度内。通常多于 32 个字符的变量名会变得难以阅读。使用缩写时,应确保在整个脚本中保持一致。例如,在一个脚本或脚本集中随意切换 Cnt 和 Count 将造成混乱。

    对象命名规则

    下表列出了 VBScript 中可能用到的对象命名约定(推荐):

    对象类型 前缀 示例
    3D 面板 pnl pnlGroup
    动画按钮 ani aniMailBox
    复选框 chk chkReadOnly
    组合框、下拉列表框 cbo cboEnglish
    命令按钮 cmd cmdExit
    公共对话框 dlg dlgFileOpen
    框架 fra fraLanguage
    水平滚动条 hsb hsbVolume
    图像 img imgIcon
    标签 lbl lblHelpMessage
    直线 lin linVertical
    列表框 lst lstPolicyCodes
    旋钮 spn spnPages
    文本框 txt txtLastName
    垂直滚动条 vsb vsbRate
    滑块 sld sldScale


    代码注释规则

    所有过程的开始部分都应有描述其功能的简要注释。这些注释并不描述细节信息(如何实现功能),这是因为细节有时要频繁更改。这样就可以避免不必要的注释维护工作以及错误的注释。细节信息由代码本身及必要的内部注释来描述。

    当传递给过程的参数的用途不明显,或过程对参数的取值范围有要求时,应加以说明。如果过程改变了函数和变量的返回值(特别是通过参数引用来改变),也应在过程的开始部分描述该返回值。

    过程开始部分的注释应包含以下区段标题。相关样例,请参阅后面的“格式化代码”部分。

    区段标题 注释内容
    目的 过程的功能(不是实现功能的方法)。
    假设 其状态影响此过程的外部变量、控件或其他元素的列表。
    效果 过程对每个外部变量、控件或其他元素的影响效果的列表。
    输入 每个目的不明显的参数的解释。每个参数都应占据单独一行并有其内部注释。
    返回 返回值的解释。

    请记住以下几点:

      • 每个重要的变量声明都应有内部注释,描述变量的用途。
      • 应清楚地命名变量、控件和过程,仅在说明复杂细节时需要内部注释。
      • 应在脚本的开始部分包含描述该脚本的概述,列举对象、过程、运算法则、对话框和其他系统从属物。有时一段描述运算法则的假码是很有用的。

    格式化代码

    应尽可能多地保留屏幕空间,但仍允许用代码格式反映逻辑结构和嵌套。以下为几点提示:

      • 标准嵌套块应缩进 4 个空格。
      • 过程的概述注释应缩进 1 个空格。
      • 概述注释后的最高层语句应缩进 4 个空格,每一层嵌套块再缩进 4 个空格。例如:
      '********************************************************* ' 目的: 返回指定用户在 UserList 数组中第一次出现的位置。 ' 输入: strUserList(): 所查找的用户列表。 ' strTargetUser: 要查找的用户名。 ' 返回: strTargetUser 在 strUserList 数组中第一次出现时的索引。 ' 如果目标用户未找到,返回 -1。 '*********************************************************


      Function intFindUser (strUserList(), strTargetUser) Dim i ' 循环计数器。 Dim blnFound ' 发现目标的标记。 intFindUser = -1 i = 0 ' 初始化循环计数器。 Do While i <= Ubound(strUserList) and Not blnFound If strUserList(i) = strTargetUser Then blnFound = True ' 标记设为 True。 intFindUser = i ' 返回值设为循环计数器。 End If i = i + 1 ' 循环计数器加 1。 Loop End Function




    CSS类及id中的命名规则

    Web开发人员可以通过创建CSS类及id名称并使用这些名称来对divs以及其他的格式页面元素进行标识。对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智。然而随心所欲的为这些类以及id命名则并不是个好的习惯。

    直观命名

    当在设计Web页面以及需要对一个div进行标识的时候,最自然的想法就是使用可以描述元素所在页面位置的词汇来对其命名。
    例如:top-panel
    horizontal-nav
    left-side
    center-column
    right-col

    这些是CSS以及XHTML类和id的有效命名方式。这些词汇简单并且能够使人顾名思义,因此满足了标识页面元素以及相应的CSS样式的需要。

    但问题是这样的名称同页面内容的特定表达方式相关联。这些命名参考了某种特定页面布局中的页面元素位置,因此在这样的布局之外使用就会显得不合适甚至造成理解混乱。这些命名没有涉及文档内容的结构。因此,下面给出了对CSS类以及ID命名更好的方法。

    结构化命名


    这些是CSS以及XHTML类和id的有效命名方式。这些词汇简单并且能够使人顾名思义,因此满足了标识页面元素以及相应的CSS样式的需要。 这些是CSS以及XHTML类和id的有效命名方式。这些词汇简单并且能够使人顾名思义,因此满足了标识页面元素以及相应的CSS样式的需要。

    有标记的相关信息都是用来描述文档的结构而不是外观。这样的特点使得我们可以通过简单的改变CSS的方式来对不同外观格式下的内容(content)以及标记(markup)进行重用。当你理解这种方式时,很容易就可以发现采用页面位置来为类以及id命名的方式在处理如音频(audio)等外观格式上显得非常不合适。因此,应当根据在文档中的使用目的而非出现位置来对类以及id进行结构化命名。

    可以按照如下所示的结构化方式来对类以及id名称命名:
    例如:branding
    main-nav
    subnav
    main-content
    sidebar

    这些名字同直观命名方式一样非常易懂,但他们描述了页面元素的作用而非位置。这使得代码更加符合使用纯粹的结构化标记(structural markup)的初衷,即开发人员可以在不改变标记的情况下对各种各样媒体下的显示格式进行处理。

    即使你不打算在其他的媒体上对Web页面进行格式修改,使用结构化命名方式还可以帮助你在日后的站点升级或重新设计中更为轻松。例如,结构化命名避免了当一个div同id right-column移动到页面左边后所带来的混乱。对div sidebar的采用这样的命名方式就显得更加适当,因为无论它出现在页面的哪一边,这个名字仍然对开发人员来说直观易懂。

    惯例


    Andy Clarke分析了40份由推崇标准化Web设计理念的开发人员所设计的Web站点的源代码。尽管类以及id名称很不统一,但是还是发现了一些频繁出现的常用名称。这里给出了最常用类/id名称的示例列表:

    例如:header
    content
    nav
    sidebar
    footer




    数据库中的命名规则

    数据库 - 表命名  

    表名用T_开头,表名长度不能超过30个字符,表名中含有单词全部采用单数形式,单词首字母要大写。  
    多个单词间用下划线(_)进行连接。若库中有多个系统,表名采用系统名称+单词或多个单词,系统名是开发系统的缩写,如VNET。  
    表中含有的单词建议用完整的单词。如果导致表名长度超过30个字符,则从最后一个单词开始,依次向前采用该单词的缩写。(如果没有约定的缩写,则采用该单词前4个字母来表示)。
    示例:T_Sys_User、T_User

    数据库 - 字段命名  

    以小写f开头[注:field-字段英文],采用Camel 大小写命名字;字段长度不能超过30个字符。  
    示例:fUserName
    注:自增主键命名为id

    数据库 - 视图命名  

    视图名用V_开头,视图名长度不能超过30个字符。视图名用大写的英文单词来表示。 
    视图由几个表产生就用下划线(_)连接几个表的名,如果表过多可以将表名适当简化,取表名前3个字母如Use,但一定要列出所有表名。
    示例:V_Sys_Use_Ead、V_Sys_User、V_Use_Ead

    数据库 - 序列命名  

    序列名用seq_开头,后面跟使用该序列的字段名。  
    如果有几个字段用同一个序列,用下划线(_)连接几个字段的名称。  
    如果不同表中相同的字段名需要使用不同的序列,则在字段名后加表的特征,用下划线(_)连接。序列名长度不能超过30个字符。序列名用小写的英文单词来表示。

    数据库 - 存贮过程命名  

    存储过程名用Pr_开头,存储过程名长度不能超过30个字符。存储过程名用小写的英文单词来表示。

    数据库 - 函数命名  

    函数名用Fu_开头,函数名长度不能超过30个字符。函数名用小写的英文单词来表示。

    数据库 - 触发器命名  

    触发器名用Tr_开头,触发器名长度不能超过30个字符。触发器名用小写的英文单词来表示。

    数据库 - 主键命名  

    主键名用pk_开头,后面跟该主键所在的表名。主键名长度不能超过30个字符。如果过长,可对表名进行缩写。缩写规则同表名的缩写规则。主键名用小写的英文单词来表示。
    展开全文
  • JAVA命名规范性总结

    万次阅读 2018-06-12 15:58:50
    一:命名规范1、项目名全部小写2、包名全部小写 在新建一个包项目时可能会涉及到多层设计,每层的包名要遵循包名全部小写的规范,如图在一个功能的逐层上级的包名全部是小写和字符组成 3、类名的命名要遵循首字母...

    一:命名规范

    1、项目名全部小写

    2、包名全部小写

        在新建一个包项目时可能会涉及到多层设计,每层的包名要遵循包名全部小写的规范,如图在一个功能的逐层上级的包名全部是小写和字符组成

     

    3、类名的命名要遵循首字母大写原则,类的名字必须由大写字母开头而单词中的其他字母均为小写;如果一个类名称是由多个单词组成,则每个单词的首字母均应为大写例如ModelWhAction;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。  

    4、变量的命名要遵循通俗易懂的原则,比如名字就用 name ,而不是用a、b、c这样的命名。变量命名除了变量名外,实例,包括类、类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。但是在工作中这样做会降低代码的可阅读性,在工作上这是不规范的。

    5、方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。

    6、需要用到的变量命名和方法命名要遵循首字母小写原则,如果名称是由多个单词组成,每个单词的首字母都要大写(除首个单词)。

       如:public void toString(){}

    7、使用驼峰命名法命名多个单词组成的变量名。 

    如:modelFacade

    8、常量命名时需要遵循名称全部大写的原则。

    如:public staticfinal long BSDY_SHZT_SHZ = 2; // 审核中

    9、所有命名规则必须遵循以下规则:

        1)、名称只能由字母、数字、下划线、$符号组成

        2)、命名时不能以数字开头

        3)、在命名是绝对不能出现Java关键字。

        4)、绝对不允许在命名时出现中文及拼音命名。

    类的命名

    二:感受

    自己在写功能时多出命名发生错误,对于方法,类,变量等的命令了解不够透彻,没有能够完全转变自己对于命名的理解,没能及时改正自己的错误的命名方法,多处命名不符合公司项目要求规范。自己在下面也没有充分的去学习公司关于命名的相关规范,导致项目多处的命名不规范。在项目完成后没能够及时和细心检查功能的命名,对于错误的命名方法没有能够及时处理。这都是自己的粗心大意导致的,让提交之后的项目文件发生错误和报错。


    展开全文
  • Java命名规范1、变量、方法名:首字母小写+驼峰原则private int myWeek;public void testName(){} 2、常量:大写字母+下划线private final int MAX_VALUE;3、类名:首字母大写+驼峰原则 class MyClass{}

    Java命名规范

    1、变量、方法名:首字母小写+驼峰原则

    private int myWeek;
    
    public void testName(){
    
    }
    

    2、常量:大写字母+下划线

    private final int MAX_VALUE;

    3、类名:首字母大写+驼峰原则

    
    class MyClass{
    
    }
    
    展开全文
  • 常见代码命名规则

    万次阅读 2018-08-20 11:50:00
    几种常见的程序命名规则 正确并形象地给函数、变量命名,不仅可以增加程序的可读性,也是程序员编程风格的一种反映。较好的命名习惯,可以有效的提高程序的可维护性。以下介绍几种常用的变量命名规则。 一、匈牙利...

    几种常见的程序命名规则
    正确并形象地给函数、变量命名,不仅可以增加程序的可读性,也是程序员编程风格的一种反映。较好的命名习惯,可以有效的提高程序的可维护性。以下介绍几种常用的变量命名规则。
    一、匈牙利命名法:广泛应用于Microsoft Windows这类环境中。
    这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成 员变 量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
    匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
    例如:bEnable, nLength, hWnd。
    匈牙利命名法中常用的小写字母的前缀:

    属性部分:
    g_ 全局变量
    c_  常量
    m_  c++类成员变量
    s_  静态变量
    类型部分:
    数组 a
    指针 p
    函数 fn
    无效 v
    句柄 h
    长整型 l
    布尔 b
    浮点型(有时也指文件) f
    双字  dw
    字符串  sz
    短整型  n
    双精度浮点 d
    计数 c(通常用cnt)
    字符 ch(通常用c)
    整型 i(通常用n)
    字节 by
    字 w
    实型 r
    无符号 u
    描述部分:
    最大 Max
    最小 Min
    初始化 Init
    临时变量 T(或Temp)
    源对象 Src
    目的对象 Dest

    二、驼峰命名法:近年来越来越流行。
    驼峰命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。
    例如:
    printEmployeePaychecks();
    函数名中每一个逻辑断点都有一个大写字母来标记。

    三、帕斯卡(Pascal)命名法:与驼峰命名法类似。
    只不过驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。因此这种命名法也有人称之为“大驼峰命名法”。
    例如:
    DisplayInfo();
    UserName
    都是采用了帕斯卡命名法。
    在C#中,以帕斯卡命名法和骆驼命名法居多。
    事实上,很多程序设计者在实际命名时会将驼峰命名法和帕斯卡结合使用,例如变量名采用驼峰命名法,而函数采用帕斯卡命名法。

    四、下划线命名法。
    下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。
    4.1 函数的命名
    函数名使用下划线分割小写字母的方式命名:
    设备名_操作名();

    操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语 宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式,如:
    tic_init();
    adc_is_busy();
    uart_tx_char();

    中断函数的命名直接使用 设备名_isr() 的形式命名,如:
    timer2_isr();

    4.2 变量的命名
    变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。如:
    int length;
    uint32 test_offset;

    单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。tmp常用做临时变量名。
    局部静态变量,应加s_词冠(表示static),如:
    static int s_lastw;

    全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:
    void (* g_capture_hook)(void);

    4.3 常量及宏的命名
    采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,
    防止模块间命名的重复。如:

    #define TIMER0_MODE_RELOAD 2
    #define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

    当然,看作接口的宏可以按照函数的命名方法命名,例如:

    #define timer2_clear() (TF2 = 0)
    #define timer0_is_expired() (TF0)

    据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。

    展开全文
  • 在开发中,我们需要给变量,常量,函数,类起名字,什么样的名字才是合乎规范的呢,下面我们将介绍三种常用编程命名规范 匈牙利命名法 驼峰式命名法 帕斯卡命名法 匈牙利命名 开头字母用变量类型的缩写,其余部分...
  • APP、软件版本号的命名规范与原则

    千次阅读 2019-08-22 11:25:35
    为了在软件产品生命周期中更好的沟通和标记,我们应该对APP、软件的版本号命名规范和原则有一定的了解。 1、APP、软件的版本阶段 Alpha版:也叫α版,此版本主要是以实现软件功能为主,通常只在软件开发者...
  • HTML命名规范说明

    2019-08-01 12:10:46
    一、命名规则说明: - TOP 1)、所有的命名最好都小写 2)、属性的值一定要用双引号("")括起来,且一定要有值如class="divcss5",id="divcss5" 3)、每个标签都要有开始和结束,且要有正确的层次,排版有规律工整 ...
  • .net 代码命名规范

    2019-03-05 13:36:37
    CAST 源代码命名规范手册 v1.1 Pascal 命名:每一个单词首字母必须大写 Camel 命名:第一个单词首字母小写,其余单词首字母必须大写。 任何命名必须优先使用英文单词表达意思,若不是国际公认单词,禁止使用单词...
  • 关于Html class id 命名规范

    千次阅读 2018-11-15 09:27:54
    CSS命名规则  头:header  内容:content/containe  尾:footer  导航:nav  侧栏:sidebar  栏目:column  页面外围控制整体布局宽度:wrapper  左右中:left right center  登录条:loginbar ...
  • 版本命名规范

    千次阅读 2018-06-15 16:45:24
    1.版本命名规范软件版本号有四部分组成,第一部分为主版本号,第二部分为次版本号,第三部分为修订版本号,第四部分为日期版本号加希腊字母版本号,希腊字母版本号共有五种,分别为base、alpha、beta 、RC 、 ...
  • C命名规则

    千次阅读 2018-06-14 14:30:47
    在32 位的系统上short 咔出来的内存大小是2 个byte;int 咔出来的内存大小是4 个byte;...(注意这里指一般情况,可能不同的平台还会有所不同,具体平台可以用sizeof 关键字测试一下)二、变量的命名规则...
  • IdentifierTest.java /* 1、在java程序当中,使用editplus工具进行代码编写的时候, 有一些单词是蓝色,有的是红色,有的是绿色,有的是黑色, ... 4、标识符:凡是程序员自己有权利命名的单词都是标识
  • 一、Java标识符的命名规则 1、Java中的标识符只能使用字母大小写、数字0-9、美元符号$、下划线_ ...二、Java标识符的命名规范(不强制,但不遵守会被鄙视!) 1、见名知意 让项目组的其他成员一看就知道这个是什么...
  • Redis中key的命名规范和值的命名规范

    万次阅读 2020-08-17 13:11:19
    数据库中得热点数据key命名惯例 表名:主键名:主键值:字段名 例如 user:id:0001:name 例如 user:id:0002:name 例如 order:id:s2002:price 上面的key对应的值则可以是 存放的方式 key value 优点 ...
  • CSS命名规范(规则)常用的CSS命名规则 CSS命名规范(规则)常用的CSS命名规则 头:header 内容:content/container 尾:foot...
  • 变量的命名规则命名规范 规则:(必须遵守的,不遵守就是错) 1.一个变量名称可以由数字、字母、下划线、美元符号($) 组成 2.严格区分大小写 3.不能由数字开头,不要使用中文汉字命名 4.不能是保留字或者关键字...
  • Java:类名的命名规则

    万次阅读 2018-08-23 17:07:33
    Java 中定义类名的规则很宽松。名字必须以字母开头,后面可以跟字母和数字的任意组合。 长度基本上没有限制。但是不能使用 Java 保留字(例如,public 或 class)作为类名。 Java 保留字请参看下面的文章。 Java ...
  • Java包(package)的命名规范,java中package命名规则

    万次阅读 多人点赞 2015-04-29 14:02:01
    Java的包名都有小写单词组成,类名首字母大写;... 由于Java面向对象的特性,每名Java开发人员都可以编写属于自己的Java Package,为了保障每个Java Package命名的唯一性,在最新的Java编程规范中,要求开发
  • 命名规范】图片命名规则

    千次阅读 2016-08-17 09:33:52
    图片命名 1、主要资源放在drawable和drawable-hdpi。优先放在drawable中,如果对图片要求精细,放在drawable高分辨率下模糊,则放到drawable-hdpi里。一般drawable和drawable-hdpi两个文件夹放一...3、命名规则,分
  • 变量的命名规则命名规范 规则:(必须遵守的,不遵守就是错) 1.一个变量名称可以由数字、字母、下划线、美元符号($) 组成 2.严格区分大小写 3.不能由数字开头,不要使用中文汉字命名 4.不能是保留字或者关键字 5....

空空如也

1 2 3 4 5 ... 20
收藏数 603,794
精华内容 241,517
关键字:

命名规范