程序设计中的命名

程序设计中的命名

  在设计过程中好的命名不一定但更大可能会带来好的设计,但是如果坏的命名那一定不会给你带来好的设计。在设计过程,如果你发现你很难命名某一个模块,某个方法时,可能你真正遇到的问题不是难命名的问题,而是这个设计是否真的合理,你或许应该花更多的时间来重新设计一下你的模块。

1、名字应该尽量采用名词

  Bad:           Happy
  Good:          Happiness

2、不要使用类似名字空间的前缀

  Bad:           SystemOnlineMessage
  Good:          System::Online:Message

3、形容词不要用太多,能描述清楚就行。

  Bad:           IAbstractFactoryPatternBase
  Good:          IFactory

3、如果某个类不能通过简单的命名来描述它具有的功能,可以考虑用类比的方式来命名。

  Bad:           IncomingMessageQueue
                   CharacterArray
                  SpatialOrganizer
  Good:         Mailbox
                  String
                  Map

4、如果你使用类比,你就应该一致的使用它们

  Bad:           Mailbox,DestinationID
  Good:          Mailbox,Address

5、简洁

  Bad:           list.GetNumberOfItems()
  Good:          list.Count()

6、不要太简洁
  Bad:           list.Verify()
  Good:          list.ContainsNull()

7、避免缩写
  Bad:           list.Srt()
  Good:          list.Sort()

8、对于完成某件事情的函数使用动词
  Bad:           obj.RefCount();
  Good:          list.Clear();
                 list.Sort();
                 obj.AddReference();

9、对于返回布尔型的函数,使用类似提问的方式
  Bad:           list.Empty();
  Good:          list.IsEmpty();
                 list.Contains(item);

10、对于只是返回属性,而不改变状态的函数则使用名词
  Bad:           list.GetCount();
  Good:          list.Count();

12、不要在函数名字中重复参数的名称
  Bad:           list.AddItem(item);
                 handler.ReceiveMessage(msg);
  Good:          list.Add(item);
                 handler.Receive(msg);

13、不要方法的名字中重复此方法的类的名称
  Bad:           list.AddToList(item);
  Good:          list.Add(item);

14、不要在函数的名字中加入返回类型,除非函数名必须以返回类型进行区别
  Bad:           list.GetCountInt();
  Good:          list.GetCount();
                 message.GetIntValue();
                 message.GetFloatValue();

15、不要名字中使用And 或则 Or
   如果你使用一个连接词来连接函数名,那么这个函数肯定是做了太多的事情,更好的做法是将其分成更小的函数来处理(类似面向对象设计准则中的责任单一原则)。
   如果你想确保是这是一个原子的操作,那么你应该用一个名字来描述这个操作或一个类来封装他
   Bad:           mail.VerifyAddressAndSendStatus();
   Good:          mail.VerifyAddress();
                  mail.SendStatus();

时间: 2024-10-11 11:21:37

程序设计中的命名的相关文章

[转]在C#程序设计中使用Win32类库

http://blog.163.com/j_yd168/blog/static/496797282008611326218/ C# 用户经常提出两个问题:"我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?"当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工作,结果发现 Win32 API 集非常庞大.他们没有足够的资源为所有 Win32 API 编写托管接口.加以测

第04章 程序设计中的流程控制

/**第四章 程序设计中的流程控制 @选择语句 形式一:if(条件表达式) 单条语句; 形式二:if(条件表达式){ 语句体;} 形式三:if(条件表达式){ 语句体;}else{ 语句体;} 形式四:if(条件表达式){ 语句体;}else if{ 语句体;} 形式五:if(条件表达式){ 语句体;}else if{ 语句体;}else{ 语句体;}=========================================================================

树结构在程序设计中的运用

                                                                                引言 近年来,由于各种竞赛纷纷采用free-pascal,因此对于算法来说,空间效率上的要求降低了,而对时间效率却提出了更高的要求.这使得选手不仅要娴熟地掌握常规算法,而且要大胆创新,构造更高效的算法来解决问题. 在以往的程序设计中,链式结构采用得较多.的确链式结构有编程复杂度低.简单易懂等优点,但有一个致命的弱点:相邻的两个元素间的联系

CSS那些事!这个篇幅是我特意开的,不是因为帮助小菜之类的,而是在多人的团队配合中各种命名冲突的规范让人蛋疼

CSS那些事!这个篇幅是我特意开的,不是因为帮助小菜之类的,而是在多人的团队配合中各种命名冲突的规范让人蛋疼. css这个东西只要不是新的离谱都会写,但是每个人的命名风格,方法,都不同 有人喜欢驼峰,有人觉得-不错,有的人觉得_很方便,最后有的英文命名,有的干脆拼音....囧 http://www.cnblogs.com/LoveOrHate/category/682181.html 然后没有统一的格式,造成的结果...我爆炸了... 当然经常和团队合作的也就不用看了 这些文章我是专门找啊找,找

软件开发中的命名规则

对于一个成功的软件项目来说,大到解决方案小到一个属性的命名,不管是对软件的开发,还是对于后期的维护来说都是非常重要的.经过多年的摸索,我发现自己有一点命名恐惧症.为了方便以后的工作的顺利进行,特别对项目开发中的命名进行了一次总结,尽管有些地方不是很完整或者不周,但以后还会进行不断的补充与完善! 1. 解决方案命名:    对于解决方案来说,它的命名一般相对比较固定,多是系统英文全名的简写,如:SPMS,RMG,FinCap等: 2. 项目命名:    项目的命名要体现项目的功能,一般分为2/3/

iOS开发(OC)中的命名规范

开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结构也算清晰,因为我一直以来都是代码看的多写的多,但是总结的比较少,知识经常不成体系.以后多花点时间把自己的经验和学习知识加以总结一下吧,这样有利于去指导新人,也更有利于加深自己的知识认知.今天就从代码规范入手总结一下iOS开发中好的编码规范吧.我们在开发中看别人的代码的时候经常会去抱怨至少内心里骂娘

C#中使用命名管道进行进程通信的实例

原文:C#中使用命名管道进行进程通信的实例 1 新建解决方案NamedPipeExample 在解决方案下面新建两个项目:Client和Server,两者的输出类型均为"Windows 应用程序".整个程序的结构如下图所示. 2 实现项目Client Client仅包含一个名为"客户端"的窗体,如下图所示. 编写窗体后端代码,如下所示. using System; using System.IO; using System.IO.Pipes; using Syste

CAD.NET中获取命名字典中的数据方法

语句如下: dicts.GetAt(Position).GetXrecord("年薪").First().Value 其中 DBDictionary dicts=(DBDictionary)trans.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForRead); trans: using (Transaction trans=db.TransactionManager.StartTransaction()) CAD.NET中获取命名

编程中的命名设计那点事

编程中的命名设计那点事 在我开始设计系统的时候,我会花去很多时间去设计命名,因为好的命名和好的设计是分不开的. In the beginning was the Word, and the Word was with God, and the Word was God太初有道.道与神同在,道就是神. (约翰福音第一章,第一节) 在设计过程中给类,方法和函数好的命名会带来好的设计,虽然这不是一定成立,但是如果坏的命名那一定不会给你带来好的设计.在设计过程,如果你发现你很难命名某一个模块,某个方法时