公司要我出一份编程规范,大家帮我想想~~~ 谢谢了~ 这个规范要能在各种语言中通用,包括javascript等脚本中原来的匈牙利命名法现在好像很多人都不用了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 c#命名规范就可以,.net framework文档就有比如变量:首字母小写,第二个单词的首字母大写,txtName方法:以动词开头,首字母大写,GetName()常量:字母全大写,NAME属性:首字母大写,Name等等,找找看 new对象:objDataSet页面对象:txtUsername,hidFlag(hidden),chkSex(CheckBox)变量:strPassword,intNum,然后就是代码的缩进一定要做好;每个变量,每个函数都要有注释,每段代码也要有一点注释 To youbl(wolf) 变量:strPassword,intNum,------------------------这种好像不太好,像这种应该命名为:password、num还有两个单词组合的应该是lastName 程序块要采用缩进风格编写,缩进的空格数为4个。相对独立的程序块之间、变量说明之后必须加空行。较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。若函数或过程中的参数较长,则要进行适当的划分。不允许把多个短语句写在一行中,即一行只写一条语句。if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。对齐只使用空格键,不使用TAB键。函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 to:aspdotnet2005(天中之子、为中原喝采![我想找兼职MSN:Red-Maple@hot)哦,为何不好?在之后的使用中,一看这个变量就知道是什么类型的,比如strPass,一看就是字符串 intNum,一看就是整形你说用password,当然也可以知道是字符串,问题是有些人不一定什么英文都懂,比如有人不知道重量的英文,他可能用一个变量名为zhong,那加上intZhong,就知道这个是一个整形变量,光看zhong,谁知道是什么类型? http://dev.csdn.net/article/80/80660.shtmhttp://www.google.com/search?hl=zh-CN&newwindow=1&q=C%23%E7%BC%96%E7%A8%8B%E8%A7%84%E8%8C%83V2.0&btnG=%E6%90%9C%E7%B4%A2&lr=http://www.google.com/search?hl=zh-CN&newwindow=1&q=net%E5%AE%98%E6%96%B9%E7%BC%96%E7%A0%81%E6%96%B9%E6%B3%95%E5%92%8C%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99&btnG=%E6%90%9C%E7%B4%A2&lr=C#的这几个更通用性质的可以参考一下《代码大全2》 vs2003/2005的 c++目录下有 微软的 c#编程规范 http://terrylee.cnblogs.com/archive/2005/12/16/298314.html VS安装目录比如: D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\2052 目的为了统一公司软件开发的设计过程中关于代码编写时的编写规范和具体开发工作时的编程规范,保证代码的一致性,便于交流和维护,特制定此规范。2 范围本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期维护阶段。3 注释规范3.1 概述a) 注释要求英文及英文的标点符号。b) 注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。c) 每行注释的最大长度为100个字符。d) 将注释与注释分隔符用一个空格分开。e) 不允许给注释加外框。f) 编码的同时书写注释。g) 重要变量必须有注释。h) 变量注释和变量在同一行,所有注释必须对齐,与变量分开至少两个“Tab”键。如:int m_iLevel,m_iCount; // m_iLevel ....tree level // m_iCount ....count of tree items string m_strSql; //SQLi) 典型算法必须有注释。j) 在循环和逻辑分支地方的上行必须就近书写注释。k) 程序段或语句的注释在程序段或语句的上一行l) 在代码交付之前,必须删掉临时的或无关的注释。m) 为便于阅读代码,每行代码的长度应少于100个字符。3.2 自建代码文件注释对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释:/****************************************************** FileName:Copyright (c) 2004-xxxx *********公司技术开发部Writer:create Date:Rewriter:Rewrite Date:Impact:Main Content(Function Name、parameters、returns) ******************************************************/ 3.3 模块(类)注释模块开始必须以以下形式书写模块注释:///<summary> ///Module ID:<模块编号,可以引用系统设计中的模块编号> ///Depiction:<对此类的描述,可以引用系统设计中的描述> ///Author:作者中文名 ///Create Date:<模块创建日期,格式:YYYY-MM-DD> ///</summary> 如果模块只进行部分少量代码的修改时,则每次修改须添加以下注释:///Rewriter: Rewrite Date:<修改日期,格式:YYYY-MM-DD> Start1: /* 原代码内容*////End1: 将原代码内容注释掉,然后添加新代码使用以下注释:///Added by: Add date:<添加日期,格式:YYYY-MM-DD> Start2: 新代码内容///End2: 如果模块输入输出参数或功能结构有较大修改,则每次修改必须添加以下注释:///<summary> ///Log ID:<Log编号,从1开始一次增加> ///depiction:<对此修改的描述> ///Writer:修改者中文名 ///Rewrite Date:<模块修改日期,格式:YYYY-MM-DD> ///</summary> 3.4 类属性注释在类的属性必须以以下格式编写属性注释: /// <summary> /// <Properties depiction> /// </summary>3.5 方法注释在类的方法声明前必须以以下格式编写注释 /// <summary> /// depiction:<对该方法的说明> /// </summary> /// <param name="<参数名称>"><参数说明></param> /// <returns> ///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义> /// </returns> ///Writer:作者中文名 ///Create Date:<方法创建日期,格式:YYYY-MM-DD> 3.6 代码间注释代码间注释分为单行注释和多行注释: 单行注释://<单行注释> 多行注释: /*多行注释1 多行注释2 多行注释3*/代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。4 命名总体规则Ø 名字应该能够标识事物的特性。Ø 名字一律使用英文单词,而不能为拼音。Ø 名字尽量不使用缩写,除非它是众所周知的。Ø 名字可以有两个或三个单词组成,但不应多于三个,控制在3至30个字母以内。Ø 在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。Ø 名字尽量使用前缀而不是后缀。Ø 名字中的单词尽量使用名词,如有动词,也尽量放在后面。例如:FunctionUserDelete(而不是FunctionDeleteUser)。 在具体任务开发中,如果有特定的命名约定,则在相应的软件开发计划中予以明确定义及上报质量管理部审计组。5 命名规范5.1 变量(Variable)命名a) 程序文件(*.cs)中的变量命名 程序中变量名称 = 变量的前缀 +代表变量含意的英文单词或单词缩写。 Ø 类模块级的变量请用“m_” +数据类型缩写作为前缀(其中,m 为“memory”缩写,数据类型缩写见附件中的《数据类型缩写表》)。 public class hello{ private string m_strName; private DateTime m_dtDate; }Ø 类的属性所对应的变量,采用属性名前加“m_”+ 类型缩写 前缀的形式public class hello{ private string m_strName; public string Name { get{ return m_strName;}}}Ø 过程级的变量使用类型缩写前缀public class hello{ void say() { string strSayWord;}}Ø 过程的参数使用“p_”+ 类型缩写作为前缀(其中,p 为“parameter”缩写) public class hello { void say(string p_strSayWord) { } } 补充说明: 针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为exp;如果有冲突的情况下,可以用“exp”+ 标志名称,如:expSql。Try{ //your code try{//code}catch(Exception exp){//your code}}catch(Exception expSql){ //your code}补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例。例:try{ //your code}catch( Exception exp){} Ø 鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.Ø 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。Ø 在变量名中使用互补对,如 min/max、begin/end 和 open/close。Ø 不要使用原义数字或原义字符串,如 For (i = 1;i <= 7;i++)。而是使用命名常数,如 For (i = 1;i <= NUM_DAYS_IN_WEEK;i++) 以便于维护和理解。 b) 控件命名控件命名 = Web控件缩写前缀 + “_” + 名称 如:DataGrid dg_UserList5.2 常量命名常量名也应当有一定的意义,格式为 NOUN 或 NOUN_VERB。常量名均为大写,字之间用下划线分隔。例: private const bool WEB_ENABLEPAGECACHE_DEFAULT = true; private const int WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600; private const bool WEB_ENABLESSL_DEFAULT = false; 注:变量名和常量名最多可以包含 255 个字符,但是,超过 25 到 30 个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25 或 30 个字符应当足够了。5.3 类(Class)命名a) 名字应该能够标识事物的特性。b) 名字尽量不使用缩写,除非它是众所周知的。c) 名字可以有两个或三个单词组成,但通常不应多于三个。d) 在名字中,所有单词第一个字母大写。例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。e) 使用名词或名词短语命名类。 f) 少用缩写。 g) 不要使用下划线字符 (_)。 例: public class FileStreampublic class Buttonpublic class String [前辈]多线程问题 如何保证我得动态创建的textbox,在刷新的时候不会丢失!! 浏览器的单个输入框数据限制是多少K啊 怎样使页面无刷新显示数据? 一个关于判断和跳转的网页(在线等待) 关于doEvents的问题 请问哪里有ASP.NET的BBS源代码下载?谢了。 关于DataSet我太迷惘了,在线求助 怎样应用继承类: 能用SQL语句操作DataTable中的数据吗? 如何获取Web.config的<connecttionString>的连接字符串 vb代码转换为c#请教?
比如
变量:首字母小写,第二个单词的首字母大写,txtName
方法:以动词开头,首字母大写,GetName()
常量:字母全大写,NAME
属性:首字母大写,Name
等等,找找看
页面对象:txtUsername,hidFlag(hidden),chkSex(CheckBox)
变量:strPassword,intNum,然后就是代码的缩进一定要做好;
每个变量,每个函数都要有注释,每段代码也要有一点注释
变量:strPassword,intNum,
------------------------
这种好像不太好,像这种应该命名为:password、num
还有两个单词组合的应该是lastName
相对独立的程序块之间、变量说明之后必须加空行。
较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
若函数或过程中的参数较长,则要进行适当的划分。
不允许把多个短语句写在一行中,即一行只写一条语句。
if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。
对齐只使用空格键,不使用TAB键。
函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。
程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
比如strPass,一看就是字符串
intNum,一看就是整形你说用password,当然也可以知道是字符串,问题是有些人不一定什么英文都懂,
比如有人不知道重量的英文,他可能用一个变量名为zhong,那加上intZhong,就知道这个是一个整形变量,光看zhong,谁知道是什么类型?
http://www.google.com/search?hl=zh-CN&newwindow=1&q=C%23%E7%BC%96%E7%A8%8B%E8%A7%84%E8%8C%83V2.0&btnG=%E6%90%9C%E7%B4%A2&lr=
http://www.google.com/search?hl=zh-CN&newwindow=1&q=net%E5%AE%98%E6%96%B9%E7%BC%96%E7%A0%81%E6%96%B9%E6%B3%95%E5%92%8C%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99&btnG=%E6%90%9C%E7%B4%A2&lr=
C#的这几个
更通用性质的可以参考一下《代码大全2》
比如:
D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\2052
为了统一公司软件开发的设计过程中关于代码编写时的编写规范和具体开发工作时的编程规范,保证代码的一致性,便于交流和维护,特制定此规范。2 范围本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期维护阶段。3 注释规范3.1 概述
a) 注释要求英文及英文的标点符号。b) 注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。c) 每行注释的最大长度为100个字符。d) 将注释与注释分隔符用一个空格分开。e) 不允许给注释加外框。f) 编码的同时书写注释。g) 重要变量必须有注释。h) 变量注释和变量在同一行,所有注释必须对齐,与变量分开至少两个“Tab”键。如:int m_iLevel,m_iCount; // m_iLevel ....tree level // m_iCount ....count of tree items string m_strSql; //SQLi) 典型算法必须有注释。j) 在循环和逻辑分支地方的上行必须就近书写注释。k) 程序段或语句的注释在程序段或语句的上一行l) 在代码交付之前,必须删掉临时的或无关的注释。m) 为便于阅读代码,每行代码的长度应少于100个字符。3.2 自建代码文件注释
对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释:/****************************************************** FileName:Copyright (c) 2004-xxxx *********公司技术开发部Writer:create Date:Rewriter:Rewrite Date:Impact:Main Content(Function Name、parameters、returns) ******************************************************/ 3.3 模块(类)注释
模块开始必须以以下形式书写模块注释:///<summary> ///Module ID:<模块编号,可以引用系统设计中的模块编号> ///Depiction:<对此类的描述,可以引用系统设计中的描述> ///Author:作者中文名 ///Create Date:<模块创建日期,格式:YYYY-MM-DD> ///</summary> 如果模块只进行部分少量代码的修改时,则每次修改须添加以下注释:///Rewriter: Rewrite Date:<修改日期,格式:YYYY-MM-DD> Start1: /* 原代码内容*////End1: 将原代码内容注释掉,然后添加新代码使用以下注释:///Added by: Add date:<添加日期,格式:YYYY-MM-DD> Start2: 新代码内容///End2: 如果模块输入输出参数或功能结构有较大修改,则每次修改必须添加以下注释:///<summary> ///Log ID:<Log编号,从1开始一次增加> ///depiction:<对此修改的描述> ///Writer:修改者中文名 ///Rewrite Date:<模块修改日期,格式:YYYY-MM-DD> ///</summary> 3.4 类属性注释
在类的属性必须以以下格式编写属性注释: /// <summary> /// <Properties depiction>
在类的方法声明前必须以以下格式编写注释 /// <summary> /// depiction:<对该方法的说明> /// </summary> /// <param name="<参数名称>"><参数说明></param> /// <returns> ///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义> /// </returns> ///Writer:作者中文名 ///Create Date:<方法创建日期,格式:YYYY-MM-DD> 3.6 代码间注释
代码间注释分为单行注释和多行注释: 单行注释://<单行注释> 多行注释: /*多行注释1 多行注释2 多行注释3*/代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。4 命名总体规则Ø 名字应该能够标识事物的特性。Ø 名字一律使用英文单词,而不能为拼音。Ø 名字尽量不使用缩写,除非它是众所周知的。Ø 名字可以有两个或三个单词组成,但不应多于三个,控制在3至30个字母以内。Ø 在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。Ø 名字尽量使用前缀而不是后缀。Ø 名字中的单词尽量使用名词,如有动词,也尽量放在后面。例如:FunctionUserDelete(而不是FunctionDeleteUser)。 在具体任务开发中,如果有特定的命名约定,则在相应的软件开发计划中予以明确定义及上报质量管理部审计组。5 命名规范5.1 变量(Variable)命名
a) 程序文件(*.cs)中的变量命名 程序中变量名称 = 变量的前缀 +代表变量含意的英文单词或单词缩写。 Ø 类模块级的变量请用“m_” +数据类型缩写作为前缀(其中,m 为“memory”缩写,数据类型缩写见附件中的《数据类型缩写表》)。 public class hello{ private string m_strName; private DateTime m_dtDate; }Ø 类的属性所对应的变量,采用属性名前加“m_”+ 类型缩写 前缀的形式public class hello{ private string m_strName; public string Name { get{ return m_strName;}}}Ø 过程级的变量使用类型缩写前缀public class hello{ void say() { string strSayWord;}}Ø 过程的参数使用“p_”+ 类型缩写作为前缀(其中,p 为“parameter”缩写)
常量名也应当有一定的意义,格式为 NOUN 或 NOUN_VERB。常量名均为大写,字之间用下划线分隔。例: private const bool WEB_ENABLEPAGECACHE_DEFAULT = true; private const int WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600; private const bool WEB_ENABLESSL_DEFAULT = false; 注:变量名和常量名最多可以包含 255 个字符,但是,超过 25 到 30 个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25 或 30 个字符应当足够了。5.3 类(Class)命名
a) 名字应该能够标识事物的特性。b) 名字尽量不使用缩写,除非它是众所周知的。c) 名字可以有两个或三个单词组成,但通常不应多于三个。d) 在名字中,所有单词第一个字母大写。例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。e) 使用名词或名词短语命名类。 f) 少用缩写。 g) 不要使用下划线字符 (_)。 例: public class FileStreampublic class Buttonpublic class String