因此,我正在处理这个类,它应该通过web服务从供应商请求帮助文档。我试着把它命名为documententretriver, VendorDocRequester, DocGetter,但它们听起来不太对。最后,我在dictionary.com网站上浏览了半个小时,试图找到一个合适的词。
带着坏名字开始编程就像早上头发很糟一样,接下来的一天就会每况愈下。感觉我吗?
因此,我正在处理这个类,它应该通过web服务从供应商请求帮助文档。我试着把它命名为documententretriver, VendorDocRequester, DocGetter,但它们听起来不太对。最后,我在dictionary.com网站上浏览了半个小时,试图找到一个合适的词。
带着坏名字开始编程就像早上头发很糟一样,接下来的一天就会每况愈下。感觉我吗?
当前回答
这对我来说通常是很自然的。我总是创建非常短的方法,从不超过6行Smalltalk代码(自动格式化),所以我说这个方法是关于什么的真的没有任何困难。
有时类名很困难,因为我想选择的单词在系统的某个地方正在使用,因为有时同一个单词在不同的上下文中有不同的含义。我希望在这些情况下,允许一些类似维基百科的语法,这样我就可以将我的类命名为“Task (To do list item)”。在这是合法的之前,我用了一个很大的德语风格的单词:ToDoListItemTask。您可能已经猜到了:我的方法名也可以很长。但我认为它们是可读的。
所以,在你的例子中,你的类是一个“getter”,或检索器,或其他什么。你确定这应该在课堂上模仿吗?难道供应商文档不应该请求自己吗?类似于vendorDoc.requestFrom(source);说出名字就容易多了,不是吗?
欢呼,
niko
其他回答
我觉得这是副作用。
真正难的不是命名。难的是命名的过程会让你面对一个可怕的事实,那就是你根本不知道自己在做什么。
Leo Brodie在他的书《Thinking Forth》中写道,对于程序员来说,最困难的任务是为事物命名,他指出最重要的编程工具是同义词词典。
试着使用http://thesaurus.reference.com/上的同义词典。
除此之外,不要使用匈牙利符号,避免缩写,并保持一致。
最好的祝福。
DocumentFetcher吗?没有上下文很难说。
它可以帮助你像数学家一样,在你的领域中借用/发明一个词汇:使用简短的简单的词来暗示概念,而不是每次都拼写出来。我经常看到长拉丁短语变成首字母缩略词,让你需要一本字典来了解这些首字母缩略词。
对我来说,我不在乎一个方法或类名有多长,只要它是描述性的,并且在正确的库中。应该记住API的每个部分驻留在哪里的日子已经一去不复返了。
智能感存在于所有主要语言中。因此,当使用第三方API时,我喜欢使用它对文档的智能感知,而不是使用“实际的”文档。
考虑到这一点,我可以创建一个方法名,如
StevesPostOnMethodNamesBeingLong或Short
很长,但那又怎样。现在谁不用24英寸的屏幕呢!
我发现一旦事情完成了,选择一个名字就更容易了。重构- >重命名增值。