微信号:egonetworks

介绍:EGO(Extra Geek Organization),超级极客邦,是极客邦科技旗下高端技术人聚集和交流的组织,由InfoQ中国团队运营,旨在组建全球最具影响力的高端技术人社交网络,线上线下相结合,为会员提供专享服务.

React Native,给移动端瘦身 | EGO 走进携程实录

2017-09-05 18:01 EGONetworks

随着无线业务和开发技术的高速发展,APP已成为大多数互联网公司连接用户的核心渠道,移动应用架构也需要根据业务和新技术发展而不断进化。携程在移动端发力已超过6年,在无线开发和新技术探索方面具有业界领先的优势。

2017年8月27日,全球最具影响力的高端技术人社交网络EGO,带领上海分会近40位CTO、技术总监等顶尖技术领导者,一起探索携程无线开发的实战经验。

2015年,携程总部迁入处在上海虹桥临空经济园区的凌空SOHO,区域内有超过800家企业总部,是连接整个泛长三角地区最具活力和辐射力的国际化商贸总部聚集区。

凌空SOHO是继北京的银河SOHO、望京SOHO之后,SOHO中国与建筑设计师、普利兹克奖获得者扎哈·哈迪德联手打造的第3个建筑精品。

还未踏入园区,建筑外观的未来感和科技感已经扑面而来,宛如两列巨型高铁蓄势待发的商业楼宇传达着创意和互联网精神。

除了地理位置优越,携程总部内部也很值得参观。进入正厅,一面气势恢宏的历程墙带领参会者回顾了携程从创立至今的历史和成绩。

历程墙的对面是携程依托大数据的实时分析能力,制作出的实时、动态的可视化订单展示系统,不仅订单生成状况一目了然,更可实时了解目前各地区、景点的热度情况。不停闪烁的光点将冰冷的数据转化成了生动可视的形象。

携程的员工福利也令人羡慕,台球桌、跑步机、按摩椅等健身娱乐器材配置齐全。

参观结束后,参会者们怀着好奇和期待的心情进入了令人期待的分享环节。

携程技术中心基础业务研发部高级研发经理赵辛贵,在本次活动中分享了《React Native在携程的工程实践》。

携程App于2011年开始开发,随着功能的增多,问题也逐渐凸显。受到APP包大小限制、H5 Hybird性能瓶颈、开发效率低等多种因素影响,携程于2015年引入React Native。在2017年1月已经开始规模化使用。

通常情况下React Native 开发会面临打包出来的 JSBundle 过大,首次进入 RN 页面加载缓慢等问题。对于携程这种动辄几十个业务的场景,这些问题是不可接受的。

基于这些问题的存在,携程对 RN 官方的打包脚本做了改造,开发CRN(Ctrip React Native) 。将框架代码拆分出来,让所有业务使用一份框架代码。将JS执行时间放到后台预先做完,大大的提升了页面加载速度。

分享的最后,赵辛贵还总结了使用RN的注意事项:

1.大量业务使用证明RN的性能和稳定性可靠,适合大规模采用

  1. RN开发,能降低业务开发维护成本,满足性能与快速迭代需求

  2. 入门难度偏高,要有心理准备,一旦熟悉,可控性强

  3. 大规模使用时,最好是有专门团队统筹开发框架和开发发布环境

随后,携程高级无线开发总监和无线技术委员会主席陈浩然分享了《携程无线网络服务方案》。

2016年初,携程无线APP有两个通道:一是Native,基于TCP设计的一套网络服务通道,连了TCP Gateway;二是Hybrid,用GS写界面,最后是通过传统的HTTP请求到达HTTP Gateway,TCP Gateway和HTTP Gateway最终链接到对应的SOA服务。

陈浩然在演讲中表示,TCP协议是传统协议,位于第三层,只控制网络层的传输协议,到了应用层还是需要设计一层应用层协议,类似RPC机制。携程的TCP Gateway分为两个部分:第一部分是在接入层管理TCP连接,主要基于Netty实现,负责App端TCP连接管理;第二部分是在路由层,基于Netty Zuul对服务进行路由、监控、安全、鉴权方面的管理。

之所以需要Gateway,是因为携程业务很多,目前有20多个事业部,每个事业部有自己的服务集群,如果将所有的服务集群耦合在一起,每个BU的发布都会影响到其他BU。而设置Gateway进行服务转化,后端所有业务逻辑是完全分割开来的,相应的部署、发布、监控都是完全割离开来的,这样可以避免干扰,提升效率。

携程最新的无线网络服务通道架构图,不管Hybrid还是Native,都是走TCP连接做网络服务,Hybrid有一个内部API来控制去发送网络请求,不需要再让系统来控制HTTP请求到HTTP Gateway,而只是全部用Native TCP连接到TCP Gateway,如果是Hybrid请求被包装过了,就转成HTTP请求到HTTP Gateway,如果是正常TCP请求就直接发送到对应后端服务。

演讲的最后,陈浩然总结,现有无线服务模型是Request-Response模式,存在无法实时推送业务数据变更的问题,业务需要数据变更时只能轮询拉取,低效且不够及时。对此,陈浩然表示未来的方向将会是:Server-Push。

除了携程的两位嘉宾,EGO还专门从外部邀请了微店 Android首席架构师彭昌虎分享《微店Android插件化架构重构实践》,从另外的角度解读移动端技术。

插件化技术在Android上发展了几年,已经出现很多好的插件化开源架构,插件化技术已经不新鲜。但能够实际落地的还不是很多,微店从2016年初开始插件化改造工作,2016年底基本完成。彭昌虎为大家分享了微店过去一年的插件化改造历程。

所有分享结束后,以一张合照结束了EGO走进携程的活动。

关于EGO

人工智能发展到今天,几乎已经无处不在了。从传媒到零售,从教育到金融,从家居到医疗,从安防到物流,人工智能正在一个又一个行业掀起变革!新时代的来临,必将淘汰一批人,同时成就一批人。摆在技术人面前的,是一个巨大的挑战,也是一个难得的机遇,但身为公司技术领导人的你,该向谁学习?——极客邦旗下的高端技术领导者社群EGO,汇聚全国近400位技术大牛,链接技术圈顶级资源,提供丰富的学习交流形式,助力技术领导者开拓视野、提升能力、解决问题、达成合作,精准把握时代脉搏!

9月1日至9月15日,EGO会员招募季正式开启,点击阅读原文抓紧报名!


 
EGONetworks 更多文章 深度学习框架TensorFlow、Caffe、MXNet、PyTorch如何抉择?6 位大咖现身说法 2017 年第 35 周 | 每周精华 轻松筹 CTO 李汐:什么样的程序员是更值得信赖的? 提认知,阔视野,交朋友,找资源……哈,技术领导者的社交圈原来这么有意思! 为什么人人都爱听马云讲话?这些技巧值得学习
猜您喜欢 从Trie到Double Array Trie Couchbase介绍,更好的Cache系统 安全牛课堂直播:漏洞分析利器之Linux内核调试器 Mysql优化中Profiling的使用 mojo教程[03]表单