维护高 Star Github 项目,会遇到什么有趣的问题 2023 版
不知不觉做开源也有 7 年了,目前还在维护的项目里最老的 GSYVideoPlayer 大概也有 6 年多了,尽管现在已经不像以前那么「沉迷」,但是作为个人开源的项目来说,这么多年能不 「Deprecated
」 也是实属不易。
其实这个系列能写第三篇我也是很「诧异」,因为我也没想到在继「维护两个10k+Star的Github项目,会遇到什么有趣的问题」和「维护高 Star Github 项目,会遇到什么有趣的问题 2022 版」 之后,时隔半年就又凑到了第三篇的素材,怎么说呢,吐槽带来「快乐」,所以我想把「快乐」让大家一起分担。
⚠️注意:阅读本文可能会浪费您宝贵的 5 分钟,本篇主要是吐槽和分享过去半年维护 Github 项目以来的一些有趣的经历,所以阅读本文并不会增长你的技术,但是如果你想做开源,想了解开源项目维护者的心理,那可能会给你带来一些启发😊。
在 GSYVideoPlayer 里「视频无法播放」是永恒的话题,而历史总是在轮回,如下图所示,上一次看到类似的 issue 应该还是 「无法播放 https 的优酷链接」,而面对「浏览器可以」的质问,我只能说:
这个播放器它只是一个“孩子”,它读不懂 HTML 这么高深的内容
当然,虽然你告诉了大家「项目可以怎么用」,但是总有用户「不按套路出牌」,比如「播放途中拔出 U 盘」的场景····说实话,这个「测试用例」我是真的没覆盖到,并且也不想覆盖·····
手机正常人谁用 U 盘播放,电机上用 U 盘播放你说你去拔它干嘛,用户也「不按套路出牌」?
当然,不友好的交流也是时有的,其实做开源就是提供服务,只是这个服务很多时候是「用爱发电」,但是有时候变成「理所当然」的情况下,就变成是「你欠我」的。
「我不管,我不会,你帮我写」
![]() | ![]() |
---|
而沟通能力和理解能力绝对是 issue 里的重灾区,比如因为「视频无法播放」,所以我问「编码是什么」,但是对方可能就是关注不到问题的点在哪里?
当然更多时候 issue 是因为「没用对」,跟进 issue 的结果大概率会是「我自己的问题」,其实这也是为什么开源项目会有 Demo 的原因,你通过 Demo 去复现问题,这样才能尽可能减少沟通上的障碍。
比如这里的「小米电视」就是一个很大的误导,况且我也没有一个 「小米电视」 去帮你复现问题。
类似的还有如下图这种场景,我测试 Demo 里同样的 「嵌套」情况下可以正常工作,然后对方说「我有异常的录屏」,问题是我看你业务实现的「异常录屏」也猜不出来是什么原因。
提出最好有带上问题的 log 和代码,并附带可以复现的情况和条件,这样可以减少 80% 以上的无效沟通。
当然,对于我无法复现的「设备场景」,我确实没办法针对去测试和修复,对于这种场景确实是「鞭长莫及」。
SDK 的目标和意愿是通用,说实话也确实没有支持定制设备的欲望。
提 issue 是求助的过程,但是「帮你解决问题」并不是义务,它更多是一种「交流」的形式存在,所以你不需要很「卑微」,但是互联网上也没有谁是「必须帮你」,你总不能「逮到一个是一个」的方式去工作吧?
如果你的提问暴露了你连文档都没看,那么真的是「爱莫能助」,RTFM 吧~
![]() | ![]() |
---|
RTFM 是属于「文明」的网络用语,意思大概就是是:“去读那些TM的手册”(Read The F**king Manual)
其实「不看文档」的比例是还是很高的,明明文档有的,却还是通过 issue 来解决,会给我一种「我的文档是不是哪里有问题」的错觉?
另外,这个 issue 用 「视频每次播放都需要下载,关闭网络无法播放」作为核心问题合适吗?
类似的还有这种,「一进去就自动播放」难道不是就是打开页面的时候,自己调用下点击播放的 API 就可以了吗?
当然有些 issue 属于「基础知识」问题,一提出来就可能会「暴露」,比如「播放器没办法只用用 View
转 Bitmap
」 一样。
为什么视频播放的
View
不支持支持toBitmap
,难道面试的时候不会问到?
相同的还有这个问题,「App退到后台只播放音频,在前台同事播放音视频」,看到这个问题的时候我陷入了沉思,最后我回复了「不可以」,实则是我不知道怎么解释。
因为当 Activity 进入 onPause 状态之后,
SurfaceView
的Surface
本来就是会被销毁,所以,就·······
当然,还有 XD 和我说「希望完善下 Demo」 ,但是本来 Demo 的作用就是提供实现思路而已,另外是这里用到的「弹幕 SDK」 也并不是我在维护,实则「爱莫能助」啊
所以时不时出现的类似「需求」实在是超出了我的「底线」。
当然,有时候也又一些有趣的,比如这位热心的 XD,他通过文档发现了「盲点」,然后在 issue 里发出来希望「警示大家」,我相信他应该是「希望帮助到迷茫的大家」,但是我觉得提 issue 的连文档都不看了,怎么可能去翻一个历史 issue 。
最后,时不时遇到「国际友人」也是很有趣,比如原来「巴铁」的手机居然会是 Oppo ,作为一个只有中文 Readme 的项目,能被国际友人接受其实我是很开心的,因为他们可能连文档都看不懂。
好了,浪费了大家宝贵的 5 分钟,其实我也没想到做开源项目会一坚持就这么多年,一开始只是想着尽可能「给自己搏个好的背书」,可以说是「动机不纯」。
但是现在对我来说更多的只剩是「情怀」,一种工作之外的「自娱自乐」,大概就是这种没有期待的心态,才让我能一路坚持到现在,所以 2023 还是要惯例喊出那句口号:
GSY,垃圾 ~!
转载自:https://juejin.cn/post/7206208588401934392