|收藏本站

赵原:微信技术开源 让天下没有难写的APP

2016-12-28 17:33:41

腾讯科技讯 (韩依民) 12月28日, 2017年微信公开课PRO版今天在广州亚运城举行,微信公开课讲师赵原在会上发表演讲,对微信的移动应用开源项目进行了介绍。


赵原介绍,微信开源的高标准和严要求体现在四个方面:价值、优势、活力、易用。


具体的开源能力有Tinker 热补丁技术和跨平台网络基础组件Mars。


“我们说开源不仅是一种态度,更是一种能力,我们希望通过微信的开源做一些改变,我们希望通过微信的开源打通我们内部的团队,和外部社区结合在一起,一方面我们把微信传递给了大家,另一方面也想把大家的思想传递进来。”


大家下午好,很高兴今天能够有机会在这里和大家聊聊微信开源这件小事。从2015年开始,我们和华南理工、中山大学两所学校开展了一个合作,在这两所学校中开通了相关的课程,在这门课程中来自微信的技术团队10来位同事一起从零开始将我们在客户端开发的点点滴滴的经验编成课程,并且我们自己去学校给同学讲述,我们花了很多时间和精力在里面,大家都很累,其实这是持续要做投入的事情,可能你们会好奇说为什么微信做着做着要跑到学校开课程。


中国有句古话说得好,授人以鱼不如授人以渔,我们说微信其实在这么多年的发展中对外部、对合作伙伴开放了很多合作平台,让第三方开发者、设计师和商户都一起共享微信生态建立后的成果,我们有时候也在想,作为技术人员实现了这些平台之后,我们有很多业务技术实力在里面,我们能不能把一些思想和更本质的东西传递给大家,我们试着提出了一个小目标,让天下没有难写的APP。


这句话很短,但想实现并没有那么容易,我们在这两所学校开设的课程中,我们认为传递移动开发经验到底有哪些途径可以做。首先是文章,我们通过建立微信公众号,将微信的技术团队和WEB开发者打造成一个团队,把相关的技术传递出去,在文章之外我们还做讲演,来自微信一线团队的各个部门的讲师将微信开发过程中最直接的想法和WEB的开发者进行思想上的碰撞。


做完这两件事情,除了口头上讲述一些内容,我们有没有更本质的东西要做。回归本原,我们说做技术思想的传播,工程师之间最好交流的方法就是写代码,所以我们最后选择了微信做技术开源这件事情。


大家可能会好奇说,微信做技术开源,我们应该注重什么,从表层上说我们开发出来的代码是写的很好的,很工整的,可读性是有考量的。微信开源的高标准,高要求只能通过表层展示出来吗?经过思考,我们觉得微信开源的高标准和严要求体现在四个方面:


第一个关键词价值,做有价值的事情,无论对于用户还是开发者,我们说有价值,是说我们微信开源的技术项目一定来自微信一线的业务产品开发,不是任何人凭空设想出来的东西,所有开放出来的这些移动方向的技术内容都支撑着微信如此大规模产品和业务。


第二个关键词优势,我们说微信最大的优势是什么?其实是有非常多海量的用户,移动开发领域中,这个优势有什么帮助?意味着我们可以在很多别的开发者,根本没有发现或者遇到过的复杂问题的时候,我们都早已经解决掉了,在移动开发领域这一些问题很多,比如系统兼容性问题、比如用户多样化的网络环境等等。


第三个关键词活力,微信开源的项目必须来自微信,最后必须在微信落地,我们说开源项目最怕什么?最怕没人维护,通过产品迭代,这些开源的项目持续的更新,给他们一个心跳的机制,使他们依然有活力。


第四个关键词易用,易用怎么理解呢?作为一个程序员,我可以花上很多的时间研究微信开放的技术源码的技术思想和设计,我们其实想说,对于不是很有技术实力的开发人员,是否能从微信的开源项目中依然获益呢?答案是肯定的。他可以将微信开源的项目引入在自己的APP中,将微信很多的能力运用在自己的APP中。


1、Tinker 热补丁技术


我们的代码你可以引用,可以与上游的代码进行合并,接下来我们面临的问题就是做什么,还记得我们说移动终端开发课程吗?这门课程中,我们经过盘点,开发APP的三座大山分别是UI框架、数据库和网络。因此微信第一批的项目在这三个项目选定了,我们定了MMDB移动数据库和Mars跨平台网络组建。Tinker已经在9月份对外开源了。


