📄 noahweb开发者月刊-第四期(开发命名规范).htm
字号:
<TR>
<TD width="100%">
<TABLE class=style1 cellSpacing=10 cellPadding=2
width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top></TD></TR>
<TR>
<TD vAlign=top bgColor=#f0f0f0>
<P align=center><STRONG><A name=java></A><SPAN
class=style3>Java中的命名规则</SPAN> </STRONG>
<BLOCKQUOTE>
<P><SPAN class=style6><STRONG><SPAN
class=style1> </SPAN></STRONG></SPAN><BR><SPAN
class=style5><FONT size=2> </FONT></SPAN><SPAN
class=style6></SPAN>在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的。比如,大小写的区分,使用不同字母开头等等。但究其本,追其源,在为一个资源其名称的时候,应该本着描述性以及唯一性这两大特征来命名,才能保证资源之间不冲突,并且每一个都便于记忆。
</P></BLOCKQUOTE>
<P><SPAN class=style5>包的命名</SPAN>
<BLOCKQUOTE>
<P> Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。
<BR><STRONG> 例如:</STRONG>
net.frontfree.javagroup </P></BLOCKQUOTE>
<P><SPAN class=style5>类的命名</SPAN>
<BLOCKQUOTE>
<P>
类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。
<BR><STRONG> 例如:</STRONG> Circle
</P></BLOCKQUOTE>
<P><SPAN class=style5>方法的命名</SPAN>
<BLOCKQUOTE>
<P> 方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。<BR><STRONG> 例如:</STRONG>
sendMessge </P></BLOCKQUOTE>
<P><STRONG><SPAN
class=style6>常量的命名</SPAN></STRONG></P>
<BLOCKQUOTE>
<P> 常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。<BR><STRONG> 例如:</STRONG>
MAX_VALUE</P></BLOCKQUOTE>
<P><STRONG><SPAN
class=style6>参数的命名</SPAN></STRONG></P>
<BLOCKQUOTE>
<P> 参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。</P></BLOCKQUOTE>
<P><STRONG><SPAN
class=style6>Javadoc注释</SPAN></STRONG></P>
<BLOCKQUOTE>
<P> Java除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,它是用来记录我们代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些HTML标记符和专门的关键词。使用Javadoc注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。<BR><STRONG> 例如:</STRONG>
</P>
<BLOCKQUOTE>
<BLOCKQUOTE>
<P>/**<BR>* This is an example of<BR>*
Javadoc<BR>*<BR>* @author darchon<BR>* @version
0.1,
10/11/2002<BR>*/</P></BLOCKQUOTE></BLOCKQUOTE>
<P> 在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成文档中以特定方式显示。<BR> 虽然为一个设计低劣的程序添加注释不会使其变成好的程序,但是如果按照编程规范编写程序并且为程序添加良好的注释却可以帮助你编写出设计完美,运行效率高且易于理解的程序,尤其是在多人合作完成同一项目时编程规范就变得更加重要。俗话说“磨刀不误砍柴工”,花费一点时间去适应一下Java编程规范是有好处的。</P></BLOCKQUOTE>
<P> </P>
<P align=right><A
href="http://www.blueidea.com/articleimg/magazine/noahweb/4/#top">返回导航</A> </P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><STRONG><A
name=c></A></STRONG><BR>
<TABLE class=logicbiaoge1 cellSpacing=10 cellPadding=2
width="80%" border=0>
<TBODY>
<TR>
<TD width="100%">
<TABLE class=style1 cellSpacing=10 cellPadding=2
width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top>
<P class=style4 align=center><A
name=net></A>.NET中的命名规则</P>
<P>
<P><STRONG><SPAN
class=style6>名称空间的命名</SPAN></STRONG>
<BLOCKQUOTE>
<P> 命名名称空间的一般规则如下: <BR><STRONG>
CompanyName.TechnologyName<BR></STRONG> 这样,我们看到的名称空间应该是这样的: <BR>
<STRONG> </STRONG><STRONG>Microsoft.Office<BR>
PowerSoft.PowerBuilder </STRONG>
</P>
<P> 注意:这只是一个原则。第三方公司可以选择其它的名字。<BR> 避免用公司名称或其它著名品牌的名称作为名称空间的前缀,这样会造成两个公布的名称空间有同一个名称的可能性。<BR> <STRONG>例如:</STRONG>
将微软提供的Office自动类命名为Microsoft.Office</P>
<P> 使用Pascal大写方式,用逗号分隔逻辑成分。<BR> <STRONG>例如:</STRONG>Microsoft.Office.PowerPoint</P>
<P> 如果你的品牌使用的是非传统大写方式,那么一定要遵循你的品牌所确定使用的大写方式,即使这种方式背离了通常的名称空间大写规则。<BR> <STRONG>例如:</STRONG>NeXT.WebObjects<STRONG><BR> </STRONG>ee.cummings</P></BLOCKQUOTE>
<P><BR><SPAN
class=style6><STRONG>类和类成分的命名</STRONG></SPAN></P>
<BLOCKQUOTE>
<P><STRONG> </STRONG>类的命名原则是用名词或名词短语命名类,使用Pascal大写。减少类名中缩写的使用量。不要使用任何类前缀(比如C),不要使用带下划线的字符。<STRONG><BR> 例如:</STRONG>public
class FileStream {}<BR> public class Button
{}<BR> public class String {}
</P></BLOCKQUOTE>
<P><SPAN
class=style6><STRONG>变量的命名</STRONG></SPAN></P>
<BLOCKQUOTE>
<P><STRONG> </STRONG>名称中各单词首字母均为大写。<STRONG><BR> 例如:</STRONG><CODE
class=ce>FindLastRecord</CODE><BR> <CODE
class=ce>
RedrawMyForm</CODE><BR> 在内部范围中避免使用与外部范围中的名称相同的名称。若访问错误变量,则会产生错误结果。若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。
<BR><STRONG> 例如:</STRONG>若有一个名为 date 的变量,只能通过调用
<B>System.Date </B>来使用内部 <B>Date</B> 函数。
</P></BLOCKQUOTE>
<P><SPAN
class=style6><STRONG>函数和方法的命名</STRONG></SPAN></P>
<BLOCKQUOTE>
<P><STRONG> </STRONG>函数和方法的命名应该以动词开始,使用Pascal大写。不要使用带下划线的字符。<STRONG><BR> 例如:</STRONG><CODE
class=ce>InitNameArray</CODE><BR> <CODE
class=ce>CloseDialog</CODE></P></BLOCKQUOTE>
<P><STRONG><SPAN
class=style6>接口命名原则</SPAN></STRONG></P>
<BLOCKQUOTE>
<P><STRONG> </STRONG>使用名词或名词短语,或者描述行为的形容词来命名接口,使用Pascal大写。
减少接口名中缩写的使用量,在接口名前加前缀I,以表示这个类型是一个接口。<BR>
<STRONG>例如:</STRONG> IComponent(描述性名词)<BR>
ICustomAttributeProvider(名词短语)<BR>
IPersistable(形容词)</P></BLOCKQUOTE>
<P><STRONG><SPAN class=style6>参数的命名</SPAN>
</STRONG></P>
<BLOCKQUOTE>
<P> 使用描述性参数名。参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。根据参数的意思来命名参数,而不是根据参数的种类来命名。我们希望开发工具可以用很方便的方式提供关于参数种类的信息,这样参数名可以得到更好的使用,可以对语义而不是对种类进行描述。但是偶尔使用根据类型命名的参数名也是完全可以的。不要使用保留参数。如果在下一个版本中需要更多的数据,可以增加进来。<BR><STRONG> 例如:</STRONG>Type
GetType (string typeName)<BR> string Format
(string format, object [ ] args) </P></BLOCKQUOTE>
<P><STRONG><SPAN
class=style6>属性的命名</SPAN></STRONG></P>
<BLOCKQUOTE>
<P><STRONG> </STRONG>用名词或名词短语命名属性,属性与类型要一样。
用与一个类型的名称相同的名字来命名属性时,就使这个属性的类型成为那个类型。虽然听起来有些奇怪,但这是正确的。
<BR><STRONG> 例如:</STRONG>public enum Color
{...}<BR> public class Control {<BR>
public Color Color {get {...} set
{...}}<BR> }</P></BLOCKQUOTE>
<P><STRONG><SPAN
class=style6>事件的命名</SPAN></STRONG></P>
<BLOCKQUOTE>
<P><STRONG> </STRONG>用EventHandloer后缀命名事件处理程序,使用名为sender和e的两个参数,Sender参数代表提出事件的对象。Sender参数永远是一个类型对象,即使它可能使用了更为特定的类型,与事件相关的状态被封装在一个名为e的事件类范例中。要使用这个类型的正确的、特定的事件类。
<BR><STRONG> 例如:</STRONG>public delegate void
MouseEventHandler(object sender, MouseEvent
e);<BR> 命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx\\AfterXxx的方式)。例如,可以被取消的结束事件就有Closing事件和Closed事件。
</P></BLOCKQUOTE>
<P><STRONG><SPAN
class=style6>长项和常用项的命名</SPAN></STRONG></P>
<BLOCKQUOTE>
<P><STRONG> </STRONG>可使用缩写使名称长度适中,通常,多于 32
个字符的变量名在低分辨率的监视器上难以阅读。同时,请确保缩写在整个应用程序中保持一致。
<BR><STRONG> 例如:</STRONG>可以使用“HTML”代替“HyperText
Markup Language”。</P></BLOCKQUOTE>
<P class=style5>代码书写格式规范</P>
<UL>
<UL>
<LI><SPAN class=style1><SPAN
style="FONT-FAMILY: 宋体">文件之中不得存在无规则的空行,比如说连续十个空行。一般来讲函数与函数之间的空行为2-3行</SPAN></SPAN><STRONG>。</STRONG>
<LI>在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为<SPAN
lang=EN-US>1-2行。<O:P></O:P>
<LI><SPAN>每行长度尽量避免超过屏幕宽度,应不超过<SPAN
lang=EN-US>80个字符。<O:P></O:P>
<LI><SPAN>尽量用公共过程或子程序去代替重复的功能代码段。<SPAN
lang=EN-US><O:P></O:P>
<LI><SPAN>使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。如将<SPAN
lang=EN-US> x=a*b/c*d 写成
x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。<O:P></O:P>
<LI><SPAN>避免采用过于复杂的条件测试。<SPAN
lang=EN-US><O:P></O:P>
<LI>避免过多的循环嵌套和条件嵌套。<SPAN lang=EN-US><O:P></O:P>
<LI><SPAN>一个函数不要超过<SPAN
lang=EN-US>200行。一个文件应避免超过2000行。<O:P></O:P>
<LI>避免使用<SPAN lang=EN-US>goto语句。<O:P></O:P>
<LI><SPAN>避免采用多赋值语句,如<SPAN lang=EN-US>x = y =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -