因此,我正在处理这个类,它应该通过web服务从供应商请求帮助文档。我试着把它命名为documententretriver, VendorDocRequester, DocGetter,但它们听起来不太对。最后,我在dictionary.com网站上浏览了半个小时,试图找到一个合适的词。

带着坏名字开始编程就像早上头发很糟一样,接下来的一天就会每况愈下。感觉我吗?


当前回答

你现在所做的很好,我强烈建议你坚持你当前的语法,是:

语境+动词+ how

我使用这个方法来命名函数/方法,SQL存储过程等。通过保持这种语法,它将使你的智能感知/代码窗格更加整洁。你需要EmployeeGetByID() EmployeeAdd() EmployeeDeleteByID()当您使用更符合语法的语法(如GetEmployee()、AddEmployee())时,您会发现如果在同一个类中有多个get,情况会变得非常混乱,因为不相关的东西会被分组在一起。

我把它比作用日期命名文件,你想说2009-01-07.log而不是1-7-2009.log,因为在你有了一堆之后,顺序就完全没用了。

其他回答

我觉得这是副作用。

真正难的不是命名。难的是命名的过程会让你面对一个可怕的事实,那就是你根本不知道自己在做什么。

你用来描述问题的语言,就是你应该用来描述变量、方法、对象、类等的语言。一般来说,名词匹配对象,动词匹配方法。如果您缺少描述问题的词语,那么您也缺少对问题的全面理解(规范)。

如果它只是在一组名称中进行选择,那么它应该由您用来构建系统的约定来驱动。如果您遇到了以前的约定所没有发现的新情况,那么总是值得花一些精力尝试扩展它们(适当地、一致地)来覆盖这个新情况。

如果有疑问,那就睡一觉,选一个最明显的名字,第二天早上:-)

如果有一天你醒来发现自己错了,那就马上改变。

保罗。

BTW: Document.fetch()是非常明显的。

我觉得这不难。如果你叫不出名字,也许你就不需要它。你的设计越好,你就越容易为你的设计命名。

现在来看临时变量,这是另一回事了。:)

我发现局部变量最麻烦。例如,我想创建一个DocGetter类型的对象。我知道它是DocGetter。为什么我要给它另一个名字?我通常会给它起一个像dg(用于DocGetter)或temp之类的名字,或者其他同样没有描述性的名字。

这很困难,这是好事。它迫使你思考这个问题,以及这门课实际上应该做什么。好的名字有助于产生好的设计。