ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:44.13KB ,
资源ID:4290073      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4290073.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Net开发要求规范.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Net开发要求规范.docx

1、Net开发要求规范.net开发规X1概述一组通用目的的编码约定应该定义完成上述目的所必需的、能让程序员自由地创建程序逻辑和功能流程的最小的要求。最小编码约定的目的是使程序易于阅读和理解,从而指导程序员更好地完成开发任务。2命名规X指导性原如此命名是编程的核心。能够对变量和函数/过程进展表意清晰而准确的命名,就能使程序的可读性大大提高,达到不说自明的效果。真正的名称是深入认真思考一个对象的生态环境后才能给出的。程序设计人员只有在充分理解并把握整个系统时,才可能给出真正适宜的名字。如果名称选用恰当,一切就显得很自然,各局部关系清晰,意义可以推导而出,阅读程序时可以按常识推理,从而减小程序员对已有程

2、序的阅读和理解困难,提高工作效率,使新程序员能在尽量短的时间内进入角色。以下章节描述了程序命名的一些指导性原如此。使用正确的大小写风格为保证良好的程序可读性,对命名的大小写必须按照一致的规定编写,主要包括Pascal风格和Camel风格两种,下面将会有专门的章节进展详细说明。使用描述性英文名称为保证程序的可读性,要采用准确描述其意义的名字。英语是国际通用语言,绝大多数商业类库或函数库代码都是由英语编写的。要与标准接轨,充分利用网上的程序资源,应尽量使用英语命名。使用易读的名称如果不可读或不易读,如此不便于讨论和交流。因此我们要尽量使用大众化名称,防止使用不常用的单词。尽量防止在名称中使用编码对

3、名称使用编码就需解码才能理解。少数几个前缀字母有助于区分名称类别。但为了追求风格而过分使用前缀和后缀就会造成生涩难懂的名字。例如SRD2T3。含有编码的名称一般都没有可读性。当然,任何编码,只要科学,时间久了都能被掌握。但是,掌握编码需要新成员的额外精力,增加了适应难度,因此应尽量防止。同义词中使用固定的单词首先,我们应尽量使用英语词汇,因为汉语拼音实际上也是一种名称编码,特别是使用拼音首字母,即使是懂汉语拼音的人也未必能理解。有了用英语命名的前提,我们还应该注意:一个抽象概念可能有多个表述同义词,选择一个,始终如一。如对同一动作,在不同类中选用不同的名称,比如,fetch, retrieve

4、 和 get,那么,使用你的类从事编程的人就要多费很多精力去理解它们。也就是说,我们应该通过使用一致的名称,创建统一的编程接口,简化学习的难度。保持词义的前后一致多数词都有不止一个意思,但在同一个系统中,应始终保持同一个意思。这和前面的原如此是相对应的。使用不同的词汇,使人联想不同的接口和/或操作。同样,使用同样的词汇,使人联想一样的接口和/或操作。如果我学过使用DeviceManager:add(), 我就会期望可以使用ProtocolManager:add(). 这是根据名称产生的联想,甚至连想到可以使用*Manager:add()。要保证这种联想能成立,前后词义必须一致。如果自己设计一个

5、系统,要尽量做到保持词义的一致。记住,在两个完全不同的X畴内使用一样的名字是很不可取的。名词和动词的选用类和对象应当使用名词或名词短语命名。方法中强调过程用动词,返回值用名词。作为一名设计人员,可能不太在意命名的琐事。尝试使用你设计的类去编写一段用户程序,看看有多少别扭或混乱的地方,一定可以反过来有助你改良设计。使用计算机专业术语尽量使用约定成俗的惯用语、计算机科学术语、算法名称、设计模式名称、数学名词等软件编程相关名词。这样似乎有点异端,但这总好过让程序员费劲找客户弄清楚自己原本清楚的概念,只是由于名称的不同使他们疑惑。我们是讲编码规X,程序员大多数是计算机专业的,或对计算机专业已有了深入了

