This question already has answers here:
The opposite of Hungarian Notation?
                                
                                    (2个答案)
                                
                        
                        
                            Do people use the Hungarian Naming Conventions in the real world? [closed]
                                
                                    (20个答案)
                                
                        
                        
                            mSomeVar names - where from and why?
                                
                                    (2个答案)
                                
                        
                        
                            Strange Java Coding Style - Why?
                                
                                    (4个答案)
                                
                        
                        
                            Prefixing variables names to indicate their respective scope or origin?
                                
                                    (3个答案)
                                
                        
                                去年关闭。
            
                    
开始了新工作,提供了我的第一份公关,并提出了很多评论意见,我个人认为这很无聊。

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

这是代码行:

final List resultTermsList = Collections.singletonList(resultTerm);


这是我收到的评论:

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

这是匈牙利符号吗?

最佳答案

final List resultTermsList = Collections.singletonList(resultTerm);



  这是匈牙利符号吗


是的,没有。

没有

不,不是严格意义上的。

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

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

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

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



是的,从更一般的意义上讲。

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

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

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

10-08 01:55