上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

从简到繁-Instagram iOS团队如何随着产品一同成长.pdf

编号:95503 PDF 36页 8.96MB 下载积分:VIP专享
下载报告请您先登录!

从简到繁-Instagram iOS团队如何随着产品一同成长.pdf

1、成长的烦恼:INSTAGRAM IOS 团队如何随着产品成长成长的烦恼Instagram月活和产品线迅速发展-从14年开始,每7个月增加1亿月活-已突破10亿月活-信息流,私信,Stories,IGTV?2成长的烦恼-复杂的列表-大量实验相互干扰-编译时间越来越长 iOS工程团队如何迎接挑战演讲内容?31复杂列表的解决方案:IGListKit+MVVM2大规模对照试验3加快编译速度:Buck+Focus+Focus Project长列表:UICollectionView:-高度可定制-业务逻辑和UI代码分离 听上去很美好?4UICollectionView图片信息流:基础代码?5图片信息流:添

2、加点赞数?6图片信息流:添加点赞数?7用户增长组:添加关注组件?8用户增长组:添加关注组件?9长列表:分散的逻辑UICollectionView:-高度可定制-业务逻辑和UI代码分离 理想很美好?10现实很残酷-几十个工程师在同样几个函数上反复添加逻辑-业务逻辑和设计需求耦合-代码可读性、可维护性下降-添加一个新UI需要修改多个团队的代码-臃肿的ViewController代码长列表:寻找成长性好的框架?11用户增长团队信息流团队寻找一个框架-减少团队间的代码耦合-让业务逻辑和设计需求分离开来长列表:IGLISTKIT起源于列表设计 增加一层SectionController,分拆业务逻辑 鼓

3、励代码重用 高效列表刷新机制 https:/ 尺寸、颜色、字号-只包含必要信息UserHeaderCellPhotoCellUserRecommendationCellCell-展示数据信息流团队用户增长团队长列表:IGLISTKIT优化后?14用户增长团队Data Model-View Model信息流团队?15长列表:SECTIONCONTROLLER由具体一个团队来维护,和其它团队代码解耦 专注于业务逻辑 设计需求已经在ViewModel和Cell当中,和业务逻辑充分解耦演讲内容?161复杂列表的解决方案:IGListKit+MVVM2大规模对照试验3加快编译速度:Buck+Focus+

