问题背景
前不久我们项目中由用户反馈说遇到笔记重复的问题,而且不只一次遇到类似的反馈。
这种重复笔记总是出现的feed流的中间位置,如下示意图所示:
这个图画的有点丑,凑合看,意思大概就是这样的。
接下来,我就得追踪下这个问题了,开始时我几乎就一口咬定是接口返回的有问题,由于前几次后端没有日志,好像之前的反馈就那么过去了,直到后面又出现一次重复笔记的问题,这次是公司内部员工出现的,于是后端也通过这个抓到了相应的日志,发现返回的笔记的确没有重复的,这下跑不掉了,就是前端的问题。
问题排查
于是,我又重新梳理了下代码流程,发现有一处比较有嫌疑:
...
if (...) {
mItems[0] = noteItem
} else {
mItems.add(0, noteItem