6、解的。很少最终用户会阅读程序,即使有,也是有相当计算机软件功底的。相反,程序维护人员必须阅读程序,所以应尽可能使用计算机术语。如:运用工厂模式类的命名应该是“名词+Factory。必要时可使用业务术语如果工作的重点不在程序本身,或问题的描述比问题的解决更重要,可使用业务术语。在分析阶段,使用业务术语比使用计算机术语更好,因为容易被客户理解和承受。防止误导防止使用已有其它明确意义的名词。例如,hp, aix, 和 sco 被用作UNIX 平台与其变种的名称,如果再用来作为变量或函数名称就很有问题,会引起误解。即使你在解决的问题用 hp 是很好的缩写也不应使用hp。名词需要语境说明只有少数情况下,

7、孤立的一个名字有明确含义。多数情况下,名称需要置于一定的语境中才有意义。比如,在类中,函数中或注释中。换句话说,在面向对象的语言中,在类属性的名称中包含类名是多余的。例如,不应该使用Book.BookTitle,而应该使用 Book.Title 。pany. address_ 和 Customer. address_, 同样都是address, 但仅在语境中才有意义,以下的命名是不可取的:pany. panyAddress_, Customer.customerAddress_。不要添加人为的语境不要在类的前面冠以公司名缩写、项目名称缩写或其他标志性前缀。例如,在做知识管理系统时,把员工类命名

8、成KmsUser。以上命名法是不可取的,这样势必造成代码重复,影响代码的重用。如使用同一个类,如此KmsUser在其他系统中就显得不和谐了。防止名称差异不明显造成混淆这个问题源于编写程序仅仅是为了能编译通过或能解译执行。编译和解译程序不允许在同一域内用一样的名字指称两个东西。所以,遇到编译问题时,就随便将其中的一个改变一下。更糟糕的是,原本同一个名称,因拼写错误变成两个名称。这里要说的关键问题是,如果要区分两样不同的东西,一定要保证名称有实质性的差异。例如,假如将一个类命名成Product,另一个类命名成ProductInfo或ProductData, 就会因差异不明显造成混淆。因为Info和

9、Data 没有具体的意思。同理,不要在 OO 编程中使用Class或Object作为名称的一局部。CustomerObject 和 Customer 有区别? NameString 比 Name 好? 难道一个Name 还会是浮点数或整数不成?特别要强调的是,对于大小写敏感的编程环境,我们不要使用仅有大小写区别的名字。 例如,Customer, customer 不应作为两个名字。大写风格以下章节描述了不同方式的大写方式.术语将在通篇文档中被经常引用.Pascal风格这种风格大写每个单词的首字母BackColor应在所有由多单词组成的公共描述符中使用这种方式.举例而言,使用TextColor就

10、比Textcolor或Text_color更好.注意不要大写 “连接词一个单词中包含了几个单词,但这个单词本身有自己的意思,如Checkbook每个组合单词的首字母。应该将这个单词作为一个单词来考虑,而非几个单词的组合。使用词典决定一个组合词是不是应该作为一个单词来使用。Camel风格这种风格除了第一个单词的首字母,其他单词都应大写首字母,如下所示backColor在局部变量参数名或私有类属性名称上使用camel风格。 大写风格只在少于两个字母的缩写中使用大写。三个以上字母的缩写都应该使用PASCAL风格。举例而言 System.IO System.CodeDom一个另外的情形是和原有的未管理

11、的标志兼容,而原来常用大写来表示枚举和常量。通常标志符不应该暴露给外部。大写小结下表描述了不同类型的描述符该使用大小写类型风格备注ClassPascal风格Enumeration valuePascal风格Enumeration typePascal风格EventPascal风格Exception classPascal风格用后缀Exception.Read-only static fieldPascal风格InterfacePascal风格用前缀I.MethodPascal风格NamespacePascal风格PropertyPascal风格Public instance fieldPasc

12、al风格很少使用,更多使用properties. Protected instance fieldcamel风格很少使用,更多使用properties. Parametercamel风格单词选择不要使用常用的命名空间的名字做类名,举例而言不要使用以下任何单词做类名SystemCollectionsFormsUI不要使用和以下关键字冲突的识别符,举例而言,防止这样使用:AddHandlerAddressOfAliasAndAnsiAsAssemblyAutoBaseBooleanByRefByteByValCallCaseCatchCBoolCByteCCharCDateCDecCDblChar

