|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到java编译器那么简易。<p>我们都分明定名的主要性,假如对定名不休地存眷,就必要思索定名中的动词和名词,出格的情形是动词的人称和名词的数目。
在.NETFramework的Guideline中,有专门一章会商了定名标准,包含巨细写、单词的选择等,却没有触及到人称和数目,上面来会商一下这两方面的内容。
名词的数目
起首来看数目。名词的双数和单数在语义上有着分明的分歧,为了进步可读性,数目必要仔细地思索。好比:
属性(Property):System.Collections.Generic.Dictionary<TKey,TValue>中的Keys和Count是好的例子。字段与此相似;办法名中的名词:在JS中我们熟习的getElementById和getElementsByTagName;
部分变量:与属性比拟,我们更大概遭受的是部分变量。好比,用变量来暗示一团体的名字,能够用stringname;假如是多团体的名字,则能够用List<string>names。
一样平常地,双数表达的语义是?(0或1);单数表达的语义是*(0、1或多个)。关于名词的数目很简单了解,相干的划定规矩也简单遵守。
动词的人称
上面再来思索动词的人称。在必要思索定名的工具中,包含定名空间、范例、各类范例成员,只要办法是动词,语义上暗示一个举动。关于它的人称,来看一个.NETFramework中的例子。在System.Collections.Generic.Stack<T>中,有一个Contains(Titem)办法,关于如许的代码:- if(theStack.Contains(1)){//Dosomething.}
复制代码 读起来像是:ifthestackcontains1,对照通畅。是否是一切办法都要如许定名呢?没有。另两个办法Clear()和Push(Titem)就不是云云,这个中央很让人狐疑。先写成代码看看- theStack.Push(3);theStack.Clear();
复制代码 实验像下面那样作为一个句子来读:thestackpush3;thestackclear,语法上不合错误,看起来也应当是第三人称。这里我也不断定为什么云云,只能实验来注释下。考查多个汇合范例和别的范例后发明,一切利用第三人称的中央都是谓词函数,除下面的Contains(Titem),另有Directory.Exists(stringpath),不晓得这是否是个中的定名划定规矩呢?
还要思索正文
必定水平上,正文也算是一种代码。一种是XML文档正文,在.NETFramework中,不论是关于范例仍是范例成员,都利用了第三人称,这一点我们也能够遵守。别的的一般正文应当也能够遵守这个划定规矩。
原文链接:http://www.ckuyun.com/anderslly/archive/2011/01/26/name-conventions.html
【编纂保举】
前天傍晚我发表了《Java的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。 |
|