咨询热线
首页 > 资讯中心 > 微信终端开源:让天下没有难写的APP
经典案例
做软件

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

日期:2017-01-04 15:27:40

在持续的产品开放之外,微信团队这次开放到了代码。

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

 

授人以鱼不如授人以渔

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

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

 

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

 

微信终端开源的四大原则

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

 

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

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

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

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

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

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

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

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

 

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

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