13、CIntClassCLngCObjConstCShortCSngCStrCTypeDateDecimalDeclareDefaultDelegateDimDoDoubleEachElseElseIfEndEnumEraseErrorEventExitExternalSourceFalse FinalizeFinally FloatForFriendFunctionGetGetTypeGoto HandlesIfImplementsImportsInInheritsIntegerInterfaceIsLetLibLikeLongLoopMeModModuleMustInheritMustOver

14、rideMyBaseMyClassNamespaceNewNextNotNothingNotInheritableNotOverridableObjectOnOptionOptionalOrOverloadsOverridableOverridesParamArrayPreservePrivatePropertyProtectedPublicRaiseEventReadOnlyReDimRegionREMRemoveHandlerResumeReturnSelectSetShadowsSharedShortSingleStaticStepStopStringStructureSubSyncLo

15、ckThenThrowToTrueTryTypeOfUnicodeUntilvolatileWhenWhileWithWithEventsWriteOnlyXorevalextendsinstanceofpackagevar缩写1、请不要砍掉或抽取识别符的局部来作为名称使用。如使用GetWindow比GetWin更好.2、请不要使用使用不被广泛认可的缩写。 3、只有绝对需要时再使用广为人知的缩写。可以使用UI来表示User Interface,用OLAP来表示On-line Analytical Processing.命名空间以下模板举例说明了命名空间的命名规如此。.Design因此我们希望看

16、到这样如下命名空间:Microsoft.Media1、防止两个PUBLISED的NAMESPACES名称一样的可能。使用公司名称或者一个正式分支的名称如用Microsoft.Office来表示Microsoft提供的Office Automation Classes。2、使用一个稳定的被广泛认可的技术名称作为第二层名称3、不要使用组织的结构层次作为命名空间的层次依据4、请在DESIGN-TIME命名空间前加上.Design前缀以表示根底命名空间DESIGN-TIME特性。如 包含了用来设计 应用程序的的设计器和相关设计类。5、6、在适当的地方使用复数命名。例如采用System.Collecti

17、ons 而非System.Collection。对此例外的是品牌名和缩写。如用System.IO 而非System.IOs。7、不要让命名空间和类都使用同样的名字。如,当有个类叫Debug时就不要使用Debug来作为命名空间的名字。类和类成员类的命名指南1、使用名词或名词短语命名类。2、使用Pascal风格3、慎重使用缩写命名类。4、不要使用任何类前缀如C5、不要使用强调符号。6、偶尔可能会出现已I作为类名开头的情况,而这个类又不是一个接口类。这种情况下只要第二个字母是小写就可以承受。如IdentityStore.7、建议使用组合词来命名派生类。在此情况下,你应该考虑使用基类名称作为派生类名称

18、的结尾。举例而言,在英语中的Coffee Cup是说的一种杯子,而不是一种咖啡。又如ApplicationException表示一种例外,而BooleanSwicth表示一种Switch,SerializableAtrribute是一种属性。但对此应该合理的判断,如Button是一种Control虽然Control并没有出现在名字中。以下是一些正确的命名的例子public class FileStream public class Button public class String Attribute命名指南在自定义属性类的后边应该加上Attribute作为后缀。public class O

19、bsoleteAttribute : Attribute 枚举命名指南1、使用Pascal风格来命名枚举类型.2、使用Pascal风格命名枚举值. 3、不要使用简写来命名枚举值.不要在枚举前加前缀(如 adXXX 来命名 ADO enums, rtfXXX 来命名 rich text enums, 等.). 不要使用在枚举上加后缀使用单数来命名枚举,除非它是一个BIT类属性.使用复数来命名BIT类属性。静态类属性名1、使用名词,名词短语或简写来命名静态类属性2、使用PASCAL风格来命名静态类属性不要使用匈牙利命名法来命名静态类属性名称参数名使用有意义的参数名.在所有场合,参数名称和类型应该清

20、楚地描述以决定其反映的意义.使用camel风格来命名参数使用不要使用reserved参数。在下个版本中需要更多的数据那么就使用重载。.请不要使用匈牙利命名法来在名称前加前缀Type GetType (string typeName)string Format (string format, object args)方法命名指南使用动词或动词短语来命名方法。使用Pascal风格来命名方法.如RemoveAll()GetCharArray()Invoke()属性命名指南使用名词或名词短语来命名属性使用Pascal来命名属性.可以考虑把属性命名和其类型一样。当属性名和一个类型名一样时,那么一定要让这

