通常在代码片段或示例中,前缀My
用于类,方法和变量。
我们始终会看到此问题,从Google's gcm example到numerous questions on stackoverflow。它可以在PHP,Javascript,C#的文档中找到,而且几乎所有其他语言都可以找到。
所以,鉴于它的极端普遍性,我为什么不应该MyClass
使用myMethod
使用myVar1
进行制作?为什么这是不好的做法,我该怎么做呢?
答案 0 :(得分:1)
其他一切都归结为一个简单的事实。
拥有清晰,有意义的变量名称是编写可理解和可维护代码的重要因素。 - Computational Fairy Tales
当你写一段代码时,你希望任何人阅读它(包括你在三个月内!)几乎立即知道它的作用。为了记住,您可能需要添加关于它的评论。然而...
正确使用评论是为了弥补我们在代码中表达自我的失败 - Express Names in Code: Bad vs Clean
为了帮助您,您的名字应该是描述性的和简洁的。通常,当添加前缀My
时,它会替换可能更具信息性的前缀。而不是MyService
,为什么不GcmListenerService
?
如果我将其设为描述性内容,但我只是添加My
该怎么办?与MyGcmListenerService
一样?
这打破了规则的一部分。你添加My
会得到什么? My
是否会为名称添加值?即使您试图占用代码(使用vcs可以做得更好并且可行),My
也毫无意义。谁写了My
? 嗯,显然,我做到了。它说它就在那里,"我的"。
如果我真的不应该使用My
,为什么会有这么多例子呢?
真的,它只是一个占位符。
它就像metasyntactic变量" foo"和" bar" - 它通常用作真实姓名的占位符。 - Opinions on using My as a class name prefix
不幸的是,大多数有经验的程序员只是假设查找示例的人会知道这一点,他们会在实际使用代码时用一个好的变量名替换My
。但是,对于那些刚接触编程的人来说,如果你看到它的全部,而不是知道它是一个占位符,你可能认为它实际上是一个标准,并且最好的做法是使用My
。
好的,那我该怎么用而不是My
?
关于命名变量和类,有很多非常好的指南。你可以从wikipedia开始,但如果你稍微谷歌一下,你可以找到很多关于好名字和坏名字的文章。然而,这一切的核心是一条规则:使名称具有描述性,并使它们保持简洁。
如果我读取类,方法或变量的名称并立即知道它的用途,那就是一个好名字。