前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「开源者访谈录」第 2 期:国内开源圈 PHP 第一程序员是怎么炼成的?

「开源者访谈录」第 2 期:国内开源圈 PHP 第一程序员是怎么炼成的?

作者头像
GitHubDaily
发布2019-03-26 10:18:05
6400
发布2019-03-26 10:18:05
举报
文章被收录于专栏:GitHubDailyGitHubDaily

大家好,这里是「开源者访谈录」,本节目将通过问答的方式,对一些优秀的开源项目作者进行专访,并撰写成文,推送到我们公众号与知乎专栏等渠道,与大家一起学习,共同见证一个伟大开源项目的成长(感兴趣的可到文章底部点击链接关注)。

上期节目发布后,不少读者在公众号与微博后台纷纷给我们留言,希望我们后续可以开通播客,与作者一对一进行专访。

今天在这里统一回复下大家,目前 GitHubDaily 几位参与运营工作的同学上班时间都比较忙,只能在业余时间抽空做这么一件事情。后面等时间安排较为充裕后,我们会考虑开通相关播客节目的,大家敬请关注哈。

访谈前言

本期我们要采访的是 PHP 圈的一位知名开发者,同时也是著名 PHP 开源项目 easywechat 的作者。

easywechat 是目前国内最流行的微信 SDK,如果你做过微信 SDK 的开发对接工作,那就一定对这个开源项目不会陌生。

该项目以拥有便捷 API 与人性化开发文档受到国内诸多 PHP 开发者追捧。开源至今被国内多家企业引用,极大减少了项目的开发与对接成本。

下面进入正式的专访环节。

简单介绍下你自己。

大家好,我是安正超,easywechat 的作者,同时也是目前国内最大的 Laravel 社区 - Laravel China 的创始人之一。前新浪微博工程师,现就职于腾讯 CDC。

之前为什么会想到要做这样的一个项目?

2013 年,一个朋友找我帮忙给他的公众号加一个报名功能,逻辑非常简单,就是加一个自定义菜单入口,接入一个表单页填写报名信息。我很快便在 GitHub 上发现了一个关注数超过 800 的微信公众平台第三方封装的 SDK,800 关注在当时已经算是很火的项目了。但是当我读到文档开头就激动不起来了,各种无意义的方法名缩写,驼峰蛇形命名混用,这肯定不是一个能让处女座程序员能接受的东西。接着我又花了一些时间去搜索,得到的结果都大同小异,于是就放弃了。

求人不如求己,我决定自己来,花了两天时间完成了朋友的需求,并且超出了他的期望。想到之前自己的经历,我毫不犹豫的将相关模块放到了 GitHub 上,心想我也算给开源做贡献了,谁要用就自取吧。

两个月以后的一天,我收到一封邮件,大概内容是:“我在 GitHub 上找到了您的项目,发现比其它几个要好用很多,但是我遇到了一个问题,能否帮忙解答一下”。我一面很惊讶,因为从一开始压根没想到有人会用它,也没有推广它。另一方面,内心又很欣喜,没想到我的项目真能帮到别人。于是赶紧联系上对方,帮他解决了问题,得到对方的万分感谢,然后也在 GitHub上将我的项目进行了更新。后来的一年左右,陆续有类似的用户过来咨询,我依然耐心的回复并持续维护着这个项目。

突然有一天,我发现微博多了几十个粉丝,让原本只有 100 来个的我着实被吓着了,不知是哪位大佬在社区发了这个项目的链接,导致我的项目关注数也飙升突破了 100 多。激动得我赶紧截图告诉朋友们,感觉自己像是打开了新世界的大门,要火了,超级开心。

项目具体实施过程中,有遇到过哪些问题吗?

随着项目使用者的增多,提问的人也越来越多,尽管他们的问题基本都类似,我还是需要花大量时间来回复。而我自己的工作时间原本都是排满的,只能尽量挤占休息时间,可就算是这样,也还是有一些问题也会处理的不及时,也因此出现了一些不愉快的声音…,让我难以接受,心里拔凉拔凉的,这完全不是我认为开源的样子,以至于后来一个多月的时间,我再没有心情去维护我的项目。

后面是怎么解决这个问题的?

一个平静的周五下午,刚忙完工作准备下班,收到一封邮件:“超哥你好,抱歉打扰了,感谢您的项目让我在短时间内迅速完成了工作需求,我有一些想法和建议,想跟您探讨一下。” 几句朴实的文字,却瞬间让心里温暖起来,跟这位伙伴交流完他的经验,我也聊到前段时间的困扰,他给我了一些建议,让我改变了之前的想法,意识到开源项目的用户并不只是那些伸手党,还有这样乐于为开源做贡献的伙伴们,也让我重拾起信心,在开源这条路上,我并不孤独。

于是我决定重新开始维护这个项目,我充分利用好每一个下班时间和周末,重构项目、重新编写文档、开发新版官网、录制视频教程、建公众号、建交流群。在折腾了差不多一年后终于发布了覆盖微信生态全功能的 4.0 版本,我将新版消息发布在各大社区和交流群,迎来了项目用户量再一次爆发,很快就突破了各种记录,截止目前该项目关注数是 7410 左右,安装量 56 万左右,微博粉丝也跟着突破了 1 万 8000 多。

