各种B/S语言下常见命名规范

C#中常见的WinForm控件命名规范 前言 我们知道Button 常常简称为btn,那么Winform中的其它控件呢,这篇文章在C#的winform控件命名规范 的基础上对一些控件的名称的简称进行了整理。 1. 基本控件 说明: NO. 控件类型 简写 Button btn CheckBox chk CheckedListBox ckl ComboBox cmb DateTimePicker dtp Label... 阅读详情

各种B/S语言下常见命名规范

2006.07.04    


编者按:良好的命名规范可以为团队合作开发推波助澜,无论在项目开发,还是产品维护上都起到了至关重要的作用。应该说命名规范是一种约定,也是程序员之间良好沟通的桥梁。另外古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力量。只要给事物想到正确的名字,它就可以带来比代码更强的力量。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推想也能在意料之中。
  在本期的月刊中,我们将围绕着“命名规则”这个主题展开讨论。收集各种B/S语言下常见命名规范,希望对各位开发能有所帮助。

 

  段落导航:
   为了方便大家的阅读,我们将本期内容进行了合理的分类,您可以使用下面的链接浏览您感兴趣的主题。  
Java中的命名规则
NET中的命名规则
PHP中的命名规则
NoahWeb中的命名规范
网站文件命名规则
Dreamweaver文件的命名规则
VBScript编码约定
CSS类及id的规范化命名
数据库命名及设计规范
  

 

 

Java中的命名规则

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

包的命名 

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

类的命名

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

方法的命名

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

常量的命名

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

参数的命名

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

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 {}

变量的命名

  名称中各单词首字母均为大写。
  例如:FindLastRecord
      RedrawMyForm
  在内部范围中避免使用与外部范围中的名称相同的名称。若访问错误变量,则会产生错误结果。若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。
  例如:若有一个名为 date 的变量,只能通过调用 System.Date 来使用内部 Date 函数。

函数和方法的命名

  函数和方法的命名应该以动词开始,使用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);
  命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx//AfterXxx的方式)。例如,可以被取消的结束事件就有Closing事件和Closed事件。

长项和常用项的命名

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

代码书写格式规范
文件之中不得存在无规则的空行,比如说连续十个空行。一般来讲函数与函数之间的空行为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注释规范。
  例如:

/// <summary>


/// 构造函数


/// </summary>


/// <param name='is_xxx1'>示例参数1</param>


/// <param name='is_xxx2'>示例参数2</param>


public UpgradeThread(string is_xxx1, string is_xxx2)


{


//…


}


  常量变量注释

 

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

  例如:

/// <summary>


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


/// </summary>


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目录.
  例如: /menu1/images
      /menu2/images
  另外,所有的js文件存放在根目录下统一目录/script 所有的CSS文件存放在根目录下的style目录 所有的CGI程序存放在根目录并列目录/cgi_bin目录。
  对于一些信息更新量比较大的站点或是栏目,还可以采用一种更为特殊的方式来进行文件架的命名,这样能使得日后的维护更加方便,这样的方式就是使用“单一单词命名的目录”+“年年年年_月月_日日”的方式命名,最后的“日日”是根据更新量大小可选择的,如果每日更新量很大则可以加上“日日”。
  例如: /news/2005_08/
      /news/2005_09/
      /news/2005_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

返回导航  

 


数据库中的命名规则

数据库涉及字符规则


  采用26个英文字母(区分大小写)和0 -9这十个自然数,加上下划线_组成,共63个字符。不能出现其他字符(注释除外)。

据库对象命名规则


  数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。前缀:使用小写字母。

  例如:表 tb
视图 vi
存储过程 sp
函数 fn

 

实际名字


  实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。
  例如:表 User_Info
视图 UserList
存储过程 UserDelete

 

  因此,合法的对象名字类似如下。表 tbUser_Info、tbMessage_Detail
视图 vi_MessageList
存储过程 sp_MessageAdd

 

数据库表命名规则


  字段由前缀和实际名字组成。实际名字中首单词一个系统尽量采取同一单词。
  前缀:使用小写字母tb,表示表。
  例如:tbMember
     tbMember_Info
     tbForum_Board
     tbForum_Thread1


字段命名规则

  数字、字符、日期/时间、lob(大对象)、杂项,字段由表的简称、下划线,实际名字加后缀组成。
  后缀:使用小写字母,代表该字段的属性。
   例如:  User_Idint
       User_Namestr
       User_RegDatedtm


