首页 存档 技术 查看内容

JSPatch开源经验分享

2018-3-30 13:00 |来自: 互联网 289 0

摘要: (题图来自Lex Tang的Dribble) 本文为『移动前线』群在3月24日的分享总结整理而成,转载请注明来自『移动开发前线』公众号。 嘉宾介绍 bang,腾讯iOS高级工程师,开源项目JSPatch作者。目前在腾讯做微信读书iOS端 ...

(题图来自Lex Tang的Dribble)

本文为『移动前线』群在3月24日的分享总结整理而成,转载请注明来自『移动开发前线』公众号。

嘉宾介绍

bang,腾讯iOS高级工程师,开源项目JSPatch作者。目前在腾讯做微信读书iOS端。

先介绍一下 JSPatch (https://github.com/bang590/JSPatch),JSPatch 是 iOS App 动态更新库,引入后即可以用 JS 调用和替换原生任意方法,普遍用于动态下发脚本实时修复线上 Bug,目前微信微博百度地图美团等 1200 个以上 App 已接入使用。部分接入APP列表:http://using.jspatch.org

JSPatch 在还没投入使用时就就在 github 开源,因为开源社区的推动和帮助才会有今天较完善的版本和广泛的使用。目前在 Github 上有4k star,25位社区成员贡献过代码,算是较活跃的开源项目。

回顾起来,对 JSPatch 这个项目来说,能推动起来主要有三点:有用完善推广

有用

对于一个给别人使用的开源项目来说,项目有没有用自然是最重要的,有用的意思包括:1.是否有需求 2.项目是否很好地满足了需求。

对 JSPatch 来说这两点都是符合的,第1点,iOS App发展到今天,越来越多的 App 需要动态部署技术,无需等待周期不定的苹果审核,实时修复线上bug,对线上产品有更多控制力,对很多 App 开发都很有诱惑力。第2点,初期的 JSPatch 已经基本能满足这个需求。

满足了这两点,就可以开始做推广。

推广

一般开源项目的推广会两个方式,一是线上文章,二是线下分享。我主要的方式是通过文章,我觉得一篇文章能触达的用户会比线下分享多很多,当然线下分享也很值得做,只是之前一直没精力,接下来会尝试。

文章最好不是单纯介绍这个开源项目,而是让看了的人即使不用你的开源库,也觉得有收获的技术文章。对于 JSPatch 项目来说会有一些黑魔法和脑洞,所以写了一些 JSPatch 原理解析文章,即使不使用 JSPatch 的人,相信也可以从文章中得到一些收获,这样才会获得传播。

对于其他开源项目,如果原理解析不好写,也可以挖掘一些点,回想做这个项目的思路,例如按类似 [面临的问题 - 业界解决方案 - 他们的缺陷 - 我的项目的优势 - 实现] 这样的思路去写,也会对人有所帮助。我们团队的几个开源项目也写了这样的文章:wereadteam.github.io。

如果有活跃的个人微博/公众号账号,推广上会方便很多,但这不是必须的,技术圈很简单,只要有料就能传播,质量压倒一切。

线上的推广除了文章还有其他形式,例如视频教学,在线直播,微信群分享之类,还没成为主流,有时间会尝试一下。现在就在尝试微信群分享:)

完善

当项目初步推广起来后,越来越多的人使用,就会碰到越来越多的问题,也就会促使项目不断进行完善。开源项目的完善改进不止是代码,对 JSPatch 来说分成很多部分:

1.核心代码。这自然是最重要的部分,修bug填坑,完善功能,必不可少。

2.文档。平时开发 App 不会写文档,但开源项目一定要有文档,而且文档越全面越好,JSPatch 撰写了大量文档,包括每个新功能都会有文档描述。

3.测试用例。测试用例保证项目健壮性,让项目靠谱用起来放心,JSPatch 对大部分功能都写了测试用例。

4.社区。人们使用开源项目最担心的是使用过程有什么问题没人解答,查不到资料。丰富的文档可以部分解决这个问题,此外还需要完善社区支持,包括github issue支持,stackoverflow问答,交流群等,对于扩展性高的开源项目最理想的是做出一个生态环境,像 React JQuery 这类。JSPatch在这方面只做了 github issue 和 QQ 群交流支持,继续完善中。

5.周边。对于JSPatch这样的项目还会有一些周边扩展和工具的完善,JSPatch 提供了像脚本加密下载、多文件include、回退脚本这些周边功能,以及JSPatch Convertor 这样的工具。

有用/推广/完善这三点实际上会形成一个正循环:有用 推广 -

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部