今天你设计了吗?
背景
在开发过程中你是否有遇到过这样的苦恼?产品发来一个需求,没做过,但是看完需求感觉应该处理起来很简单,然后找到对应的业务代码,发现代码像打乱的毛线一样理不清楚,各种逻辑嵌套,各种特殊判断处理,想要拓展维护个内容却无从下手,一边看着代码,一边用手拨动着本就为数不多的秀发,然后口吐芬芳 。

在开发过程中你是否有遇到过这样的苦恼?产品发来一个需求,没做过,但是看完需求感觉应该处理起来很简单,然后找到对应的业务代码,发现代码像打乱的毛线一样理不清楚,各种逻辑嵌套,各种特殊判断处理,想要拓展维护个内容却无从下手,一边看着代码,一边用手拨动着本就为数不多的秀发,然后口吐芬芳 。

接口性能优化,这个在长期的开发中都是一直持续要做的事情,因为随着业务增长,用户使用量增加,业务复杂度增加,业务表数据量和请求量的增加,接口从原来 100ms 左右,逐渐变成几百 ms,甚至个别请求到几 s,所以我们就需要对业务中,平均请求响应时间比较慢的接口进行性能优化
从事服务端工作,已经有大几年了,从懵懂的小菜鸡,成长为可以自由飞翔的秃鹰,那些逝去青春和的头发见证了自己的成长
或许,这就是高手的应该有样子吧

这里记录一次莫名其妙的问题排查的经历,一天快下班之际,测试反馈说测试环境出现了调度脚本报错,输出错误日志,如下:
# 日志输出时间:[2020-05-14 17:37:00]
SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction[SQL]并且后面无法重现问题,时间:18:10 左右我开始排查问题
用户上传的宝宝相册记录,一个记录可以包含 N 个照片,产品期望给用户输出影集,如:一周/宝宝百天/宝宝生日的影集
用户同一天可能会有多个记录
简化需求内容,产品期望可以将数据按周期筛选出并分散的到日期,相同记录 ID 下,再分散到每个照片
多数的移动端 APP 都会有做任务领取奖励的功能模块,这类需求的目的是培养用户使用习惯,提升用户活跃性,用户完成任务获得积分奖励,通过积分兑换商品或者充值话费,微信体现等。