https://imgur.com/LRbzXFg https://imgur.com/K3thJ6I https://imgur.com/LyiGbsm 1.大佬们, 这样理解对嘛, 第二张图是我思考的, 开发 Service 需要考虑调用的情况嘛, 虽然 Controller 层进行了 @Valid, 如果自己或者别人直接调用 roleId 和 employeeIdList 还是会出现空指针, 是否还需要加上校验呢, 一般企业开发需要考虑到 service 自己和别人调用的情况嘛
public 方法, 对传入参数要做防御性判断, 并打印 log. 看你代码, 好像这两个都没做, 这在大厂恐怕不能通过 review. 上线出问题你都不知道是不是你代码自己的问题, 还是别人传入参数的问题.
@wxw752 大佬, 如果加上校验, 返回什么比较合适呢, 错误提示嘛 /** * 批量删除角色员工关系 * * @param roleEmployeeUpdateForm * @return */ public ResponseDTO batchDeleteRoleEmployee(RoleEmployeeUpdateForm roleEmployeeUpdateForm) { if (roleEmployeeUpdateForm.getRoleId() == null || CollectionUtils.isEmpty(roleEmployeeUpdateForm.getEmployeeIdList())) { ResponseDTO.error(UserErrorCode.PARAM_ERROR, "参数错误"); } roleEmployeeDao.batchDeleteRoleEmployee(roleEmployeeUpdateForm.getRoleId(), roleEmployeeUpdateForm.getEmployeeIdList()); return ResponseDTO.ok(); } 类似这样嘛
看上下文以及自己需求, 如果允许代码 break, 就抛 exception, 如果还有返回那就自己 handle, 返回约定的结果, 但重要是的是打印 log, 防止扯皮, 在大厂, 上线非常重要的是打印 log, 要不然你自己说不清楚, 出问题, 锅就是你的.