视图命名规则


    字段由前缀和实际名字组成,中间用下划线连接。
    前缀:使用小写字母vi,表示视图。
    例如:vi_User
       vi_UserInfo

存储过程命名规则


    字段由前缀和实际名字组成,中间用下划线连接。
    前缀:使用小写字母sp,表示存储过程。
    例如:sp_User

数据库设计文档规则


  所有数据库设计要写成文档,文档以模块化形式表达。大致格式如下:
  '-------------------------------------------
  '  表名:  tbUser_Info  
  '  建立人:UAM_Richard
  '  日期:  2004-12-17
  '  版本:  1.0
  '  描述:  保存用户资料
  '  具体内容:
  '  UserId  int,自动增量  用户代码
  '  UserName  char(12)  用户名字
  '  ......
  '--------------------------------------------

sql语句规则


  所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,BY等。
 

返回导航  

 

后记:

  良好的命名对于软件开发起着至关重要的作用,能够对资源进行合理的命名,可以达到事半功倍的效果。无论是哪种命名规则,无论是对哪种资源进行命名,其核心思想都是“用最少的字母进行最全面的描述”。正如本文开始时强调的,“唯一性+描述性”是命名的灵魂。所以,在您对程序的各个方面进行命名的时候,不妨去参照着这两大原则去进行,切记不可图一时之快,却为日后的修改或维护带来巨大的困难。 

SqlServer 命名规范 SqlServer 命名规范 下面我给大家讲的是数据库的命名规范,每一种数据库都会有其命名的规范。如果规范了,那么思绪就清晰的多了。就比如mySqlServer命名规范和SqlServer的命名规范,刚开始我觉得这两个应该差不多吧?毕竟名字都有点像,但是不是的,虽然只相差一个my字,但是命名规范也是不同的,mySqlServer命名规范是大驼峰写法,而且字段的用下划线来隔开,而SqlServer呢,则不一样,刚刚相反。它是小驼峰写法。而且字段不能有下划线。而且空的字符串所代表的也是不一样的。 下面来说一下它 阅读详情

相关推荐

U4000指纹仪B/S架构开发包实战解析

U4000指纹识别设备是一款高性能生物识别终端,广泛应用于企业级身份验证系统。其核心硬件包括光学传感器与图像处理芯片,支持高精度指纹采集与快速特征匹配。设备采用USB接口与主机通信,在B/S架构中可通过浏览器插件实现跨平台访问。在企业身份认证场景中,U4000支持与Web服务端的高效交互,适用于考勤、门禁、安全登录等应用场景。其优势在于识别速度快、误识率低、支持多用户并发处理,为系统开发提供稳定可靠的硬件基础。ZKonlineSDK 提供了丰富的接口,用于实现指纹采集、特征提取、比对等核心功能。

weixin_32921023的博客 866

css命名为何不推荐使用下划线

导语:最近在做个人项目将代码上传到华为云时,系统检查代码时报错,描述说我的css选择器命名不规范,如图: 那为什么css样式不推荐使用下划线命名呢? 首先我们先从它的规范讲起 W3C规范 W3C CSS2.1的 4.1.3 节中提到:标识符(包括选择器中的元素名,类和ID)只能包含字符[a- zA-Z0-9]和ISO 10646字符编码U+00A1及以上,再加连字号(-)和下划线(_);它们不能以 数字,或一个连字号后跟数字为开头。它们还可以包含转义字符加任何ISO 10646字符作为一个数 字编码。

夏天的博客 1963

别再乱点U盘里的.exe了!手把手教你彻底清除那个伪装成Usb Disk的蠕虫病毒

本文详细介绍了如何识别、清除和预防伪装成Usb Disk的蠕虫病毒。从识别感染迹象到安全备份文件,再到深度清理病毒残留和构建防护策略,提供了一套完整的U盘病毒解决方案。特别提醒用户注意U盘病毒的风险,并养成良好的使用习惯。

weixin_30496999的博客 669

编程常用的命名规则

四种常见的命名规则:1.帕斯卡命名法(Pascal)2.驼峰命名法(Camel)3.下划线命名法(UnderScoreCase)4.匈牙利命名法(Hungarian)

-在喝水的博客 3393

手把手教你用UC3842搭建12V/5A反激电源(附PSIM仿真文件)

本文详细介绍了基于UC3842的12V/5A反激电源设计与PSIM仿真实践。从UC3842芯片选型、高频变压器计算到PSIM仿真模型搭建,提供完整的开关电源设计流程。特别包含PCB布局要点和实测优化建议,帮助工程师快速掌握反激电源开发技巧。

