2020-11-12 17:10:09 阅读(169)
作为一名产品经理,在体验产品时经常会遇到一些bug,然后开发人员会说是否可以记录屏幕来复制bug。以最常用的新闻feed流为例,你之前发现同一个fed有问题(比如UI错位、数据混乱),然后刷回这个feed就没问题了。 [步骤1]发现Feeed1有bug [步骤2]下滑查看其他内容[步骤3]刷回Feeed1,发现错误消失,场景会非常尴尬,开发认为你在找东西,你刚才真的发现了错误。如果出现上述问题,我们需要学习feed流本身是如何实现的。我们有一个基本的共识:每一个feed都需要创建才能显示出来。让我们考虑一下,既然feed需要创建,那么创建feed的可能性是什么呢?首先,当我刷n个内容时,页面立即创建n个feed,这是最直观和最简单的:但一次性创建的操作是不可取的。要知道每次创建feed都需要消耗内存(可以理解为每次买一个包放在家里,家里的空间都会少很多)。然后,像今日头条、知乎、视频号这样的产品,刷了半个小时很可能已经看到了上百个内容;如果手机此时创建了上百个feed,手机创建的feed会越来越多(包包买的越来越多),手机的内存空间会逐渐不够(家里可用的房间会越来越少),手机会越来越卡。直到内存被完全占用并卡住(家里的空间被耗尽)。但事实上,当我们刷feed流产品时,并没有描述随着使用时间的延长而变得越来越卡住。因此,不建议在“刷n个内容时,页面会立即创建n个feed”。2、只有当我即将看到一个内容时,我才能创建一个feed来显示这个方案,这可以有效地避免创建太多feed导致系统内存用光的问题;以知乎为例,我们通常使用的手机最多显示5-10个知乎内容,因此系统最多只需占用5-10个feed空间。用包来理解:家里只有一面墙可以放包,包的上限是10,每次我们买一个新包,然后扔掉旧包,这样我们就可以总是保持家里有足够的空间放包。用包来理解:家里只有一面墙可以放包,包的上限是10,每次我们买一个新包,然后扔掉旧包,这样我们就可以总是保持家里有足够的空间放包。对价格敏感的产品发现了方案2的问题,为什么每次我买一个新包,我都买一个旧包扔掉啊?这不是浪费钱吗;与手机应用程序相比,它浪费了手机的计算能力,特别是当你快速滑动手机屏幕时,会创建数百个feed,数百个feed被销毁,浪费生命。因此,第二种“只有当我即将看到某个内容时,我才能创建feed来显示”实际上并不是最可行的方案。那么如何节省内存空间,避免重复计算费用呢?3、重用机制也以购买包为例。事实上,每个包的主要区别是表面差异(如纹理、颜色等)。包的主要功能基本相似。因此,在方案2的基础上,当我买了足够多的墙包时,如果我喜欢新包,如果我“花钱买一个新的,然后扔掉旧的”(方案2)太浪费了。因此,我们灵机一动地发现,新包和旧包的主要功能基本相同;然后我只需要请人帮我把旧包的颜色和质地改装成和新包一样的风格,这样我就可以以最低的成本获得新包。事实上,feed流背后也有类似的重用机制,系统首先会创建足够的feed显示屏幕;当你再次向下滑动手机时,你会拿着旧的feed重用,并更新数据。了解feed流有重用机制,我们可以回答最初的问题:“以最常用的新闻feed流为例,您以前发现过相同的feed问题(如UI错位、数据混乱),然后刷回这个feed。“以前看到错位的feedA,和你重新刷回的feeedA,虽然它的风格是一样的,但它的本质已经改变了。你第一次看到的feedA是系统开始创建的feedA,你重新刷回你看到的feedA已经重用了别人的feed,只是更新了feedA的数据。或者以包为例:房间里可以放三个包,按时间线,所以你最初买了LV、Gucci、三包PRADA。想要有Chanel包的时候,这个时候因为LV包是第一个买的,所以会把LV包改装成Chanel包,现在柜子里变成了:Gucci、PRADA、三包Chanel。几天后,你又想要以前的LV包了,所以按照时间线,这个时候你会把Chanel包改装回LV包,重新变成:LV、Gucci、三包PRADA。尽管此时还是LV、Gucci、PRADA这三个包,其实第一个LV包并不是最新的,它已经从新产品变成了二手货。这种机制可以用古希腊哲学家赫拉克利特所说的“人不能两次踏入同一条河”来概括。下次遇到feed流产品bug无法复制时,可以从feed流的重用机制来思考。
以上就是关于Bug出现、Bug消失,学习feed流本身是怎么实现的的相关介绍,更多Bug出现、Bug消失,学习feed流本身是怎么实现的相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对Bug出现、Bug消失,学习feed流本身是怎么实现的有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一