我和 EasyWeChat 那些事儿

xq1024 2017-06-28 0次浏览 0条评论 0 打赏作者 0 0

file

前天弄了这个订阅号,到写这篇文章的时候有400多个朋友关注了,选择在这时候才写第一篇文章也是想听听大家想我聊点什么,看到有不少朋友想听听我是如何开发 EasyWeChat 这个项目的,那我们就聊聊我的开源历程吧。

它最开始应该是 14 年,不过后面我好像是 2015 年删除过项目清理过历史,所以正式重新来开发它应该是在 15 年 6 月,它的最初版本并没有叫 EasyWeChat,也没有其它什么名称,就是简单以项目名称存在,最开始的项目结构也超简单,有兴趣的朋友可以看看 1.0 版本的代码。

为什么要弄这个项目,原因其实特别简单,当时自己朋友有一个微信应用的接入需求,找到我帮忙,在看完微信文档后的第一个动作必然是上 GitHub 找一下有没有人封装更好用一些的 SDK, 毕竟你也知道官方那个用完绝对不想再碰第二次。当时找到好几个,都试用了一下,但是都发现了很难接受的问题(我自己也觉得是毛病多,难伺候),不是方法名起得看不懂,就是一看源码就手痒痒的要去改,但是必须控制自已,因为一旦改起来可能就无法收拾了,项目也别想做了。

纠结了一天后,还是决定自己写,先把满足项目需求的部分写出来,把项目完成后再完善其它部分。

最开始我的 GitHub ID 也不叫 overtrue,那时候自己对开源的玩法并不熟悉,就是各种折腾嘛,然后参考别人的开源项目,在那个项目完成后我其实就半年左右没做开源项目的开发了,因为接触到了 Laravel,使用它给公司几个项目做了重构之后就深深的爱上它了,然后就研究它去了。

后来应群里大家的要求,让我帮忙录一些 Laravel 的视频,于是初生牛犊不怕虎,录就录呗,就录了 4 节视频放到了优酷上,后来逐渐有了一些人气,觉得有必要做点开源的事情了。

在 15 年初的时候就把 GitHub 改名为 overtrue 了,随后再次由于项目需要,EasyWeChat 的 1.0 版本就出来了。刚开始尝试推荐给朋友们使用反响还不错,然后就持续在改进,这其中其实遇到很多问题的,毕竟那时候的 GitHub 也不是像现在这样完善。很多东西需要自己去发现,比如 Travis-CI、Scrutinizer-CI 这些东西都并没有一个地方可以直观的知道,基本都是看别人的开源项目用了,才了解到它们。

刚开始连什么是 Semver(语义化版本,http://semver.org/) 都不知道,发版也不知道应该怎么样正确的操作。我记得干过一件蠢事儿:在修复很多 bug 的时候,发了太多的小版本,小版本号都到了 39 这样了,于是就想,要不就把前面的那些版本删除吧,于是就引起了别人项目安装不上的尴尬场景出现,那时候连 Composer 都不熟悉,没意识到这些问题。

其实任何东西开始都是从模仿开始的,这也是后来版本设计改进的思路来源:仿 Laravel。

从 1.0 到 2.0 的变更,我对 EasyWeChat 的改进,主要做了几个大的变化:1、将各功能模块独立放到各自的文件夹中,2、重新设计了 API 类、3、错误处理改为异常方式、4、完善文档(那时候应该还是用的 GitHub wiki)

后来微信的大规模接入需求,也让我的项目在广大开发者之间流行起来,我还记得刚到 1000 star 时我是那么的激动。

这是一个新的起点,在经历了一年多的学习与积累后,跳票一年的 3.0 版本终于出来了,主要改进有:1、建立官方网站,主要用于文档展示,2、重新编写了全部代码(至少有 90% 的重写),将各模块同步拆分到 EasyWeChat 组织下,以便于有特别单一小需求或者想集成部分功能的朋友单独使用,3、容器化设计,将各模块以服务形式注册到容器中懒加载的形式来组织、4、改进部分命名以及简化配置。

目前它的状态是 4.0 开发中,4.0 的变更将也是巨大的,当然这里不只是指代码,一个项目要真正受欢迎,它是需要生态的,代码只是一部分。所以 4.0 的变化除了代码结构变更外,更多的将会是生态方面的变化,重点是文档与教程。我将会录制一系列视频来教新手如何更方便的使用它。

为啥要做 4.0 其实主要的原因之一是微信丰富的生态带来的需求增加,小程序,企业号这些都是 3.0 所不具备的(起码不是很好的支持),所以在 4.0 我们将各种微信提供的服务更加清晰的组织,以及对 3.0 发布以来众多 600 多个 issue 的需求提取所做的一些变更。期望它会以一个大家期待的面目登场。

其实整个过程走来,回头一看全是成长的印记,现在翻看以前写的代码,真的是没什么质量,好在每一次改进,都是一次进步,现在也不完美,但是我爱这份工作。

这两年,造了不少轮子,我都是坚持维护改进它们,做开源最难的事情不是写不好代码,而是分享精神与持续的维护。你也许发现了,我的项目一律 MIT 协议,你想怎么改就怎么改,毕竟我只是分享,没想要索取。关于开源我做过几次分享,做开源是一个很有乐趣的工作,虽然经常会有一些不愉快的事情让你想放弃,但是这样的事情毕竟是少数,乐观的你会发现收获才是最大的。

还需要走的路很长,我还得进步,要不一起?

0

0 条评论