业界风向标

首页 > 分享 > 业界风向标 > 正文

微信终端开源:让天下没有难写的APP

admin 2017-05-07 16:59:38
      在持续的产品开放之外,微信团队这次开放到了代码。

      12月28日,在广州举行的微信公开课PRO版,微信团队现场宣布移动客户端开发跨平台网络组件Mars 正式开源。并首次阐述了微信终端开源的理念,解释如何将技术开发思想、经验、工具、代码组件也开放给外部开发者。

     授人以鱼不如授人以渔

      古话说得好,授人以鱼不如授人以渔。微信在产品层面开放平台、接口的同时,也在思考如何把有价值的技术思想和工具、组件传递给大家。我们试着为自己提出了一个小目标——让天下没有难写的APP

     这句话很短,但想实现并没有那么容易。微信团队先后建立了微信公众号发文章,组织交流分享,工程师间最好的交流方法是写代码,最后一个很重要的环节就是技术开源。

微信的技术经过海量用户和复杂网络环境的检验,踩过了无数的坑,积累了大量实践经验。很少有开发者有机会和条件自己去踩一遍所有这些坑,我们通过开源项目的方式,把经验传递给他们。——微信公开课讲师赵原
 

微信终端开源的四大原则

什么样的开源有价值?代码写的工整、可读性高,只是表层要求。微信终端开发团队认为,微信开源的高标准和严要求体现在四个方面:

     第一价值,所有微信开源的技术内容都是源自微信实际的业务,且通过微信实际应用验证过,保证开源的内容有价值;

     第二优势,微信最大的优势是拥有海量的用户。意味着在移动开发领域,微信团队可以在很多别的开发者,根本没有发现或者遇到复杂问题之前,率先解决掉麻烦;

     第三活力,微信终端开源的组件跟随微信迭代而迭代,不断更新和完善;

第四易用,微信开源出去的技术项目会提供最简单的接入方法,其他开发者可以轻易的将微信开源的项目引入到自己的APP中,将微信的能力运用在自己的APP上。

     微信终端首批开源项目包括三个:Tinker热补丁技术、MMDB 移动数据库及Mars跨平台网络组件其中Tinker已在9月份开源。

    活力 —— 一个不得不提的尖锐问题

     很多情况下,一个内部项目的开源,即意味着这个项目的结束。但一个优秀的开源项目则要持续投入才会有活力

     这个问题,微信团队也有过很简单、很暴力的想法,比如说团队10个人,这10个人专职做功能开发,再招10个员工投入在开源项目上。但微信讲究精兵策略,不浪费一兵一卒,此法行不通。

     为了解决这个问题,微信终端团队在开发Tinker项目之前,大概用了快一年的时间解决,解决方案也很简单。简而言之,将开发团队改造成一个开源化的开发模式微信终端团队通过对内部系统的改造,使内外部的开发模式保持基本一致,一份代码既可以在微信中使用,也可以在外部的开发者中使用,这样的开源项目我们其实就不需要投入额外的人力在里面

      同时,微信团队也收获了很多价值,外部的开发者还可以给微信团队反馈一些微信自己没有发现的问题,对于微信来说这是一个很好的优化与改进的反馈渠道。最重要的一点,做开源化的改造,使得微信开发团队可以接触外部的开发技术然后与自己的思想相融合,呈现出更加优秀的组件,通过这个过程,将微信团队的学习能力做了最大化的提升。

现场回顾

     在12月28日微信公开课PRO版现场,微信终端团队现场宣布Mars跨平台网络组件开源。并在现场构建了一个使用Mars的demo应用。

     在 IM 方面,弱网络一直是应用开发者面前的一大问题,Mars 团队成员基于微信业务需求,进行了大量的优化工作。在微信最新的Android6.3.32版本里,已经使用了Mars组件代码。项目团队会在外部开发者反馈的问题中不断对Mars进行优化升级。

(想了解更多Mars资讯的开发者可以访问https://github.com/Tencent/mars)

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

     一切正在发生,一切刚刚开始。
 


 

(转自: 微信公开课)