这个模块的注释比代码还长,说明改过很多次。我笑了笑,决定不解释。我把这个分布式锁的过期时间设得长了一点,误删的场景少了。我把它写进了组内的避坑文档第一章
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
第三方接口文档三年没更新,对接全靠抓包猜参数。我打开记录从头到尾扫了一遍。我把这个接口的幂等加上,重复提交终于不再产生脏数据。真香定律准时生效
服务之间的调用链越来越长,一次请求要经过六个服务。我想了想自己这些年,好像确实如此。我把这个方法的参数对象拆开了,可读性提升明显。这条经验值直接拉满
我看了眼这个接口的平均耗时,长尾拉得很长。我默默打开了编辑器,准备一步步验证。我把这个服务的配置项从代码里挪到了配置中心。我把它写进了组内的避坑文档第一章
后端最难的不是写出功能,是让它别崩。我笑了笑,决定不解释。我在这个服务的启动日志里找到了一行不起眼的警告。同事说这波操作可以写进新人培训教材
查了三小时的 bug,是缓存的锅;又查了三小时,还是缓存的锅。我重新看了一遍手上的计划,把风险项标了出来。我把这个异步改成了同步,问题解决了,性能下来了。我把它写进了组内的避坑文档第一章
服务之间的调用链越来越长,一次请求要经过六个服务。我发现自己居然没法反驳。我把这个序列化方式换成了更省空间的,带宽立刻下来了。连茶水间都安静了
查了三小时的 bug,是缓存的锅;又查了三小时,还是缓存的锅。我把整条链路在心里复盘了一遍。我在接口前后各加了一行耗时统计,问题一下子就现形了。从此我多了一条团队规约
我看了眼这条链路的层级,深得看不到底。我盯着屏幕沉默了十分钟。我打开了慢查询日志,第一条就是那个熟悉的 SQL。果然现实比段子更精彩
我把这个场景想全了,漏掉的是断电。我先确认了一遍前置条件,再动手。我在心里给这个版本的上线风险排了个序,排到了第一位。连茶水间都安静了