一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。 因为最近学习了《重构-改善既有代码的设计》本书,早上看到业务代码不规范就手痒想操练一下。谁知道就给自己挖了一坑记录如下:
重构前代码结构:某一个service里完全同名的两个方法实际上却干了2件完全不同的事情,这不是严重的影响了读代码人的感受吗
MyTaskService{ //根据名称新增一个人 boolean handleAddPerson(String name);
//定时任务检测到失败的任务时,重新新增
boolean handleAddPerson(TaskDTO task);
}
MyTaskServiceImpl{ //根据名称新增一个人 boolean handleAddPerson(String name){ //todo }
//定时任务检测到失败的任务时,重新新增
boolean handleAddPerson(TaskDTO task){
//todo
}
} 当看到方法签名完全相同,实际上承担不同功能时,在接口MyTaskService里手动通过右键-refactor-重构了handleAddPerson(TaskDTO task)方法为handleReAddPerson(TaskDTO task), IDEA会自动的重构使用到该方法签名的代码处,但是!但是!但是!却不会在实现类MyTaskServiceImpl里重新修改handleAddPerson(TaskDTO task)方法名称为handleReAddPerson(TaskDTO task)。 马虎的我修改完后,没有重新build一下project或者是本地run项目,手残的就提交了代码导致CI构建打包失败,差点被记大过处理。真是魔鬼在细节!
应对方案:坚决不可直接提交代码,务必重新build一下project或者是本地run项目,便可以立即看到报错提示接口的实现类编译失败,从而快速的修正实现类的方法名。