1、变量定义之丑
a:变量定义和使用语句遥遥相望,淡淡的相思哀愁啊。
b:不同作用范围的变量相同命名。这些都是在设置阅读代码的障碍。
C:不必要定义变量的就不用定义了
if (!repaymentComponent.handleRepay(repayModel)) {
String msg = "执行回款失败, repayModel = " + repayModel;
logger.error(msg);
return false;
}
if (userProdPreSettlementRepayDAO.updateFundRepayStateById(RepayStatusEnums.EARLY_BACKED.name(), preSettleRepayDO.getId()) < 1) {
String msg = "更新提前回款计划失败, preSettleRepayDO = " + preSettleRepayDO;
logger.error(msg);
return false;
}
2、日志打印之丑
日志打印业务表达不清,多个业务混淆在一起,难道就是为了少写一行代码。内心喜欢简洁明了的编码风格,奈何也要把事情交代清楚呀。
for (UserProdPreSettlementRepayDO preRepay : preSettlementRepayDOs) {
//【3】执行提前回款处理
if (!preRepay.getRepayDate().equals(today) || !preSettlementPlanComponent.handlePreRepay(preRepay)) {
logger.error("执行提前回款失败或提前回款计划日期与结算日期不同, 回款计划 preRepay = " + preRepay + ", 结算日today = " + today);
allSucc = false;
}
}
改成下面这样就好受些
for (UserProdPreSettlementRepayDO preRepay : preSettlementRepayDOs) {
//【3】执行提前回款处理
if (!preRepay.getRepayDate().equals(today)) {
logger.error("回款失败:提前回款计划日期与结算日期不同, 回款计划 preRepay = " + preRepay + ", 结算日today = " + today);
allSucc = false;
}
if (!preSettlementPlanComponent.handlePreRepay(preRepay)) {
logger.error("回款失败:回款计划 preRepay = " + preRepay + ", 结算日today = " + today);
allSucc = false;
}
}
3、分支过多之丑
分支过多的可以先check返回,然后进入主流程。主流程分支过多,可以写接口按分支写实现类。
4、代码过长之丑
一个方法长达300~500多行,不是写给人看的,是写给神看的。
5、流程控制之丑
6、并发控制之丑