【编者按】APP的火力全开的互联网时代占据着绝对重要的位置,每一家公司都在其中投入了很大的人力和物力,可随着业务量的增长,愈来愈多的APP无比挑战者技术人的技术造诣,与此同时,APP本身面临的挑战也愈发明显:庞大的用户群体、高频高并发的业务、交易即时性等,最为重要的是性能优化也成为首要去解决的难题。据悉,饿了么移动技术部高级iOS工程师高亮亮将在SDCC 2017·上海站之互联网应用架构实战峰会带来题为《新瓶旧酒——换个角度提升 APP 性能和质量的实践之路》的分享,更多架构峰会嘉宾和议题请点击这里。
以下为专访正文:
【嘉宾】高亮亮,饿了么移动技术部高级iOS工程师,负责饿了么商家版iOS App开发。对iOS架构和系统底层有深入研究,擅长移动性能分析,trouble shooting、iOS逆向等重难点工作。
CSDN:请先和大家介绍下您和目前所从事的工作,以及关注哪些技术领域?
高亮亮:大家好,我叫高亮亮。郑州大学软件工程专业毕业的持证上岗的软件工程师(开个玩笑),现任饿了么移动技术部移动基础架构组高级iOS工程师。
- 从事工作:目前负责饿了么Mobile Infrastructure Platform相关研发工作,宗旨是为工程师提供一站式移动基础服务平台,将重复的工作系统化,系统的工作自动化,从而解放生产力,提高生产效率。
- 技术领域:目前主要Focus在移动应用性能质量&移动安全方面。
CSDN:您是什么时候关注移动开发领域的?
高亮亮:关注移动开发领域相对较晚,大概是从14年左右开始的。在此之前有主要Focus Web 技术,正是这些Web 相关技术和思维方式让我可以在短时间内快速上手移动端开发。
CSDN:移动端的APP有着怎样的特点?
高亮亮:
- 发布周期长,稳定性要求高;
- 网络环境负责,系统和设备碎片化严重;
- 很难建立端到端的监控体系;
- App安全问题日趋严重;
CSDN:随着移动互联网的发展,我们越发要关注移动页面的性能优化,您觉得为什么要最移动页面进行优化?
高亮亮:个人简单对App分为三个档次,能用,可用和好用。
- 能用:功能可用,不会出现大量crash;
- 可用:服务稳定,不会大量宕机而造成App不可用;
- 好用:服务稳定,页面流畅,操作简便;
既然定好App级别,那么接下来就可以有的放矢。比如页面性能,现在FPS是多少?期望值是多少?相比测试人员肉眼感觉,我更相信数据。通常在优化前我会拉取当前可以获得的数据,然后根据数据进行分析。然后制定优化目标。
CSDN:该怎么做移动端页面优化呢,有哪些常见的手段?
高亮亮:首先,也是最重要的一点就是数据,不然就会出现拍脑袋的情况,盲目优化找不到重点。
其次,根据数据找出用户最常使用的页面,每个页面和功能点的跳转率。然后拿出这些页面的渲染时间,和主要API相应市场,针对性的设定目标进行优化。
常见的优化一般分为性能优化,资源优化,稳定性优化三方面,优化方案也可以分为有损和无损两种。
1. 静态代码分析,Android & iOS 平台的 IDE 自带这样的分析工具,做起来也是非常方便。其它静态代码分析工具如Sonar,Facebook Infer等也非常不错。
Code Inspections 分析示例如下:
Infer 分析结果示例:
2. 通过APM 找出优化点,如下图是饿了么自研APM监控到的客户端App网络性能图;
CSDN:一个优秀的移动开发者需要哪些工具、技能和素养?
高亮亮:我也正在朝着成为优秀的移动开发者而努力,至于需要什么我相信大家心里都有答案。
对我而言,工具方面一台MBP和搜索引擎就够了,前者能够在学习&开发环境上提供强有力的保障,后者提供高效的信息获取,快速的成长离不开主动、高效的学习和实践。
技能方面,学习能力和Soft-skill尤为重要。在饿了么的成长过程中,我对此深有体会。逆水行舟、不进则退,在优秀的团队中没有极强的学习能力和求知欲很容易掉队;Soft-skill范围较广,大概可以归纳为“不仅做好本职工作,还要有敏锐的嗅觉,可以对工作进行终结归纳。学会换位思考,不断提高自身沟通能力“。
个人认为工程师最主要的素养是自我驱动力,主动去发现并解决问题,乐于善于发现这些阻碍前进的绊脚石,才能不断地提升自我,输出价值,成为优秀的开发者。
CSDN:能否推荐几本适合移动开发者学习的优秀技术图书?
高亮亮:移动技术领域这两年变化也比较快,新概念新技术层出不穷,因此我更倾向于看官方文档和在相关技术社区学习新的知识。
看过的书不算很多,其中有两本比较适合推荐,一本适合入门的《JavaScript高级程序设计》和比较适合深入学习的《深入解析Mac OS X & iOS操作系统》。我觉得对于移动开发者来说,一本非常好的JavaScript技术入门书是必备的,另一本由于我是做iOS开发的,在向底层知识摸索的过程中,后者在方向引导和知识漏洞填补给了我很大的帮助。
CSDN:在本次SDCC 2017(上海)架构峰会上,您分享的话题是?请简单给大家介绍下。另外,您希望听到别人分享哪些内容?
高亮亮:我分享的话题是提升移动App性能的实践之路,面向广大的一线开发者。届时将现身说法,将这几年在不断提高App性能方面的采坑挖坑经历向大家一一介绍,希望能够给大家一些新的角度与思路来解决提升移动App的性能质量。
另外,我个人对移动安全方面很感兴趣,以往参加的大会在这方面的话题都比较少,希望这次的大会上能有相关领域的专家分享更精彩的内容。
SDCC 2017•上海站将于2017年3月17-19日登陆申城,三大技术峰会和24位嘉宾,汇聚国内知名的互联网公司CTO、架构师、技术总监,畅谈运维、数据库和架构的热门话题和技术热点,遇见精益运维发起人&优维科技CEO王津银、MongoDB大中华区首席架构师唐建法和华为软件API开放平台架构师李林锋等大牛。截止3月5日前门票八折优惠中,5人以上团购立减400元,详情点击注册参会。