1 字段命名
确保只有两种状态就命名 isXxx;有多种状态则命名 xxxType
2 返回参数
集合返回一个空对象,对象才返回null
3 异常
异常不能抛给前端,后端捕获处理
4 需求分析
- 思考这个功能牵扯到什么业务,怎样去实现
- 看到列表的需求要想到怎样排序,是否需要分页
5 Java 基础
- == 比较地址,equals 比较值
-
包装类只能比较常量池里的-128~127,如 10000 == 10000 会返回 false
6 RPC 调用
- 不建议调用其他项目的页面接口,这种方法一旦内部改了点啥,调用方是不知道的,被调用方也不知道谁调了
- 远程传输对像要序列化,否则对象改动了字段,反序列化会出现版本不一样,然后报错
- 日志打印请求参数和返回结果,便于排查问题
public ListqueryPickUpPoint(PickUpPointQueryRequest pickPointQueryRequest) { HttpResult > result = null; try { log.info("自提点服务查询request:{}",JSON.toJSonString(pickPointQueryRequest)); result = pickPointClient.queryPickUpPoint(pickPointQueryRequest); log.info("自提点服务查询response:{}",JSON.toJSonString(result)); } catch (Exception e) { log.error("调用自提点信息查询接口异常",e); throw new TRetailRpcResultException(TradeRpcErrorCode.TRADE_CALL_PICK_POINT_ERROR, e); } if (result == null || !result.isSuccess() || result.getData() == null) { throw new TRetailRpcResultException(TradeRpcErrorCode.TRADE_CALL_PICK_POINT_ERROR); } return result.getData(); }
7 幂等
-
更新和保存方法要考虑幂等



