维护高 Star Github 项目,会遇到什么有趣的问题 2022 版
去年7月份我发布了 《维护两个10k+Star的Github项目,会遇到什么有趣的问题》 的相关吐槽,当时 JYM 看得还是挺乐呵的,时隔一年之后,让我们来看看又有什么充满“智慧”的问题,「为你展示真实高 Star 开源项目维护者的心路历程」。
❝注意⚠️:阅读本文可能会浪费您宝贵的 5 分钟,「本篇主要是吐槽和分享过去一年维护 Github 项目以来的一些有趣的经历」,所以阅读本文并不会增长你的技术,但是如果你想做开源,想了解开源项目维护者的心理,那可能会给你带来一些启发😊。
❞
其实参与开源这么多年,相信大家都有所体会,特别是 Android 开发,「在经历了曾经 Android 开源的辉煌时代之后,如今还在坚持的人真的不多,不说还维护开源项目,就说还在单纯从事 Android 开发的也不多了」,从 AndroidGithubBoss 项目的统计上看,排名前 10 还在维护的纯 Android 开源项目寥寥无几,可以看到几乎都是金色的 Deprecated 状态。
为什么呢?「首先是现在的 Android 项目获取流量的能力已经大幅度下降,官方 Jetpack 体系的成熟也挤压了第三方开源项目的市场」。
另外,虽然做开源项目至今也有 7 年了,但是每次打开 Github 的通知中心,看到这样的场景时都难免会心颤一下,「因为对于个人开源维护者来说,Github 的小蓝点有时候就像是“催命符“,有时候可能都很急,在等着救命」。
❝个人开源项目的优势就是灵活,当你需要什么东西,可以让维护者快速更新发布;但是缺点也是很明显,就是个人的精力和时间十分有限。
❞
「有时候用户着急的情绪会体现在标题上」,但是其实当我看到 issue 时可能已经是隔天了,而事实上很多 issue 如果对方能稍微花点时间,看看文档或者 issue 模版上的链接,我想可能都不需要等我的回复。
❝其实开源做久了,对于经常需要“喂到嘴边”的情况,真的会让人变得烦躁,「但是你又不能拒绝有很多用户真的就是新手」,这其实就是做开源最需要面对的情况之一。
❞
当然有时候着急也体现在其他方面,「比如可能我晚回复了20分钟,就这么没了一个新朋友」,虽然我没理解对可能,但是我自己确实有些“不识好歹”。
有时候也会遇到和你“讲道理”的,比如对方并没用到我的项目,但是确实帮我找到了一个问题,只是我并不会每一个问题都耐心地去解答,因为问题多了确实很难积极的起来,「就像前面说的,小蓝点多了,心态就跟不上」。
「因为一旦我很积极,就会陷入“工具人”怪圈」,大家可能都会很急地在 @ 我,比如下图是同一天内群里的画面,大家可能会很自然地就进入面向群主编程的开发模式。
如果大家对 QQ 的截图还没什么感觉,那微信这个已用空间感受下,所以为什么那么多开源项目最后慢慢就没人维护了,「因为如果你不学会让自己变佛系,可能最后你就把自己搭里面去了」。
「其实如果说做开源中最难受的是什么,那我想说肯定是解答各种基础环境配置和网络问题」 ,而事实上 issue 里的问题大部分时候就是:
❝“你的库有问题,但是我不知道什么问题,你给我看下”
“xxxxx”
“.........”
"不好意思,是我使用问题....."
❞
对于这些基础问题,回复多了你不经就会怀疑,究竟是 Demo 写的不够详细,还是文档放的位置不够明显,「其实做开源,真的大部分时候就是在回复各种基础问题」。
当然,「“有时候李逵的锅李鬼背” 也是常有的」,毕竟开源也是服务行业,所以你需要做的就是帮助用户去分析他的 log, 然后提示他,这个问题可以出门右拐去隔壁咨询下。
当然,有时候我也不知道是不是 GSY 和 GetX 都是 G 开头的,所以经常有 GetX 的问题找上我,比如下面的问题,有两个点我没想明白:
GetX 和谷歌地图有什么关系? GetX 和谷歌地图为什么会和我有关系?
另外,有时候也有陷入一下奇怪的对线,比如我解释了问题所在,但是对方和我说:「用户又不知道它的视频有问题,所以我应该知道么」 ?
类似的“对线”多了,有时候也会有和“老板”聊天的错觉,义务和责任经常很难分清界限。
不过,有时候也有一些 bug 是因为第三方引起,比如播放过程中会受到支付宝多次弹窗跳转的影响,导致 onResume
的频繁调用异常,但是这种问题适配不适合在库里解决,而热心的网友也在 issue 下回复了相关解决方案。
当然我也不是面对问题一直“摆烂”,一些有价值的需求或者有意义的问题,在尽可能的范围内我都会及时处理,毕竟持续完善开源项目是目的之一。
不过,有时候一些问题的场景确实并非我能覆盖,特别是在定制的低端设备上的情况,面对这个问题,所谓的 2000 块酬劳我确实“无福消受”。
还有一些特殊设备的场景,开源项目更多还是“考虑大部分”可用的情况,对于一些只针对出现在特定设备的情况,「一般我更希望可以在社区内获取补全,毕竟个人是真的无法去做全覆盖」。
比如近期就收到过关于更新的 AliPlay 内核和 meta data 播放的 PR,这对我来说无疑最好的反馈,「因为这些 PR 总能在关键的时候补全项目里的盲区」。
虽然今年没有像去年有那么多搞笑的梗,但是又一年过去后,作为个人开源的多年老项目,还能继续维护,还有人继续在用和提出问题,我觉得这就是我还能继续坚持下去的动力。
最后,对于我个人来说,「开源和写作几乎是成为了我情怀的部分」,如果是多年的“老粉”,应该知道我即不卖课也不做广告,所以这么多年下来单纯就是“用爱发电”,虽然不知道还会坚持多久,但是还是希望明年继续能有新的总结,当然,如果能对大家有所帮助,那就更好了,也许还会继续喊出那句口号:
❝「GSY,垃圾」 ~!
❞