我确信之前已经回答了这个问题,但我很好奇格式化长行代码时的最佳做法。
如果格式太长,我们如何格式化
请注意,这不是关于下面的正确代码,而是关于我们如何格式化每种类型的run on语句。
假设我们在javascript / jquery
中有一个长条件运算符var tablesToHide = $('table').length > 1 ? $('table') : $($('.nav > li[class="active"] > a').attr('href'));
tablesToHide.hide();
假设我们在带有空检查的java中有一个长条件
if(person.firstName != null && person.firstName.length() > 32 && person.firstName.length() < 5 && person.lastName != null && person.lastName.length() > 32 && person.lastName.length() < 5){//ridiculous operation}
假设我们有一个长时间的操作
long worldVsUnitedStates = (worldDuckCount + worldCatCount + worldTugBoatCount)/(unitedStatesTugBoatCount + unitedStatesDuckCount + unitedStatesCatCount)
像Guava操作一样的长方法调用
final Iterable<AccountingDocument> documentList = Iterables.filter(resultRecord.getAccountingDocuments(), AccountingDocument.class);
记录语句中的大型方法参数
logger.entering("UserAccountingAdministrationController", "createNewUserAccountingDocument", new Object[] { userAccountingForm, result, model });
由于使用FindBugs和throws声明而导致的大型方法参数
public void saveAccountingFormWithValues( @Nullable FooA firstValue, @Nonnull FooB secondValue, @Nullable FooC thirdValue, @Nullable FooD fourthValue) throws DataAccessException
答案 0 :(得分:1)
Java Coding Conventions中有一条建议,代码行不应超过80个字符“,因为很多终端并没有很好地处理它们 工具“ ......显然,这不再适用,但这并不意味着我们不应该争取可读性。
即使使用LCD和高分辨率屏幕,并不是每个人都会使用相同的字体大小(我的一个开发人员因为他们的眼睛使用14-16 pt字体),所以你应该追求可读性并使语句容易了解。
尽可能将逻辑元素组合在一起,特别是在if
语句和复杂计算......
很多内容将归结为个人陈述(还记得,并非所有标签都相同),但......
我个人会使用像...这样的东西。
if(person.firstName != null &&
person.firstName.length() > 32 &&
person.firstName.length() < 5 &&
person.lastName != null &&
person.lastName.length() > 32 &&
person.lastName.length() < 5) {...}
和
long worldVsUnitedStates = (worldDuckCount +
worldCatCount +
worldTugBoatCount) /
(unitedStatesTugBoatCount +
unitedStatesDuckCount +
unitedStatesCatCount)
和
final Iterable<AccountingDocument> documentList = Iterables.filter(
resultRecord.getAccountingDocuments(),
AccountingDocument.class);
IMHO