前言:这是我最近在公司内部分享的一篇文章,大家反响比较强烈,所以也分享到博客里来。 一转眼,来公司已经三年多了。 这三年里,所属部门在变,地理位置在变,技术也日新月异,但是有很多设计原则却是一直不曾改变的,而这次就是我用自身的实践来谈谈我对其中的一个的理解---有损服务。 记得当年qwang用一个很形象的比喻来解释有损(原话记不太清楚了): 比如一个人在沙漠里迷失了寻找水源,那么在他还能走的时候,就尽量走;实在走不动了,用爬的;最后爬也爬不了了,起码要保证自己活着。 所以我们从这个比喻中起码可以获得如下几个信息:
- 问题时,优先保证关键功能
- 非关键功能不可以影响关键功能
- 在条件允许的情况下,损失越少越好
接下来就从自己印象比较深刻的有损服务项目讲起吧。
一、空间应用列表有损服务优化
想当年,苍井空还是处女,玛利亚还姓圣母。好吧,扯远了,想当年第一款国民级应用《QQ农场》横空出世,其空前的火爆导致空间个人中心应用列表的农场图标变得如此重要。 然而由于各种网络等各种原因,这个列表的展现总是会有一定的失败率,而且只要稍微失败就会招来大批用户的投诉。 我们分析一下这个模块的功能:
- 正常功能:正常展示用户已经安装的应用列表
- 关键功能:正常展示用户最关心的基础应用(如日志)、火爆游戏(农场)等的应用列表
于是优化开始了……
Step1. 应用信息本地cache
由于应用列表第一个要获取的就是应用自身的信息 ...