u6v7w8x的博客 1203

生成对抗网络(GAN、DCGAN、ACGAN)-----学习笔记

生成对抗网络学习笔记 生成对抗网络有两个关键结构:生成模型、判别模型。 生成模型:输入是一个服从正态分布的N维向量,利用这个N维向量生成一张图片。 判别模型:对于生成模型输出的图像判别它是不是真的图像。 生成模型和判别模型的博弈关系在于:生成模型的目的是生成让判别模型无法判别真伪的图像,而判别模型的目的是判断输入图像的真伪。 结合代码来看生成对抗网络中,生成器和判别器的训练过程: 判别模型的训...

weixin_43227526的博客 5489

常见命名规范

文章目录0. 前言1. 常见命名方式1.1. 驼峰命名法1.2. 蛇形命名法1.3. 串式命名法1.4. 匈牙利命名法2. 取好名字2.1. 要有准确的意义2.2. 严格遵守命名规范2.3. 可读性优先 0. 前言 使用好的命名规范能够让自己和他人更加容易阅读和理解代码。 1. 常见命名方式 1.1. 驼峰命名法 驼峰命名法指的是使用大小写混合的格式,单词之间不使用空格隔开或者连接字符连接的 命名方式。它有两种格式:大驼峰命名法(UpperCamelCase)和小驼峰命名法 (lowerCamelCase)

qq_35346585的博客 6221

详解ReID的各部分组成及Trick——基于FastReID

这一系列博客将基于京东开源的FastReID进行扩充,详细介绍了ReID的各个组成部分,一些有用的Trick,评价指标,常用数据集等,详细内容见下方的链接,总结不易,如有理解不正确之处,麻烦各位批评指正。 一、FastReID的中的baseline文件配置 二、Training strategy 三、Pre-processing 四、Backbone 五、Aggregation 六、Head 七、Loss 八、Distance Metric 九、Post-processing 十、Evaluation 十一

藏晖的博客 9164

常见的程序命名规则

正确并形象地给函数、变量命名,不仅可以增加程序的可读性,也是程序员编程风格的一种反映。较好的命名习惯,可以有效的提高程序的可维护性。以下介绍几种常用的变量命名规则。 一、匈牙利命名法:广泛应用于Microsoft Windows这类环境中。 这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。匈牙利命名法通过在变量名前面加上相应...

ahead_zhan的博客 1158

OpenAI Function Calling 实战:让 Agent 自动调用外部 API 接口

在 2023 年 6 月之前,大语言模型(LLM)的能力边界是清晰的:它能说会道,能写诗作赋,也能帮你润色文案。但如果你问它"北京现在天气怎么样",它要么答不上来,要么基于过时的训练数据给你一个错误答案。原因很简单——LLM 的训练数据是有截止日期的,它活在"过去"。2023 年 6 月,OpenAI 在 GPT-4 的更新中引入了 Function Calling 功能,彻底改变了这一局面。Function Calling(也叫 Tool Use 或工具调用)是一种让 LLM 与外部系统交互的机制。

2201_76125393的博客 86

亚马逊跨境电商选品数据分析:Python爬虫实战指南

本文将带领大家构建一套完整的亚马逊选品数据采集与分析系统,使用最新的Python技术栈,从零开始爬取亚马逊商品数据,并进行深度分析。

2201_76125261的博客 299

C语言命名规范

C语言命名规范的核心目标是。

qq_43582136的博客 1918

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 387

B/S语言命名规则

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

lao_mage的专栏 2984

面向企业架构师的 SAP BTP 全景实践:多云、账户、运行时与端到端开发路径

摘要:SAP BTP为企业提供多云、多运行时(Cloud Foundry/Kyma/ABAP Cloud)的数字化转型平台,支持快速构建扩展应用。关键选择包括:1)根据合规与性能选择区域;2)区分Trial(90天限制)与Free Tier(无期限)方案;3)按场景选择运行时(CF适合微服务/Kyma适合云原生/ABAP Cloud适合S/4HANA扩展)。建议优先使用Free Tier进行POC,并通过BTP Cockpit统一管理,实现从验证到生产的平滑过渡。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 253

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

S3存储桶命名规范:Qwen3-14B 制定清晰的数据组织结构

本文介绍如何为Qwen3-14B大模型设计结构化、自动化友好的S3存储桶命名规范,涵盖项目、模型、用途和区域等关键字段,提升MLOps效率与系统可维护性。

