有人能指出我的网站,或者给我一些关于如何选择接口,类甚至与该对象或方法相关的方法和属性的名称的智慧?
这是专门针对Microsoft开发的,所以Java-esque“doGet”等并没有真正使用,但是跨越语言障碍的一些通用规则必须(我认为)存在。
示例可能有所帮助:我有4个选择的接口名称:
IGroupedItem
IGroupableItem
IDataEntity
IGroupedEntity
它们都包含形容词和名词,或者只是名词。看看.NET框架,为了保持一致,似乎必须有某种规则集?除了明显的方法动词。
编辑:虽然示例是一个界面,但我并不仅限于接口。一般准则是类是名词,方法动词,属性名词。我想我的意思是同义词的选择。将“实体”扔到哪里都错了
答案 0 :(得分:19)
查看MSDN articles的命名指南。简而言之:
对于您的示例 - IGroupableItem。
答案 1 :(得分:8)
接口是类能够做的事情。不是 ,而是做什么。
IGroupableItem
其他名称描述了什么事情或者过于模糊而无用。
具体来说,“IDataEntity”在很大程度上毫无意义。毕竟,一切都是数据实体。
答案 2 :(得分:4)
MSDN在Interface Naming Guidelines上有一篇文章可以帮到你。如果你想要接口以外的东西的命名约定,以及许多其他的命名和设计指南,你也可以在MSDN上找到所有这些。
答案 3 :(得分:1)
这与Spodi的答案相同,但是MSDN的Design Guidelines for Class Library Developers非常出色,涵盖naming等等。
答案 4 :(得分:1)
有好文章 Making Wrong Code Look Wrong 作者:Joel Spolsky。它讲述了不那么受欢迎但非常方便的命名惯例。
答案 5 :(得分:1)
除了MSDN指南之外,Juval Lowy还提供了来自IDesign的C#编码标准文档非常有用(不知道这与MSDN有多少差异)。
答案 6 :(得分:0)
试试这个......
主要网站:http://www.ssw.com.au/ssw/standards/Default.aspx
代码规则:http://www.ssw.com.au/ssw/Standards/Rules/RulestoBetterCode.aspx
答案 7 :(得分:0)
对于具有功能(等)名称的动词,通常使用动词的原始形式,例如Handle
,ExecuteQuery
或IsAny
,... >
动词的用法较少,使得它们与s/es
一样,例如ProducesResponseType
(MS Docs)。