在过去的几周中,我看到有些人为一个方法或类使用非常长(50个字符)的名称,通常是在前提下认为这样可以提高可读性。我的看法是,像这样的长名称表明我们正在尝试在一个方法或类中做太多的事情,如果我们需要使用这样的长名称,那么这是一个指标。不过我想知道你们对此有什么看法。
例子:
例子:
getNumberOfSkinCareEligibleItemsWithinTransaction
方法本身的长度可能更能说明它是否做得过多,但即便如此也只是给你一个大致的想法。你应该追求简洁,但描述性更为重要。如果你无法用更短的名称传达相同的含义,那么该名称本身可能还可以接受。
"The man who is going to maintain your code is a phyco who knows where you stay"
我建议结合好的答案并且要合理。
完整、清晰、易读地描述该方法的作用。
如果方法名看起来太长,就要重构方法使其更简单。
当方法名称换行并且对该方法的调用是该行上唯一的内容,且距离边缘很近时,代码会显得过长。您必须考虑将使用它的人的屏幕平均大小。
但是!如果名称似乎太长,则可能确实太长了。解决方法是以这样的方式编写代码,即您在上下文中,并且名称很短但在其他上下文中重复。这就像在英语中可以说“她”或“他”而不是某人的全名。
当它过于详细地解释事情的相关内容时,会变得太长。
例如,这些名称在功能上是等价的。
在Java中:java.sql.SQLIntegrityConstraintViolationException
在Python / Django中:django.db.IntegrityError
请自问,在SQL / db包中,您还能想出多少种完整性错误类型?因此,db.IntegrityError
就足够了。
这里有两种观点或方式:一种是方法名的长度并不重要,只要尽可能地描述该方法正在执行的操作(Java最佳实践基本规则)。另一方面,我同意flybywire的帖子。我们应该利用智慧尽可能地缩短方法名,但不减少其描述性。描述性更为重要 :)
f()
是一个非常短的函数,但这肯定不是一个好习惯...你应该告诉一些编程数学家们 :) - sfusseneggerf()
可能不是一个很好的函数,但$()
在Javascript方法世界中就像一个摇滚明星。 - Dan Rosenstark