yma*_*ros 3 java coding-style naming-conventions
你能给出一些很好的理由让类名作为任何变量名称的一部分吗?我们使用这个政策,我认为这非常有用.一些团队成员想要恢复决定.
我现在的论点:
你可以直接知道你在说什么:
for(学生:学生){...}
很容易理解(对学生或学生任何人)
在细微差异重要的地方减少混淆:
criteriaBuilder.equal(nameExpression, name);
Run Code Online (Sandbox Code Playgroud)
我能看到的唯一一个论点就是它使代码更长(我认为这不是现代IDE的问题).
这样的建议是否有公开供应?有人使用相同的规则吗?还有其他选择
小智 7
这对我来说听起来像匈牙利表示法.
原则上这听起来是个好主意,但老实说我不确定它有充分的理由:
匈牙利表示法的一个问题,你不提的是,如果你重构代码,你必须改变所有的变量名也是如此.在每日WTF上有很多例子,其中变量被命名为'strSOMETHING'或'intSOMETHING',即使这些类型被定义为其他类型.
一般来说,IMO使用匈牙利表示法的情况非常脆弱,一般我不建议将其作为一项政策.
(如果这不是你所说的,我道歉!)
你在这个问题上的圣经是Steve McConnel的书Code Complete,这本书是关于软件构建实践的最全面的书.他有一整章关于变量命名及其重要性的原因.
关键是要使名称完整描述变量的作用,以便阅读它的人很容易理解.如果它实现了,那么这是一个很好的做法.
学生看起来像一个简单易懂的政策,但它有一个直接的劣势 - 它不包含有关变量的额外信息.你已经知道它是一名学生.如果您对该对象有任何其他了解,那么将其添加到变量名称 - studentUnderReview,graduatingStudent等.只有在您不知道其他任何内容时才应使用"student",例如该变量用于迭代所有学生.现在在一个很长的方法中,通过查看名称来了解类型是有用的,但是如果变量具有短范围,那么它是否有用是否有用.有一些研究(参见McConnel)表明,对于范围很短的变量,例如循环指数,短名称更好.
只要有两个变量,该系统就会崩溃.如果默认是调用一个变量"student",那么诱惑就是调用两个变量"student1"和"student2",这实际上是不好的做法(详见McConnel).你需要创建描述对象的名称 - goodStudent和badStudent; studentBeingSaved和studentBeingRead.
| 归档时间: |
|
| 查看次数: |
1448 次 |
| 最近记录: |