2022 下半年参与开源总结 - 成为两个高星项目 member

1,427 阅读5分钟

「回顾2022,展望2023,我正在参与2022年终总结征文大赛活动

大家好,我是 sun0day,最近正好看到掘金在征文 2022 年终总结,不爱写文章的我也来凑凑热闹,总结下自己这小半年参与开源的历程。

缘起

工作越久,越觉得编程无趣,我开始审视自己:当初为什么选择程序员这行,这条路我还愿意走多远?回想自己的程序员生涯,印象比较深的有几件事:刚学 C++ 时候写的第一个程序杨辉三角,做课设闭关 4 天用 C++ 憋出一个 dos 文件管理工具,为了学分用 python 写了个抢课脚本,局域网玩 cs 开外挂被封 ip 一气之下用 python 写了 arp 攻击工具反向封了对方服务器,第一份实习工作见识到各种技术框架、流程、规范,第一次经历对自己工作价值认可的晋升……我相信很多人选择当程序员的初心都是因为热爱,我也是,我对代码的热爱来自于创造和改变,用自己编写的代码去一点点影响世界。

可能是待在舒适圈太久,也可能是厌倦了千篇一律写代码做产品的模式,当初自己身上那股爱折腾的劲已经消失殆尽,为了卷而写代码,好生无趣。其实我一直都有做开源的想法,但是一直没有付诸实践,有各种各样的借口,不提。今年年中,我拒绝了一些有吸引力的 offer,在机缘巧合下去了一家外企,为的就是能够有更多时间折腾开源。虽然外企工作没有想象中的轻松,但是简单、透明、高效的沟通方式非常对我的脾气,工作之余的时间也足够我做自己想做的事了。

第一篇 Story

从上中学开始,我就十分惧怕写作文,语文考试最后的作文题真是要了命了,根本编不出来。没想到当上程序员后还得写博客、写文档什么的,不同的是怕写作文是因为编不出来,对博客和文档是怕麻烦,平时虽然也有记录学习笔记的习惯,但博客和文档对程序员而言总归是绕不过的必修课。之前偶尔心血来潮也会顺手写写,在知乎也建了个专栏 技术0到1 ,我打算参与开源一方面是为了能重拾对代码的热爱,另外一方面也是为了能够挑战自己,突破现在的舒适圈,基于这个目的,我尝试着去 hackernoon 上用英文写文章,正好那段时间在折腾 Go,于是向 hackernoon 投了篇 《ES7-style Async/Await Implementation in Golang》 并发表(有一说一,hackernoon 的写作体验不如我大掘金 :( ),相应地还写了个 Go async 库,可能是因为文章的推荐,这个库得了 17 颗 star,虽然不多,但对刚开始尝试开源的我也是种鼓舞。

第一个 PR

决定参与开源后,逛 github 成了我每天的欢乐时光,每天看看社区大家伙都在干什么,时不时去提些 issue 或者解答些问题。一次偶然的机会,我在工作中发现了 umijs 的一个 mock 文件热更新的 bug,于是尝试向 umijs 提了我人生的第一个开源 PR,很开心,这个 PR 被 @sorrycc 大佬 merge 了。提 PR 真的是一件非常有趣的事,尤其是给热门的项目提 PR。试想,当你的 PR 被合并了,你的代码可能会跑在成千上万开发者电脑或者服务器上,这种感觉非常酷。问题是,如何能给开源项目提更多 PR,工作中用到的库大多是成熟的库,很难发现问题,于是我去 github 上热门或小众的开源项目看 issue,找一些力所能及的问题去解决,然后看源码 debug,最后提 PR。

第一个 Member

刚开始找开源项目提 PR 时,我像个无头苍蝇,只要是技术栈相近,不管用没用过,只要项目某个 issue 写的清晰,我就去翻源码 debug,然后提 PR,期间如果遇到定位到问题,但由于对项目不熟悉一时不知怎么修改的情况我就会去和 maintainer 沟通并询问他们的意见。提 PR 的另一个美妙之处在于你会受到来自社区大佬们的肯定,这里随手贴几张图

image.png

image.png

image.png

image.png

提的 PR 被合并虽然令人欣喜,但是我发现时间久了,漫无目的找项目提交 PR 就像吃了份快餐只能满足一时,于是我打算将精力 focus 在一两个优秀的项目上,我选择了 vueusenextui,原因是 vueuse 足够活跃,nextui 足够酷炫。就这样为两个库提交代码一段时间,没想到后面收到了 @antfu 大佬和 nextui 作者的邀请,加入了 vueuse teamnextui team,感觉就像中了彩票令我欣喜若狂。

image.png

写在最后

从 7.13 给 umijs 提交第一个 PR 开始到现在,利用业余时间,我总共给开源社区提了 49 个 PR,已合并的 34 个,待合并的 7 个,涉及的项目有 vite、vueuse、vitest、pino、trpc、nextui 等,幸运地加入两个项目的 team,并在 hackernoon 发表两篇博客。这其中有努力也有运气,开阔了眼界,也感受到了久违的乐趣,更重要的是重塑了自己对程序员这个身份的认知。后续的规划是持续给 vueuse 和 nextui 贡献代码,但是会把精力集中在 vite 和学习 rust 上,我觉得 rust 虽然上手难,但十分有趣,最近正在经历初学 rust 的阵痛期,写了个 贪吃蛇机器人,写的磕磕绊绊,但好歹还算顺利。篇幅所限,这里不再展开分享我开源的一些经验,后续会专门写篇文章介绍,希望能够帮助到那些想参与开源但又不知道怎么开始的小伙伴们。欢迎大家关注我 sun0day,一起交流成长。

PR 一时爽,一直 PR 一直爽