Rus*_*nes 4 java coding-style naming-conventions
我经常看到java代码中使用的以下命名约定.
class SomeClass {
private final String name;
public SomeClass(final String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
这对我来说有点奇怪.首先,如果你碰巧拼错方法签名中的变量,它仍然会编译...
class SomeClass {
private final String name;
public SomeClass(final String nane) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
编译好.可能将nane标记为未使用的变量,但是赋值(它只是一个自我赋值)会静默编译.
我发现自己想要使用'm'作为成员变量......
class SomeClass {
private final String mName;
public SomeClass(final String name) {
mName = name;
}
}
Run Code Online (Sandbox Code Playgroud)
它比.this变体短,并且捕获了之前显示的奇怪的拼写错误.
然而,当我把这个作为我们新项目的惯例提出来时,我的同事给了我各种各样的瑕疵,说"在java中我们不这样做.".
只是好奇为什么?
Jon*_*eet 15
我个人不喜欢使用前缀 - 它使代码更难阅读,IMO.我相信不同的人会以不同的方式阅读 - 我最终会"大声朗读"并且前缀会中断此过程.显然你可以习惯它,但我宁愿不必这样做.
但是,声称没有人使用这样的前缀是错误的.我曾在各种使用Java的公司工作过 - 有些使用过前缀,有些则没有.
我还要指出,大多数IDE会在你的错字示例中给出关于无操作分配的警告.例如,在Eclipse中我得到:
The assignment to variable name has no effect
Run Code Online (Sandbox Code Playgroud)
如果你经常忽略警告,我会说你有更大的问题:)
对成员变量使用特定前缀是一种匈牙利表示法 - 技术性的,坏的种类.信息(什么是成员变量和不是成员变量)已经在代码中,不需要复制它.
正如您所指出的,一个好的IDE会警告您未使用的变量(并且可能允许您将该警告转换为错误).语法高亮还将区分本地变量和成员变量.为什么想出一个丑陋的代码约定来做IDE的工作,使一个非常特定的程序员错误的可能性降低?
归档时间: |
|
查看次数: |
2425 次 |
最近记录: |