对于与类的属性匹配的参数名称,我看到与此类似的问题,但是除了使用C#中的大小写外,对于使用与参数类型名称相同的参数名称,我找不到任何东西。我发现这似乎不是违规行为,但是否认为这是不正确的做法?例如,我有以下方法
public Range PadRange(Range range) {}
此方法采用一个范围,并返回已应用填充的新范围。因此,鉴于通用上下文,我无法想到该参数的更具描述性的名称。但是,我想起了我在阅读《代码完整》中有关“心理距离”的一些提示。它说
心理距离可以定义为区分两个项目的难易程度...调试时,请准备好应对类似变量名之间以及相似例程名之间的心理距离不足所引起的问题。在构造代码时,请选择差异较大的名称,以便可以避免此问题。
我的方法签名有很多“范围”,因此,就心理距离而言,这可能是一个问题。现在,我看到许多开发人员都在执行以下操作
public Range PadRange(Range myRange) {}
我个人对此公约非常反对。向变量名添加“ my”前缀不会提供任何其他上下文。
我也看到以下
public Range PadRange(Range rangeToPad) {}
我喜欢此前缀,而不是“ my”前缀,但总体上还是不在乎。它对我来说太冗长,将其作为变量名尴尬地读取。在我看来,由于方法名称,将填充范围。
因此,考虑到所有这些因素,我的直觉是带着第一个签名。对我来说,这很干净。不需要时不需要强制使用上下文。但是,我是否对自己或将来的开发人员不利于此约定?我违反最佳做法了吗?
Range r
至少对于短方法体而言)和Range toPad
。
Range range
好了。