每一个版本的迭代和更新都需要审核交给用户,如果说这个流程,其实在我们版本规划比较正常的时候是不会有太多问题的,我们都提倡敏捷开发,这个过程中,敏捷开发和快速迭代,BUG出现的机率非常高,我们的APP都有BUG,如果我们都像这上面的表框这样的话,可能需要很长时间,交给用户的时候,用户可能不用你的应用了。


其实热补丁就是在这样的环境下诞生的,不断的生成上线交付给用户,其实都是开发环节的最后一个部分,我们看这个流程,其实可以简化成这样。我们重新变回了PC交互时代,开发者可以零距离触达用户,这就是热补丁技术的价值。


我们明确了热补丁有什么价值,为什么微信做Tinker?其实在Tinker诞生之前,行业里面已经出现了或多或少的开源、闭源的技术。我的同事说热补丁不是请客吃饭那么容易的。微信Tinker追求工程化可用性,这是Tinker研发之初,我们设置的目标,什么叫工程化可用性?主要是稳定性、兼容性、高效性。


Tinker通过微信客户端多个版本迭代,已经覆盖了数亿用户,稳定性和兼容性得到了保障,微信使用Tinker到现在,已经覆盖了安卓4.0到7.1所有的用户,Tinker在开发的过程中,我们会发现,我们要做一些更好的性能,除了没有使用行业内标准算法之外,我们微信有自己的算法,可以使补丁变的非常小。我们其实不敢说微信的Tinker在行业里面的热补丁技术是最好,但我们敢说微信的Tinker的热补丁是让每一个人用起来最放心的项目,微信的Tinker的优势也在于此。


活力,不得不提起一个尖锐的问题,在大公司里面做开源项目,开源通常意味着这个项目的结束。优秀的开源项目意味着开始,和大公司里的开源项目做法天生有一些冲突。


第一大公司里面做开源项目其实是有一些短期KPI导向的短期项目,开源项目需要持续的人力投入在其中。第二个问题,每一个团队里面员工开发的精力是有限的,做技术研究的时候,需要花很多时间在供应商的开发,这是从员工方面看开发精力的冲突。第三大公司内通常有完备的开发体系,而这些开发是封闭的,很难说和外部的开源体系对接起来。


今天看这个问题,我们也想过很暴力、很简单的想法,比如说团队10个人,这10个人可以做功能开发,如果为了解决这个问题,再招10个员工砸在开源项目上,大公司可能最不缺的就是人力,问题是在大公司里面看上去是可以解决的,但放在微信上面,我们觉得行不通,微信讲究小团队作战,讲究精兵策略,不浪费一兵一卒。


为了解决这个问题,我们在开发Tinker项目的过程中,大概用了快一年的时间解决,其实解决问题的方法很简单,简而言之,将微信的开发团队改造成一个开源化的开发模式。


我们通过对内部系统的改造,使内部的开发和外部的开发模式基本没什么不同,我们做到了一份代码,既可以在微信中使用,也可以在外部的开发者中使用,这科技减少额外的人力投入。


其次我们还收获了很多价值,外部的开发者还可以给我们提供一些我们没有发现的问题,对于微信来说是一个很好的优化bug的渠道,最重要的一点,做开源化的改造,我们在人的思想上做出了最终的变化。我使得我的开发团队可以接触外部的开发技术,看似没有高大上的工作,他们用思想重新包装,呈现出更加优秀的可以呈现出去的组件,通过这个过程,我将我的团队学习能力做了最大能力的提升。


最后一个问题易用,你们可能会说如何使用Tinker,其实很简单,三个方法,第一可以直接在github•com上直接使用,第二可以通过二进制的方式方式。最近我们发现有一些第三方平台喜欢用Tinker,如果你们接入了第三的SDK,你们可以免去使用Tinker的步骤。


我们发现在Tinker项目上这么多时间的坚持和努力没有白费,Tinker成为了微信开源历史上非常重要的里程碑。


2、跨平台网络基础组件——Mars


还记得我们刚才说移动开发领域有三座大山,其中一座所有人做APP迈不过去的就是网络,微信我们叫做Mars火星。


网络是基石,这个基石很多人说我在APP可以使用,可以使用系统的KPI可以实现网络需求。同时微信在这里将Mars作为跨平台的开发组件,事实上可以保证最小的逻辑去减少不同开发者实现,可能引用BUG机率。


