参与开源一年半,我收获了什么

1,696 阅读5分钟

初次参与开源

我最开始接触到开源,还是因为公司的某个 H5 的项目需要一个图片预览组件,刚开始选择了 vant,但是很不幸,并没有满足我的需求,而且还有一些bug。于是我又去网上翻了翻其他的移动端组件库,无意中发现了varlet,这个组件库的 image preview 组件刚好能满足需求。

但是我发现这个组件也有bug,就去github上提了人生第一个issue

image.png

耗子哥的效率也很高,修复的也很快

image.png

而后在使用的过程中,也发现了这个组件的一些其他问题。一个大胆的想法从脑海中掠过,为什么我不能自己提一个pr来修复这个问题呢?于是,那天下班之后,我fork仓库,阅读贡献指南,启动项目,定位问题,修改代码,电脑调试,真机测试,反反复复确认了自己的代码没问题,也能修复这个bug,开始推代码,录制修复视频,最后创建pr。尽管我只改了一两行代码,却整整花了好几个小时

image.png

耗子哥的效率也是震惊到我了,第二天我起床发现,他是凌晨三十分回复的我,并且合并了代码

image.png

大佬的努力程度给当时懵懂无知的我带来了巨大的冲击,我这么菜,总不能菜的还那么心安理得吧,或许我能做的更多,学到更多。

良机和失业

可能是命中注定,我当时燃起了想搞开源,想进步的火花,就有了这样一个机会。好巧不巧的是,过后两天正好读到了varlet贡献者写的 最近的开源小经历与大感想,我在下面留了言,加了文章作者的微信,顺利的混进了varlet,还加了耗子哥的微信

image.png

自此,我便一发不可收拾,慢慢走进了之前望而生畏的开源世界。加特性,修bug,改文档,完善测试用例等等,除了正常上班的时间,其余的大部分时间都用来学习或者做开源了

image.png

不幸的是,国庆节的时候,我失业了,那段时间找工作并没有我想象中的那么难,一天中的大多数时间我都拿来搞开源了,大概找了两三周就有了差不多的offer,十一月初就出去上班了。顺带一提,我这份工作也是开源给的,因为一面面试官除了开源什么也没有问我,正中下怀,问题基本上都流畅地答出来了,二面也过的很轻松,之后几乎没过多少小时就约了hr面。

学习、思考和实践

俗话说的好,好记性不如烂笔头,很多东西刚开始学的时候会了,如果不加以实践巩固,很快就会忘掉。 到现在为止,我已经有了一些实践,写了自己的第一个cli,写了第一个monorepo项目,写了第一个rollup插件等,第一次参与apache的项目。

我发现我实践的越多,越发觉自己的渺小,不会的东西太多太多了。不过github上的每一个contribution也在不断激励着我,就像一个贪吃蛇,我总是渴望更多。

image.png

言归正传,我到底收获了什么呢?

源码阅读能力

之前刚毕业的时候,那个时候去看 axios,虽然当时看明白了一点点,过段时间就又忘了。这段时间的努力和成长,也让我的源码阅读能力有了不少长进,甚至我还看了vue/reactivity包的源码,放之前肯定想都不敢想。

光是varlet的源码就够我学到很多了,到目前为止,varlet不仅仅是一个ui库了,其还包含了脚手架,发版工具,vscode插件,vite插件,演练场等等。

技术视野

最近对自己的git cli做了两次技术迁移,一次是从 cjs 迁移到了 esm,一次是对参数功能进行了重构,支持了多参数同时生效。第一次迁移早在几个月之前我其实是尝试了的,可惜没有成功,当时自己对这些了解的太少了,虽然现在也不多,前几周又进行了一次迁移,这次很成功,还玩了下rollup的打包。

前段时间也自己尝试了下monorepo的架构,这是一个项目,里面有util,hook包,还有vitepress做的静态站点

image.png

image.png

image.png

综合能力

在维护varlet这一年多的时间里,我认识了很多大佬,在和他们的沟通交流的过程中,我学到了很多,不仅仅是技术,还有沟通能力,脾性和生活技巧。之前我总是对沟通能力不屑一顾,直到我发现有些人的沟通能力真的很强,他们总能清晰的表达清楚自己的需求和想法,而不用过多的言语。而我总是会说一堆看似有条理,实则乱糟糟的话。我学习怎么更好的,更恰当的沟通。

结语

希望大家都能努力成为更好的自己