这是匈牙利符号吗?

时间:2018-09-20 04:01:29

标签: java

开始了新工作,提供了我的第一份公关,并提出了很多评论意见,我个人认为这很无聊。

虽然个人修复起来很容易,但我不认为这是匈牙利符号,只是明智的变量命名。

这是代码行:

final List resultTermsList = Collections.singletonList(resultTerm);

这是我收到的评论:

不需要匈牙利表示法。 resultTermsList -> resultTerms

这是匈牙利表示法吗?

1 个答案:

答案 0 :(得分:6)

final List resultTermsList = Collections.singletonList(resultTerm);
  

这是匈牙利表示法

是的,不是。

不,不是严格意义上的。

Hungarian notation是计算机编程早期的一种实践。工具很薄弱,没有复杂的解析器,无法在程序员工作时向程序员提供详细的分析和反馈。今天不存在IDE个。各种语言都受到极大限制,甚至变量名也被限制为极短的长度。

匈牙利语是一种通过识别变量的数据类型来识别类型的方法,该约定是通过在变量名称中包括特定字母来表示的。

随着工具和语言的改进,对匈牙利表示法的需求也逐渐消失。

因此,从最严格的意义上说,,您给定的代码并不完全遵循匈牙利符号约定。

,在更一般的意义上。

您给出的代码示例在变量名称中包括数据类型List,作为单词“ list”。这与匈牙利表示法的输入目的类似,在变量名l中包括lInvTot,意为“长整数”。

鉴于当今功能强大的编辑器和IDE,可以提供各种实时帮助来识别数据类型,类,超类和其他上下文信息,包括在变量名中的类型指示符。这样的指示符增加了详细程度,却没有增加价值。通常,应该在不必要的地方避免这种情况,因为这样会降低可读性。

但是上下文就是一切。有时在名称中包含类型是明智且合理的。例如,在计算发票总额的应用中,您可能具有标签,按钮,结果字段,内部结果编号和方法名称,这些名称可能全部被命名为“ invoiceTotal” 。因此,如果可以提高清晰度和可读性,则在一个代码区域内使用invoiceTotalLabelinvoiceTotalButtoninvoiceTotalFieldinvoiceTotalBigDecimal之类的名称可能是有意义的。