第三微信优势,微信有海量覆盖,这可以帮助我们解决海内用的莫名其妙的网络问题,这些问题在座的很多人永远不会遇到。通过微信团队多年的积累和努力,我们愿意把这些内容沉淀下来,


Mars源自微信,从微信的6•32版本中正式回归到微信中,大家使用的版本中已经使用了Mars。大家可以看到我在也里摆了一个电脑,我们现场演示一下,一个live demo,这是一个基础的技术使用,我们可以将Mars代码引入其中,其次我们定义下,一定要有服务器、一定要有访问的端口,是一个通常的网络应用模型。


回到开源话题上来,我们说开源不仅是一种态度,更是一种能力,我们希望通过微信的开源做一些改变,我们希望通过微信的开源打通我们内部的团队,和外部社区结合在一起,一方面我们把微信传递给了大家,另一方面也想把大家的思想传递进来。


我们希望可以通过这种方式将微信的价值观,将微信的技术体系跟随着人的流动一起输出出去,通过这种方式影响更多开发者,谢谢大家!


扫一扫,用手机看新闻!


【腾讯科技编者按】据国外媒体报道称,美国总统当选人特朗普当地时间周三表示,美国无线运营商Sprint将把5000个工作岗位带回美国,而美国卫星新创公司OneWeb也将雇用超过3000人。“我刚刚接到Sprint管理层打来的电话,他们承诺将把5000个工作岗位从其他国家带回美国。与此同时,OneWeb这家新公司也将雇佣超过3000人,这非


Oculus有望实现用眼睛和视线来控制VR设备。


腾讯科技讯据外媒报道,纽约时报公司周三表示,纽约时报的FacebookLive视频观看量超过了1亿人次,与总统大选有关的政治性言论和名人采访等内容功不可没。Facebook在2015年8月推出直播平台FacebookLive,现在该平台还处于新生阶段。现在纽约时报越来越依赖数字业务来提升营收,它希望通过FacebookLive发布新闻来吸引更多潜


12月28日,陷入私募债违约漩涡的侨兴集团与往日似乎并没有什么不同。在位于广东惠州的侨兴科技工业园,顶着侨兴集团四个大字的侨兴大楼与附近低矮的居民房相比,格外显眼。12月28日下午,记者来到侨兴集团。在侨兴集团园区附近,记者发现,一边是一些员工等待离职,另一边则是侨兴仍在不断招工。一些员工似乎并不关心侨兴


文/腾讯科技郑可君2014年,移动互联网的浪潮更加汹涌地袭来,打湿了数个赛道。很多看起来平平无奇的项目估值瞬间被抬到巅峰,人头攒动中到处都是资本和金钱的味道。和大部分纵身扑入浪潮的VC们不同,在这两年里,黄明明(微博)更像一个浪潮之外的思考者。比如两年前,这位思考者曾看遍当时大热的O2O和互联网金融赛道的几乎


新华网北京12月28日消息,记者12月28日从公安部获悉,两个公安部A级通缉令通缉人员韦海恩、尹群伟已于近日落网。这两个犯罪嫌疑人均属于本月13日公安部A级通缉令公开通缉的10个重大盗抢骗犯罪在逃人员。据悉,公安部A级通缉令下发后,广西壮族自治区武宣县公安局多次组织人员上门对韦海恩家人做思想动员工作,12月23日,韦


一比现在年轻十岁的时候,我曾被忽悠着注册了一个小众网站。那个年代,中国最火的网站几乎全部来自抄袭,只有这个骨骼清奇,在国外几乎找不到对标。它小巧精致,简单归置了书、影、音和一些兴趣小组,对于善于欣赏自己墙角魅影的青年来说,简直是一汪清泉。即便如此,这个叫豆瓣的网站,也总让我心怀不满。每次改版,它都


(原标题:湖畔大学迎来79名企业家“赶考”明年开建实体校园)中国经济网杭州12月28日讯千里之行积于跬步。立志要办300年的湖畔大学不知不觉已经走到了第三个年头。12月28日,湖畔大学举行第三期学员面试,并披露实体校园建设进展。新校区选址位于杭州市余杭区仓前镇,毗邻梦想小镇,由乌镇剧院的缔造者、诗意建筑师姚仁喜


本报记者汪传鸿北京报道高德、百度地图两大互联网地图商,最近几天接连发布了对地图发展趋势的预判,暗暗和对方较劲。高德将未来地图竞争关键词定义为“活地图”。12月27日,高德地图技术副总裁于志杰透露,基于自主采集能力的进化、大数据能力的升维,高德地图正在建立地图“活数据”生产能力,并且正以此为基础研发“活


