Tekkaman

导航

 

程序设计中的命名

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

 

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();

 

posted on 2014-10-20 20:42  Tekkaman  阅读(378)  评论(1编辑  收藏  举报