weixin_42591413的博客 762

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

程序开发的命名规范(必读)

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

xiaoxunx的博客 3万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Go推荐命名规范

Go命名规范 好的命名可以提高代码的可读性,特点: 统一 : 容易猜想,约定俗成 简短 :容易书写(Go尤为强调) 准确 :准确表达意思 核心准则 声明的地方和使用的地方离得越远,名字就建议越详细,相对也会越长,同样上下文没提供有效的描述也是如此。 Camel命名 Go推荐驼峰命名方式,不建议使用下划线(包括常量,包名) Good userManger UserManager Bed user_manager 单词缩写默认全大写,或全小写 Good userID baiduCDN id cd

编程是艺术,极致是信仰,分享是连接世界的方式。 2711

深度解析 Go 语言中的 MixedCaps 命名规范

本文深入解析了Go语言中的MixedCaps命名规范,包括大驼峰(PascalCase)和小驼峰(camelCase)两种形式。大驼峰用于类型名(如结构体、接口)和包级别变量,小驼峰适用于函数、方法和局部变量。通过实际代码示例展示了不同类型、函数和方法的命名方式,并比较了小型工具和大型Web项目中MixedCaps的应用。遵循这一规范能显著提升代码可读性和可维护性,是Go开发中提升代码质量的关键实践。

Tekin 是深耕技术 20 年的全栈实战派专家,精通 Go/Python/Java 等多语言开发。博客专注技术原理与实战结合,深度解析 Python 高阶编程、Go 语言架构、数据库优化等硬核内容。涵盖并发编程、机器学习、云原生等前沿领域,通过真实案例拆 1116

一文掌握C/C++命名规范:风格、规则与实践详解

在C/C++开发中,良好的命名规范是编写可维护、可读性高代码的基石。恰当的命名不仅能让代码自文档化,还能显著降低团队协作时的沟通成本,减少因命名混淆而引入的错误。本文旨在系统性地介绍C/C++语言中的命名规则和最佳实践,涵盖从通用原则到具体语言特性的各个方面,帮助开发者建立清晰的命名标准。

bjxiaxueliang的CODING小栈 1562

C++命名规范总结

​ 如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。在软件开发这一高度抽象而且十分复杂的活动中,命名规则的重要性更显得尤为突出。一套定义良好并且完整的、在整个项目中统一使用的命名规范将大大提升源代码的可读性和软件的可维护性。

qq_40935205的博客 3986

Rust 命名规范

基本的 Rust 命名规范在中有描述。通常,对于的构造 Rust 倾向于使用,而对于的构造使用。snake_casesnake_casesnake_casenewsnake_caseT'a'de'src对于,复合词的缩略形式我们认为是一个单独的词语,所以:使用Uuid而不是 UUIDUsize而不是 USizeStdin而不是 StdIn。对于。对于(包括全大写的btree_map而不是 b_tree_mapPI_2而不是 PI2包名使用-rs或者-rust。

m0_52796585的博客 1663

第二次java 关于Java语言的基本了解 代码命名规范 多进制之间的转换

一个8bit可以形成任何数,计算机里的数都是8bit的倍数,因此不存在13bit,15bit的数据(不是8的倍数)。屏幕由许多个像素点组成,其中每个像素点里由三原色灯光组成,三原色的强度不同导致看到的颜色不同。每个像素点都有xy坐标,长宽几千,用short是可以的。同理,四个八位,就是第一个数乘以2的24次,加上第二个数乘以2的16次方,加上第三个数乘以2的8次方加上第四个数。01010101,00101010:左乘2的八次方加上后面的数。3,4,5,6,7,8,9右边大量面试题,3456是主要语法。

yamotl的博客 102

命名规范终极指南:如何在技术面试中脱颖而出并展示你的专业命名能力

命名规范是每个程序员必须掌握的核心技能,而**naming-cheatsheet**项目提供了最全面的变量命名语言无关指南。在技术面试中,良好的命名规范不仅能展示你的编程专业性,还能体现你的代码可读性和维护性意识。本文将为你揭示如何在面试中巧妙运用命名规范,让你的代码在众多候选人中脱颖而出!🚀 ## 为什么命名规范在技术面试中如此重要? 技术面试官不仅关注算法实现,更关注代码质量。良好的命名

gitblog_00781的博客 829
上一篇: MOF meta-object facility
下一篇: 数据库
yethyeth
博客等级 码龄21年 140粉丝 265原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值