武子晔[明年1月3日,乐视战略伙伴FF量产车将进行全球首发,投资者会为贾跃亭买单吗?]和董小姐一样,乐视控股CEO贾跃亭从未动摇过造车梦。12月28日,在浙江德清莫干山脚下,乐视控股宣布乐视汽车生态产业园正式破土动工,似乎是在用行动给投资者打了一剂强心针。4个月前,当乐视控股宣布将投资近200亿元在浙江德清莫干山国


腾讯科技讯据外媒报道,据社交统计数据跟踪服务商SocialBlade最新研究表明,订阅数超过1千万的YouTube网红的视频观看量今年大幅下滑,这一趋势在下半年表现得尤为明显。SocialBlade公布的数据表明,49个YouTube大频道今年1月的日平均观看量为410万人次,但是到11月时已降至370万人次,降幅主要集中在下半年。这些数据没有


《青岛市网络预约出租车经营服务管理暂行办法》28日发布,要求申请网络预约出租汽车资格车辆的车龄在1年内,在青岛市行政区域内注册登记,车辆价格不低于巡游出租汽车礼宾型同期购置价格。据新华社报道,青岛市交通运输委相关负责人介绍,10月16日《青岛市网络预约出租车经营服务管理暂行办法》等深化出租汽车改革的3个文


每经记者徐杰谢欣每经编辑罗伟近日,途牛三季报的公布,引发了业内对其净利润持续亏损的担忧。财报显示,其2016年三季度净收入为40亿元,同比增长35.7%,净亏损5.7亿元。值得关注的是,途牛自从2014年5月9日登陆美国纳斯达克上市后,至今未能实现盈利。对于途牛持续的亏损原因以及未来发展等问题,《每日经济新闻》记者于1


腾讯科技讯据外媒报道,近段时间,日本一反常态的兴起了创业热,大量新创公司诞生。据悉,这些船小好调头的新创公司承担起了追赶最新技术如人工智能和机器人的任务。此前,日本一直对新创公司嗤之以鼻,因为它们总是将创业投资与失败联系在一起。不过,今年情况有了改变,研究公司数据显示,日本新创公司的融资额创下新高


本报记者李致鸿北京报道导读一位寿险公司人士对21世纪经济报道记者表示:“目前,‘开门红’的产品已经处于销售阶段,三个月内禁止申报新产品存在一定影响,但是不会过于严重。”临近年关,保监会的监管工作依然在如火如荼地进行。12月28日,保监会发布公告称,对万能险业务整改不到位,主要表现为对检查发现的互联网保险


每经记者王晶每经编辑杨军根据A股上市公司2015年年报,最赚钱上市公司前30强中,银行股占了14只,接近一半,加上保险和券商股,金融行业“三驾马车”是最赚钱的行业。随着民营银行开闸,拥有巨量用户又有钱的互联网巨头自然不会错过这一机会。12月27日,小米创始人兼CEO雷军(微博)在其微博上公布,小米和新希望集团、红旗


还有2天2016年就要过去,PC又老了一岁,还真是有点舍不得。而2017年就快到来了,我很惦记它……


BI中文站12月28日报道据媒体报道,亚马逊拒绝向警方移交一名杀人嫌犯的Echo数据,尽管警方出示了搜查证。TheInformation网站报道称,案件所涉及的Echo语音交互式蓝牙音箱属于阿肯色州本顿维尔居民詹姆斯·安德鲁·贝茨(JamesAndrewBates)。他在今年早些时候被指控犯有一级谋杀罪。去年,一名男子被发现死在贝茨家的浴缸


本报记者杨清清绵阳报道12月28日,京东方绵阳第6代AMOLED(柔性)生产线正式开工。而就在5个月前的夏末,京东方成都第6代AMOLED生产线才刚刚封顶。柔性显示屏制造商正在加紧抢占先机。今年年内,包括三星、Vivo、小米等手机厂商均发布了采用柔性AMOLED屏的智能手机,其他制造商也在计划开发可折叠(或可弯曲、双曲屏)的智


可穿戴设备作为智能硬件产品的一个类别,现在更多的厂商在回归理性之后,开始将目光放到了更多类型的智能硬件产品上。


原文:赵原:微信技术开源 让天下没有难写的APP