4、Focus Project对照实验:快速迭代的核心工具通过随机抽样实验,来选择出相对较好的产品方案 核心优势:无需理解和争论复杂的用户行为逻辑,直接告知结果 Instagram等社交类产品面临着复杂的用户心理,需要一个客观有效的工具来指导产品决策;对照实验就是社交类产品快速迭代的核心工具 良好的副产品:用于发现代码中的bug 缺点:用户规模要求高,实验到决策时间较长?17对照试验:案例添加关注组件:-对用户留存有帮助吗?有多少帮助?-对信息流展示量有负面影响吗?有多大影响?对照组:-控制组:不显示关注组件-实验组:显示关注组件对照试验:案例用户来到页面时做曝光记录:if(_experiment

5、sManager.logAndGetResult(“关注组件”)/显示关注组件 查看结果:(7天后)-实验组的用户留存率提升1%-实验组的用户信息流展示量下降0.2%对照试验:确保实验方案连续性目标:用户在同一次App使用体验中,其所处的实验组应当是一致的避免:启动App时处于控制组,过了几秒钟处于实验组 难点:App启动的一瞬间,很多实验就要开始运行了;用户所处的实验组信息是通过服务器端控制和改变的,几秒钟后才获得最新的实验方案?20对照试验:确保实验方案连续性解决方案:启动App以后,一直使用之前的实验方案;最新的实验方案在下一次App启动时才开始使用/用户启动App时_experimen

6、tsManager.applyOldPlanFromClientCache();_experimentsFetcher.fetchNewPlan(experiments)/保存实验方案,供下次使用 DiskCache.cacheExperiments(experiments);/用户关闭App时if(_diskCache.experimentsChanged()/强制关闭App,确保下次启动为冷启动?21大规模对照试验:实验的相互干扰一个页面进行多个试验时,容易出现这种实验叠加的状况:if(_experimentsManager.logAndGetResult(页面重构)if(_experim

7、entsManager.logAndGetResult(“关注组件)/新的页面架构,显示广告预览 else /新的页面架构,隐藏广告预览 else /控制1:旧的页面架构?22关注组件实验是可靠地;页面重构实验会受到污染,实验组中出现了关注组件实验的数据,控制组却没有大规模对照试验:解决方案1?231)确保关注组件实验能在页面重构实验的控制组中工作。if(_experimentsManager.logAndGetResult(页面重构)if(_experimentsManager.logAndGetResult(“关注组件)/新的页面架构,显示广告预览 else /新的页面架构,隐藏广告预览

8、else if(_experimentsManager.logAndGetResult(“关注组件)/旧的页面架构,显示广告预览 else /旧的页面架构,隐藏广告预览 代价:工程复杂度随着试验的个数指数型增长代码量=2N大规模对照试验:解决方案2?242)空间分离:之前2个不同的试验,会导致一个用户出现在2个试验组当中的情况。可以设计成1个试验,有三个分组:控制组、页面重构试验组、关注组件实验组同一个用户只可能处于一个实验组中,工程师不需要考虑试验的排列组合 代价:-每个试验的样本空间变小了50%33.3%试验结果的准确率会下降-需要不同功能协调同时开发大规模对照试验:解决方案3?253)时

9、间分离:多个实验分先后进行。代价:试验推进速度变得缓慢大规模对照试验:审视实验结果控制组的用户添加了10000个好友,实验组添加了10050个好友。关注组件能够增加 0.5%的好友关系吗?根据实验组大小和实验结果的均值,来确定可信度控制组的好友关系增加了0.5%,但图片阅读量下降了0.2%。这个交换值吗?需要团队协同做出决定好友关系第一周增加了0.5%,第二周呢?可持续吗?需要更长的时间做出决定大规模对照试验:减少主观偏差?27人人都渴望自己的功能和实验有好的结果引入多人多维度解读实验:-产品经理、工程师、设计师、数据科学家-考虑置信区间-权衡得失-延长实验时间-引入多人共同解读实验数据,减少

10、主观偏差对照试验:避免复杂性实验的代价:-实验方案需要花时间科学地确定-工程师需要维护多套代码-实验结果解读费时费力 降低实验复杂性:-多个小改动放在一个实验中进行,做整体评价-有些确定性的改动,绕过实验环节,直接发布?28大规模对照试验:实验解决不了的问题“如果乔布斯通过AB实验来设计手机,那么世界上不会有iPhone,只会有一款更好的诺基亚手机。”颠覆性的产品,前期看起来往往很脆弱,无法和旧的庞然大物进行公平的实验。用实验来指导稳定的更新和迭代,寻找产品中的bug;避免用实验来指导产品大方向。?29演讲内容?301复杂列表的解决方案:IGListKit+MVVM2大规模对照试验3加快编译速

11、度:Buck+Focus+Focus Project编译速度:必经的痛苦之前的努力:代码解耦重用了,试验相互分离了,更多工程师能方便地协作了 必然结果:代码量迅速增长 XCode不是为大型代码库所设计 Apple自己大量使用编译好的library,无需XCode编译所有源代码?31三十秒一分钟几分钟半小时崩溃十几秒冷编译速度工程师心情编译加速:BUCK通过并行编译和结果缓存,加快编译速度 确保所有工程师的编译环境一致 https:/?32编译加速:FOCUSBuck的加速不够,因为本地机器依然需要编译所有的模块 信息流团队能否只编译信息流相关的代码?滤镜团队能否只编译滤镜相关的代码?服务器针对近期的commit,编译并缓存每一个模块 工程师决定自己需要Focus在哪一个或几个模块的代码,这部分代码将从工程师的机器上直接编译;其余所有的模块直接从服务器下载编译好的结果?33半小时十几秒演讲内容?341复杂列表的解决方案:IGListKit+MVVM2大规模对照试验3加快编译速度:Buck+Focus+Focus Project小结Instagram工程团队的哲学:从简单出发 解决方案朝未来看几个月,留出一定升级空间 产品的爆发增长时,根据新的需求升级或重构基础架构 基础架构强调代码解耦和迭代效率?35

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(从简到繁-Instagram iOS团队如何随着产品一同成长.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部