与此同时我也不断贡献着新的开源项目,一些第三方的统计网站对 GitHub 开发者做了各种维度的排名,目前我的排名情况如下:国内 PHP TOP 1、全球 PHP TOP 11。

我现在同时维护着 60 多个开源项目,每天早晨我会花约5分钟左右时间过一遍别人提的 issue,加上 tag 分类,晚上回家再处理,上班时间除非紧急 Bug 就不用额外花时间去折腾了。

开源的过程中,你收获了什么?

1)见识

还记得刚开始参与开源的时候,脑子里有无数疑问,可是周边没有人能解答,比如看到很多开源项目说明文档都做得那么好看,还有很多这样的小标志、提交代码后还有各种自动化检查工具,这都是怎么实现的啊?只能一步步去探索,并且将很多有用的工具和服务用到了后来的工作当中。

2)技能

我经常会抽时间去阅读优秀项目的源代码,参考他们的写法,学习他们的设计思维,不断去重构自己原来写的代码。让我的编码质量和效率上都得到了阶段性的提升。

3)自信

我被邀请做过很多次线下分享,每次我都尽可能带我老婆一起去,印象特别深刻的是刚开始的几次社区组织的分享,每次分享完回家路上我都会被老婆批评:“讲那么快干嘛,还那么小声,别人都不听清楚,没听明白你就讲完了…”。以至于后来每一次分享前我都反复提醒自己:慢慢讲,大声讲。老婆的批评逐渐少了,变成了夸奖。

简单聊下你对开源的看法?

做开源是要上班的、做开源也不会让程序员丢掉工作,做开源的收益更多的是潜移默化在方方面面,更多的是让你收获成长。

开源,其实很多时候就是微创新,把平常的工作项目当成开源项目的标准去做,把能开源的部分分享出去,开源后经过反馈持续优化迭代,建立社群推动更多人参与开源、反哺开源,不做伸手党,这才是健康可持续发展的开源。

将代码发布出去只是开源的第一步,持续维护和迭代才是最重要的,开源更多的是一份责任,对自己负责,对用户负责。正如我常对朋友说的:「free is not free 」。

有哪些学习 PHP 的网站推荐?

其实平常逛的社区并不多,学习主要还是靠自己啦,不过社区有利于增加你的见识,知道大家在玩什么,都在怎么玩,可以增加你的知识面。

我自己目前主要是每天闲时逛一下 learnku.com ,这是目前最纯粹的技术社区了,没有那么多广告,并且大家都是非常认真的讨论问题。这得归功于 Summer 的用心管理。

有哪些建议可以给初学者?

经常会有新手问到这个问题,其实我觉得最简单高效的方法只有一个:多写代码。

当你代码量达到 10 万行以上的时候,你就不是一个新手了,少看视频教程,多看源码,多写项目,去尝试写不同的项目,积累代码量,不断去重构你写过的代码,都是非常有效的学习方式。

推荐近期看到的几个比较有意思的开源项目。

当然我见过最 NB 的还是 Laravel 的源代码了,真的是将优雅做到了极限,虽然对于 PHP 新手来讲看起来压力蛮大,但是看明白以后绝对是获益匪浅。

最近看到还有一个是 js 的一个命令行工具: https://github.com/vadimdemedes/ink ,虽然说只是一个非常小的工具,但是它给人以精致的感觉,并且将易用性做得非常好,真正的做到了「站在开发者的角度」去思考体验。开源其实很多时候就是这样,做一些小而美的东西也可以大受欢迎。

第三个是我日常用得最多的前端框架了 Element UI,用它写了太多项目,深深感受到它的易用性,设计得很贴心,用起来省心,大力推荐。


好了本期的专访环节就到此结束,感谢超哥受邀参加本次专访。

对于本次专访,如果你有什么意见或建议,也欢迎到评论区分享给我们。

另外,如果你有比较感兴趣的开源大佬,也欢迎到微信公众号(GitHubDaily)后台给我们私信举荐,我们会定期查阅私信,并视情况安排好专访日程。

最后,附上项目及作者的一些相关信息,大家可以不定期的去骚扰一下 ?

easywechat 官网:

https://www.easywechat.com

GitHub 地址:

https://github.com/overtrue/wechat

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GitHubDaily 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 访谈前言
  • 简单介绍下你自己。
  • 之前为什么会想到要做这样的一个项目?
  • 项目具体实施过程中,有遇到过哪些问题吗?
  • 后面是怎么解决这个问题的?
  • 开源的过程中,你收获了什么?
    • 1)见识
      • 2)技能
        • 3)自信
        • 简单聊下你对开源的看法?
        • 有哪些学习 PHP 的网站推荐?
        • 有哪些建议可以给初学者?
        • 推荐近期看到的几个比较有意思的开源项目。
        相关产品与服务
        命令行工具
        腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档