Questions tagged «naming-conventions»

命名约定是指管理分配给编程结构(例如变量和方法)的名称的通用规则。这些约定通过增强跨不同模块的命名一致性来提高可读性,从而提高代码的可维护性。



6
git仓库是否有命名约定?
例如,我有一个称为购买服务的RESTful服务。我应该命名我的存储库: purchaserestservice purchase-rest-service purchase_rest_service 或者是其他东西? 有什么约定?在Github中怎么样?公共存储库是否应遵循某些标准?

11
Java接口命名[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 大多数OO语言的接口名称都以大写的I开头,为什么Java不这样做呢?不遵守该公约的理由是什么? 为了说明我的意思,如果我想拥有一个用户界面和一个用户实现,那么在Java中我有两种选择: 类=用户,接口= UserInterface 类= UserImpl,接口=用户 在大多数语言中: 类=用户,接口= IUser 现在,您可能会争辩说,您总是可以为用户实现选择一个最具描述性的名称,问题就消失了,但是Java将POJO方法推向了事物,并且大多数IOC容器广泛使用DynamicProxies。这两件事在一起意味着您将通过单个POJO实现拥有许多接口。 因此,我想我的问题可以归结为:“是否值得遵循更广泛的接口命名约定,尤其是考虑到Java框架的发展方向?”

5
Maven工件和groupId命名
我目前正在将一些项目从Ant移到Maven。像我一样,我想使用完善的约定来查找groupId和artifactId,但是我找不到任何详细的约定(有一些约定,但是它们没有涵盖我想知道的要点)。 以这个项目为例,首先是Java包: com.mycompany.teatimer Tea timer实际上是两个词,但是Java包命名约定禁止插入下划线或连字符,因此我将它们全部编写在一起。 我选择了groupId与软件包ID相同的名称,因为我认为这是个好主意。是吗? 最后,我必须选择一个artifactId,我目前参加了teatimer。但是当我查看其他Maven项目时,它们使用连字符将artifactIds中的单词拆分,如下所示:tea-timer。但是当连接到groupId:时看起来确实很奇怪com.mycompany.teatimer.tea-timer。 你会怎么做? 另一个例子: 包裹名字: com.mycompany.awesomeinhouseframework groupId:(com.mycompany.awesomeinhouseframework?) artifactId:(awesome-inhouse-framework?)

5
javascript文件名命名约定是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 改善这个问题 文件应命名为-hyphens.js,camelCased.js还是其他名称? 我在这里找不到这个问题的答案。

30
还有其他人发现命名类和方法是编程中最困难的部分之一吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 因此,我正在研究该类,该类应通过Web服务向供应商索取帮助文档。我试着将它命名DocumentRetriever,VendorDocRequester,DocGetter,但他们就是不健全的权利。我最终浏览了dictionary.com半个小时,试图提出一个适当的单词。 用坏名字开始编程就像早上头发非常糟糕,一天的其余部分从那里走下坡路一样。觉得我吗?

9
枚举命名约定-复数
我问了这个问题,尽管已经读过类似但不完全是我在C#命名约定中枚举和匹配属性所要的东西 我发现我倾向于将枚举命名为复数形式,然后将其“使用”为单数形式,例如: public enum EntityTypes { Type1, Type2 } public class SomeClass { /* some codes */ public EntityTypes EntityType {get; set;} } 当然可以,这是我的风格,但是没有人能找到这种约定的潜在问题吗?我确实用“状态”一词来命名“丑陋”: public enum OrderStatuses { Pending, Fulfilled, Error, Blah, Blah } public class SomeClass { /* some codes */ public OrderStatuses OrderStatus {get; set;} } 其他信息:也许我的问题还不够清楚。在命名我定义的枚举类型的变量时,我常常不得不认真思考。我知道最佳做法,但这无助于简化命名这些变量的工作。 我不可能将我的所有枚举属性(例如“ …


6
JavaScript命名约定
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我知道关于哪种命名约定最适合JavaScript的争论很多(也许没有争议,但至少有争论)。 您如何命名变量,函数,对象等? 我将对此保留自己的想法,因为我已经很长时间(仅几年)都没有使用JS,并且我只是收到了一个创建带有命名约定的文档的请求,该文档将在我们的工作项目中使用。因此,我一直在寻找(google-ing),有很多不同的意见。 我在JS上阅读的书本身也使用了不同的命名约定,但是它们都在一个方面达成了共识:“找到适合您的内容,并坚持下去。” 但是,既然我已经阅读了很多东西,我发现我喜欢其他一些方法,这比我现在所习惯的要好一些。

8
html / css ID和类的标准命名约定是什么?
它是否取决于您使用的平台,还是大多数开发人员建议/遵循的通用约定? 有几种选择: id="someIdentifier"' -看起来与javascript代码非常一致。 id="some-identifier" -看起来更像html5类属性和html中的其他内容。 id="some_identifier" -看起来与ruby代码非常一致,并且仍然是Javascript中的有效标识符 我在想上面的#1和#3最有意义,因为它们在Javascript中的表现更好。 有正确的答案吗?


6
JavaScript中属性和方法名称的下划线前缀
JavaScript中的下划线前缀仅是约定,例如Python私有类方法中的约定吗? 从2.7 Python文档中: Python中不存在只能从对象内部访问的“私有”实例变量。但是,大多数Python代码遵循一个约定:以下划线开头的名称(例如_spam)应被视为API的非公开部分(无论是函数,方法还是数据成员) 。 这也适用于JavaScript吗? 以下面的JavaScript代码为例: function AltTabPopup() { this._init(); } AltTabPopup.prototype = { _init : function() { ... } } 另外,使用带下划线的前缀变量。 ... this._currentApp = 0; this._currentWindow = -1; this._thumbnailTimeoutId = 0; this._motionTimeoutId = 0; ... 只有约定?还是在下划线前缀后面? 我承认我的问题与这个问题非常相似,但是对于JavaScript中的下划线前缀的重要性,它并没有使人更聪明。

30
在不可变集合上使用不变异的“添加”方法的最佳名称是什么?
对不起,标题太小了-如果我能拿出一个简洁的标题,则不必提这个问题。 假设我有一个不变的列表类型。它具有一个操作Foo(x),该操作返回一个新的不可变列表,该列表以指定的参数作为结尾的额外元素。因此,要构建具有值“ Hello”,“ immutable”,“ world”的字符串列表,您可以编写: var empty = new ImmutableList<string>(); var list1 = empty.Foo("Hello"); var list2 = list1.Foo("immutable"); var list3 = list2.Foo("word"); (这是C#代码,如果您觉得语言很重要,那么我对C#建议最感兴趣。从根本上讲,这不是语言问题,但语言的成语可能很重要。) 重要的是现有列表不会被更改Foo-因此empty.Count仍将返回0。 达到最终结果的另一种(更惯用的)方法是: var list = new ImmutableList<string>().Foo("Hello") .Foo("immutable") .Foo("word"); 我的问题是:Foo的最佳名字是什么? 编辑3:正如我稍后会透露的那样,类型的名称实际上可能不是ImmutableList<T>,这使位置很明确。而是想象TestSuite它是不可变的,因为它所包含的整个框架都是不可变的... (编辑结束3) 到目前为止,我已经提出的选项: Add:.NET中常见,但表示原始列表已更改 Cons:我相信这是功能语言中的正常名称,但对没有使用这些语言经验的人来说毫无意义 Plus:到目前为止,我最喜欢的这并不意味着对我有所改变。显然,这在Haskell中也使用过,但期望值稍有不同(Haskell程序员可能希望它将两个列表加在一起,而不是将一个值添加到另一个列表中)。 With:与其他一些不可变的约定一致,但与IMO的“附加性”并不完全相同。 And:不是很描述。 +的运算符重载:我真的不是很喜欢。我通常认为运算符应仅应用于较低级别的类型。我愿意被说服! 我要选择的标准是: 给出方法调用结果的正确印象(即它是带有额外元素的原始列表) 尽可能清楚地表明它不会对现有列表进行变异 如上面的第二个示例中所述,当链接在一起时听起来很合理 如果我不够清晰,请询问更多详细信息... 编辑1:这是我倾向于Plus的原因Add。考虑以下两行代码: list.Add(foo); list.Plus(foo); …

5
Redis键命名约定?
Redis中密钥的正常命名约定是什么?我已经看到值之间有分隔符,:但是我不确定正常的约定是什么,为什么? 对于用户,您会做类似... user:00 如果用户的ID是 00 您是否可以仅查询密钥的开头以返回所有用户? 我主要是希望通过研究对人们有用的方式以及他们为什么选择它们的方式来避免将来出现任何问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.