【问题标题】:naming static int variables命名静态 int 变量
【发布时间】:2012-07-10 22:44:07
【问题描述】:

我的代码中有很多整数变量(其中大部分是静态的,有些是非静态的)。由于我正在进行 ajax 测试,因此无法摆脱这些变量。目前,我使用“int”前缀来匹配使用变量的上下文。但是太多了让我的代码看起来很奇怪。 例如。我需要按下取消按钮,其 id 每次运行都会增加。所以我使用了一个静态变量,我将它命名为

static int intCancel;

是否有任何特定的模式可以命名变量以使代码更具可读性?

【问题讨论】:

  • 我会考虑将它们设为实例字段,即使您只需要一个实例。

标签: java variables naming-conventions


【解决方案1】:

一个常见的误解是变量名必须很短。考虑扩展它们以说明它们是什么。 IDE 使完成变量名变得容易。所以numberTimesCancelSelected 可能是一个选择。

考虑阅读Clean Code 以更好地讨论这个主题。

【讨论】:

  • 更不用说在变量名前加上变量类型在 90 年代已经不再流行了...
  • @Romain...是的,感谢智能感知。如果您处于没有智能感知的 ide 中,我仍然可以在其中看到一个值。
  • 好的。所以我将扩展变量名称并更具体。此外,还有很多计数变量,如 i、iter、iterator、count、c 等。有什么 cmets 可以概括这些吗?另外,由于需要静态变量的相同原因,我不能在所有这些上下文中使用相同的计数变量。
  • 一般来说,大多数人坚持使用i,j,k for for 循环,但在实践中使用更好的东西是个好主意。在 for 循环之外,所有变量都应该有一个有意义的名称。一个想法可能是currentIndex
  • 再说一次,我有一个定位器变量,它经常用新的 xpath 重新分配。重新分配不会影响功能,但有时在一些返回语句之后,即使我也会混淆我必须查看哪个定位器分配。我应该重用变量还是创建不同的字符串变量?我知道我很愚蠢,我只想知道退伍军人是做什么的。
【解决方案2】:

在 C# 世界中,有诸如 Resharper 之类的工具,甚至是 Microsoft 的 Visual Studio 本身,它们都非常乐意将命名约定强加给您。这是一种很好的方法,因为这意味着每个人都可以编写出外观一致的代码,并且消除了很多“主观性”。

现在 Resharper 和 Visual Studio 都应用了不同的规则(彼此),但这并不是重点。关键是你选择一个约定并坚持下去。无论是骆驼案(这是我这些天通常使用的,如果你无法选择,我会向你推荐)或匈牙利语(我会在十五年前使用),或者其他什么。只需选择一个并保持一致,这样您的代码就更易于维护,这就是 imo 的圣杯。

我同意早期的 cmets 关于适当命名事物的观点(缩写名称或使它们晦涩难懂只是懒惰),并且在适当的情况下一定要使用枚举(尽管我怀疑您只是举了一个例子)。但无论你做什么,选择一个约定并保持一致。

【讨论】:

    【解决方案3】:

    匈牙利符号是命名变量的标准:

    http://en.wikipedia.org/wiki/Hungarian_notation

    你的情况是:

    static int iCancel
    

    【讨论】:

    • 如 Romain 所述,这是一个“在 90 年代不再流行”的标准。这是一种应该避免的风格。
    • 很多人在几年前发现它很有用,现在的趋势是避免它。根据 Robert Martin 的说法,“.. 现在 HN 和其他形式的类型编码只是障碍。它们使更改变量、函数、成员或类的名称或类型变得更加困难。它们使代码更难阅读。而且他们创造了编码系统误导读者的可能性。”
    • 使用任何 IDE,您都可以快速重构变量或方法名称,但我不打算讨论这个问题。对我来说,更易读的短名称带有一点类型符号,特别是在 Java 中。
    • 在我最常使用的 ide (visual studio) 中,我只需将鼠标悬停在变量上即可查看其类型。通过将类型构建到变量的名称中,我没有得到任何附加值。除非我想我想得到一份硬拷贝并在火车上阅读一堆代码!
    猜你喜欢
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多