开始了新工作,提供了我的第一份公关,并提出了很多评论意见,我个人认为这很无聊。
虽然个人修复起来很容易,但我不认为这是匈牙利符号,只是明智的变量命名。
这是代码行:
final List resultTermsList = Collections.singletonList(resultTerm);
这是我收到的评论:
不需要匈牙利表示法。 resultTermsList -> resultTerms
这是匈牙利表示法吗?
答案 0 :(得分:6)
final List resultTermsList = Collections.singletonList(resultTerm);
这是匈牙利表示法
是的,不是。
不,不是严格意义上的。
Hungarian notation是计算机编程早期的一种实践。工具很薄弱,没有复杂的解析器,无法在程序员工作时向程序员提供详细的分析和反馈。今天不存在IDE个。各种语言都受到极大限制,甚至变量名也被限制为极短的长度。
匈牙利语是一种通过识别变量的数据类型来识别类型的方法,该约定是通过在变量名称中包括特定字母来表示的。
随着工具和语言的改进,对匈牙利表示法的需求也逐渐消失。
因此,从最严格的意义上说,否,您给定的代码并不完全遵循匈牙利符号约定。
是,在更一般的意义上。
您给出的代码示例在变量名称中包括数据类型List
,作为单词“ list”。这与匈牙利表示法的输入目的类似,在变量名l
中包括lInvTot
,意为“长整数”。
鉴于当今功能强大的编辑器和IDE,可以提供各种实时帮助来识别数据类型,类,超类和其他上下文信息,包括在变量名中的类型指示符。这样的指示符增加了详细程度,却没有增加价值。通常,应该在不必要的地方避免这种情况,因为这样会降低可读性。
但是上下文就是一切。有时在名称中包含类型是明智且合理的。例如,在计算发票总额的应用中,您可能具有标签,按钮,结果字段,内部结果编号和方法名称,这些名称可能全部被命名为“ invoiceTotal” 。因此,如果可以提高清晰度和可读性,则在一个代码区域内使用invoiceTotalLabel
,invoiceTotalButton
,invoiceTotalField
和invoiceTotalBigDecimal
之类的名称可能是有意义的。