使用long是一种不好的风格,但使用描述性的方法名称,例如“adjacentLocationsByState()”,如果是这样的话,最好将它缩短为类似“adjLocByState”的东西,这种东西肯定更短,但在我的意见
答案 0 :(得分:10)
不要让我思考。
当我读取你的代码时,如果我必须停下来思考方法名称的含义,通常意味着方法名称是错误的。当为方法添加有用的上下文时,更长的方法名称是可取的。
答案 1 :(得分:2)
请记住:代码的读取次数比写入的次数多10倍。!
你真的会编写经常被反复阅读的代码。你的名字越有意义,代码就越容易理解。
您正在声明类,字段,方法,变量等等。你正在考虑它们,你正在开发一个定义明确的结构。一直以来,你做出了艰难的决定。您为实体提供的名称(类,字段,......)反映了您对此的所有想法。它们反映了您的代码的意图。
结论:名称是代码中最重要的属性。因此,您应始终深入思考您为变量,方法等赋予的名称。你永远不应该以任何方式缩写它们。
答案 2 :(得分:2)
编写代码时我基本遵循两条规则:
adjLocByState
不案例)因此,adjacentLocationsByState()读取完全正常,但它可以简化为:
adjacentLocations()
默认情况下会按州和adjacentLocations(STATE)
返回位置,或者使用fluent interface技术进行链接,这样可以提供更多选项来获得标准:adjacentLocations().by(STATE)
。这里的STATE是枚举LocationCriteria的成员。
所以在一天结束时它可能看起来像:
adjacentLocations()
adjacentLocations().by(STATE)
adjacentLocations(STATE)
当然,在第二和第三种形式的编码上花费了一些时间。
答案 3 :(得分:1)
更长的版本更具可读性,代码是自我记录的。所以一个好的方法名称=方法责任。调整可以理解为调整或相邻等。
答案 4 :(得分:0)
它是文档的一部分。
通常每个人都喜欢在提交前分两个阶段编写代码:
通过示例(阶段1):
ObjectOutputStream oos = ...
List a : ob.getSOE();
for(Object a: b){
oos.writeObject(a);
}
然后阶段2:
ObjectOutputStream stackOverflowElementOuputStream = ...
List stackOverflowElements : ob.getStackOverflowElement();
for(Object currentStackOverflowElement: stackOverflowElements){
stackOverflowElementOuputStream.writeObject(currentStackOverflowElement);
}