摘要
开发已过几载,阅代码无数,有人写的代码逻辑清晰,bug难以隐藏;依赖最少,易于维护;错误处理完全根据一个明确的策略; 性能接近最佳化,避免代码混乱和无原则的优化;后期阅读真是赏心悦目,就像是看一篇文章。
但今天我想DIss的是一些CV大佬,那写的代码真是惨不忍睹。
来吧,展示
标志位以及全局变量太多,看的头皮发麻,后期一旦有个地方忘了程序就会出错
/*
处理的业务的各种计算
*/
public Result beginBusiness(Map<String, String> requestParmsMap,String myBusinessMessage,String ) throws RuntimeException {
System.out.println("开始了");
// 规则方案ID
String goodbusinessid = requestParmsMap.get("goodbusinessid");
// 项目GUID
String myprojectKey = requestParmsMap.get("myprojectKey");
// 报表类型
String reportType = requestParmsMap.get("reportType");
// 数据配置ID
String dataConfigId = requestParmsMap.get("dataConfigId");
// 数据配置编号
String dataConfigCode = requestParmsMap.get("dataConfigCode");
// 客户端请求ID
String clientReqId = requestParmsMap.get("clientReqId");
// 客户端标识
String clientSymbol = requestParmsMap.get("clientSymbol");
// 数据期始时间
String startDateStr = requestParmsMap.get("startDate");
Date startDate = null;
// 数据期末时间
String endDateStr = requestParmsMap.get("endDate");
Date endDate = null;
String isCalYesterday = "true";
try {
if("false".equalsIgnoreCase(requestParmsMap.get("isCalYesterday"))) {
isCalYesterday = String.valueOf(Boolean.valueOf(requestParmsMap.get("isCalYesterday")));
}
} catch (Exception e) {
}
// 判断其时间顺序是否满足四个时间依次递增关系
String agentTimeCheckEnable = requestParmsMap.get("agentTimeCheckEnable");
try {
goodbusinessid = goodbusinessid.trim();
} catch (Exception e) {
}
try {
myprojectKey = myprojectKey.trim();
} catch (Exception e) {
}
try {
reportType = reportType.trim();
} catch (Exception e) {
}
try {
dataConfigId = dataConfigId.trim();
} catch (Exception e) {
}
try {
dataConfigCode = dataConfigCode.trim();
} catch (Exception e) {
}
try {
clientReqId = clientReqId.trim();
} catch (Exception e) {
}
try {
clientSymbol = clientSymbol.trim();
} catch (Exception e) {
}
try {
agentTimeCheckEnable = String.valueOf(Boolean.valueOf(agentTimeCheckEnable.trim()));
if("true".equalsIgnoreCase(agentTimeCheckEnable)) {
agentTimeCheckEnable = "true";
}else {
agentTimeCheckEnable = "false";
}
} catch (Exception e) {
agentTimeCheckEnable = "false";
}
try {
startDateStr = startDateStr.trim();
startDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startDateStr);
} catch (Exception e) {
startDate = null;
}
try {
endDateStr = endDateStr.trim();
endDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endDateStr);
} catch (Exception e) {
endDate = null;
}
if( StringUtils.isBlank(goodbusinessid) && StringUtils.isBlank(myprojectKey)) {
logger.info("请求参数有误,requestParmsMap:{}", JSON.toJSONString(requestParmsMap));
throw new RuntimeException("请求参数有误");
}
if(StringUtils.isNotBlank(clientReqId) || StringUtils.isNotBlank(clientSymbol) ) {
if(StringUtils.isBlank(clientReqId)||StringUtils.isBlank(clientSymbol)) {
logger.info("请求参数有误,requestParmsMap:{}", JSON.toJSONString(requestParmsMap));
throw new RuntimeException("请求参数有误");
}
List<EngineAchieveRequest> engineAchieveRequestList = this.engineAchieveRequestMapper.findByClientId(null, clientReqId, clientSymbol);
if(CollectionUtils.isNotEmpty(engineAchieveRequestList)) {
logger.info("请求参数有误,客户请求号有重复,requestParmsMap:{}", JSON.toJSONString(requestParmsMap));
throw new RuntimeException("请求参数有误:客户请求号有重复");
}
}
// 报表类型
List<String> dataTypes = enginegoodbusinessMapper.findDataTypes();
// 有传goodbusinessid
Enginegoodbusiness oneEnginegoodbusiness = null;
try {
if(StringUtils.isNotBlank(goodbusinessid)) {
oneEnginegoodbusiness = enginegoodbusinessMapper.selectByPrimaryKey(Long.valueOf(goodbusinessid));
// 判断是否有效
if(oneEnginegoodbusiness.getStatus().intValue()!=3 && oneEnginegoodbusiness.getStatus().intValue()!=5) {
throw new Exception("规则方案配置未生效