21、个属性就是这个类型。虽然这听起来有点多余,但这是正确的。以下例子说明了正确的属性命名方法.public enum Color .public class Control public Color Color get . set . 以下是错误的命名public enum Color .public class Control public int Color get . set . 在错误的例子中,Color枚举的成员不可能被引用到,因为Color.xxx的COLOR将被解释为ColorInt属性,系统将会到System.Int32中的实例中去访问成员。.事件命名指南使用事件EventHand

22、ler 来命名HANDLER代理类型。如 public delegate void MouseEventHandler(object sender, MouseEventArgs e);两个参数取名叫sender和e. sender 参数表示触发时间的对象。sender都是object 类型,就算是它可以是更明确的类型。与事件关联的状态被封装到一个事件类的实例中e中.对它应该使用适当明确的事件类型。如public delegate void MouseEventHandler(object sender, MouseEvent e);使用EventArgs后缀来命名事件的参数,如public

23、class MouseEventArgs : EventArgs int x;int y; public MouseEventArgs(int x, int y) this.x = x; this.y = y; public int X get return x; public int Y get return y; 使用现在时态和过去时态来命名有“前、“后概念的事件。不要使用BeforeXxxAfterXxx.如,一个可以取消的关闭事件可以表示为Closing 和Closed event.考虑使用动词来命名事件大小写敏感不要出现必须要大小写敏感支持的名字.组件应该在无论大小写敏感或不敏感的语

24、言中都能使用。因为 需要大小写敏感的语言不能识别两个一样内容但用大小写区分的名字,所以组件必须防止这种情况不要出现两个只用大小写区分的命名空间,如namespace ee.cummings;namespace Ee.Cummings;不要出现两个只用大小写区分的参数如.void foo(string a, string A)不要出现只用大小写区分的同一命名空间的类型不要出现只用大小写区分的同一类型属性。int Foo get, set;int FOO get, set不要出现两个只用大小写区分的方法void foo();void Foo();3程序注释规X要使程序易于理解,注释十分重要。在此,

25、提供根本的注释编写规X。注释编写准如此将注释与注释分隔符用一个空格分开。不允许给注释加外框。边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。注释的内容要清楚、明了,含义准确,防止注释二义性。防止在注释中使用缩写,特别是非常用缩写。注释应与其描述的代码相近,对代码的注释应放在其上方或右方对单条语句的注释相邻位置,不可放在下面,如放于上方如此需与其上面的代码用空行隔开。变量注释和变量在同一行,所有注释必须对齐,与变量分开至少两个Tab键。程序段或语句的注释在程序段或语句的上一行。注释与所描述内容进展同样的缩排。重要变量必须有注释。典型算法必须有注释。在循

26、环和逻辑分支的地方必须写上注释。防止在一行代码或表达式的中间插入注释。在代码交付之前,必须删掉临时的或无关的注释。模块注释在一个程序模块的开始,应用注释说明模块的名字、功能、开发者和日期和版本变更历史,如下所示:/-/Name:ChargeUser/Function:Charge credits from the user account and save it to the users account/Author:Author Name/ Date:Aug. 8, 2000/-/Change History:/ DateWhoChanges Made/-/2000-5-1Author1In

27、itial creation/2000-5-15Author2Add bStatus variable to identify Users state/2000-7-3Author3Add CheckBlackList() to check whether user /is in black list/-类的注释在定义一个类之前,应用“/注释说明类的功能、使用方法和特殊的属性,如下所示:/ This class contains the business facade for the order system./ The business facade is used to provide a

28、 simplified interface into the / order sub systems./ This class is marked as MarshalByRefObject to support remoted scenarios. /publicclass OrderSystem : MarshalByRefObject 须注意的是,我们要遵从VS.NET对注释的约定,使用标记来指定类总体注释的开始,用标记它的完毕。对类的一些注解说明可以放在 和 对中。以后我们可以从注解自动得到对代码的说明文档。如下例所示:This class contains the business facade for the order system. The busine

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1