ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

记一次差点被带偏的事例

2022-02-19 12:01:07  阅读:148  来源: 互联网

标签:文件 一次 账单 多个 事例 生成 问题 差点 方法


本周其他同事值班时,接到线上反馈账单问题并排查出来是我写的一段代码抛异常了。

于是找我聊。我写的这段代码背景是当时应付账单往下游推结算时需要将账单明细文件的url也传递下去,当时我写了一个方法入参是账单号,出参是url,但是这个方法处理过程中回去查询账单文件表,如果查到多条记录就会抛出异常,现在线上反馈的问题正是这个异常导致。

一开始想让我改下代码,理由是我没有考虑找到多个文件时需要排序取最新一个的情况,乍一听很有道理的样子,顿时我也蒙了,我竟然漏考虑了这么常规的问题,但我内心其实仍然不太接受,因为这不是我的风格。

于是我私下仔细地把自己写的代码翻看一遍,尝试回想当时的思路。第一点:我当时将这个方法抽到service中作为公开方法,一定是我没找到现成可用的方法,而这又是一个公用的东西;第二点:站在这个方法定位上看,这个方法是对外提供根据账单号获取对应账单明细excel文件下载的URL的功能,若找不到代表还没生成文件此时返回null是正常的,若找到多个则一定是错误的,说明生成过程存在问题,因此抛出异常,至于为啥生成了多个,该问题在此处是不得而知的,也不应知道,因此这个方法不应承担对多个结果的筛查功能,如果这里画蛇添足做了筛查处理,那么系统中存在的问题将无法暴露出来。这么一梳理,豁然明朗,我这里抛异常是对的,就该这样,解决此问题的思路应是彻查为啥生成多个,如果允许生成多个那么也应当由生成的人来负责判定哪个是有效的。最后同事找到原因是账单V4之前有个漏洞导致生成多个,将那段时间的脏数据删除便解决了。

 

通过这个事情,再次映证写每个方法时细扣定位和职责虽然花时间但是是值得的,不少做也绝不多做,各司其职才能避免问题复杂化,这个案例生动的展示了低耦合的价值和意义。

标签:文件,一次,账单,多个,事例,生成,问题,差点,方法
来源: https://www.cnblogs.com/maimode/p/15912200.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有