Note-4565-292

Token ID: 7

ERC-721 1 Transfers

Metadata

{
  "title": "2022,我的开源探索",
  "tags": [
    "post",
    "journal",
    "open-source"
  ],
  "sources": [
    "xlog"
  ],
  "external_urls": [
    "https://sanxiaozhizi.xlog.app/2022-my-open-source-exploration"
  ],
  "date_published": "2023-01-20T16:00:00.000Z",
  "content": "2022 年三月份,我写过一篇[自我介绍](https://gist.github.com/sxzz/2ffb940cbc472e4e7a3ef9479a170e6f)的~~流水账~~文章,总结了我在大学之前的技术经历。如果还没看过,先去阅读上一篇文章再继续看吧~\n\n现在是时候来讲讲我与开源的故事~~流水账~~了 😎!\n\n## 初来乍到 <sub>2020 年 18 岁 大一</sub>\n\n回到之前文章中提到的时间线——2020 年,疫情元年,也正是我高考的那年。进入大学之后,比起高中就算是自由了。有更多的时间探索和捣鼓自己真正想做的事情了。\n\n2020 年 9 月,Vue 发布了 3.0 正式版。看到 Vue 的 Composition API 非常戳我,也对 Vue Composition API 相关生态十分关注。在写自己的项目的时候,也尝试去使它。\n\n之后使用到了 [VueUse](https://vueuse.org/) 这个库。但是 VueUse 还不是特别成熟,在使用的时候发现了一些小问题,当即就去 GitHub 发了个 PR,后面对 VueUse 这个项目比较感兴趣,就陆续提了 6 个 PR。这件事算是我对开源社区感兴趣的契机。跟 [Anthony Fu](https://github.com/antfu) 也混了个脸熟 😇。\n\n总的来说,在 2020 年只是对开源抱有一些兴趣,但是大部分时间还是继续在维护自己的项目。项目中遇到问题,去 GitHub 提 issue 和 PR 已经比较熟练了🤣。\n\n## 小试牛刀 <sub>2021 年 19 岁 大二</sub>\n\n距 Vue 3 发布正式版已经过去了一年,然而我自己的项目还在使用 Vue 2,一直想迁移到 Vue 3。但奈何当时 Vue 2 + Element UI 迁移到 Vue 3 + Element Plus 真的非常繁琐,所以没办法还是继续用 Vue 2。 \n\n后来 [Anthony Fu](https://github.com/antfu) 发了个推文,说他做了个 [unplugin-vue2-script-setup](https://github.com/antfu/unplugin-vue2-script-setup) 可以在 Vue 2 中使用 `<script setup>` 语法。有了这个插件,总算是有现在 Vue 2.7 的影子了。我在那条推文下面问了下,能不能支持 ref sugar take 2(也就是现在的 Reactivity Transform),得到回复说等这个提案稳定了再做(结果现在都 2023 了,Vue 2.7 都发布了,Reactivity Transform 还没稳定 😅)。我当时感觉到这个提案遥遥无期(果然吧 🤓),就自己提了一个 PR 把这个功能做了。后来 Anthony 发了个推特 at 了我,当时感觉贼有成就感。\n\n这是我第一次在开源中得到认可 🤩。\n\n### Element Plus\n\n这年暑假,最终还是把其中一个项目升级到了 Vue 3。自然也把 Element UI 升级到了 Element Plus。在迁移到 Element Plus 的时候,也发现了它的一些小问题,就发了个 issue。当时 Element Plus 的维护者鼓励我自己尝试去修一修,我就发了个 PR 给修了。\n\n由于有之前的贡献开源的经历,当时也有兴趣找维护者问了问:我能不能参与维护这个库。得到肯定的答复之后,就被~~骗~~拉过去当维护者了,正式走上开源这条~~不归~~路了😆!(其实也是写业务写麻了 🤫)\n\n当时进 Element Plus 团队的时候,Element Plus 还在 1.x beta 版,还存在一些 Bug 和远古时期的代码。在阅读代码的时,也一边疯狂发 PR —— 发起了一个重构计划。把 TypeScript 改为严格模式、重构了构建流程等等。因为之前都是自己一个人维护项目的,加入 Element Plus 团队之后,社区的小伙伴也非常热心,手把手带我了解了 GitHub 的工作流和开源项目的协作是怎么样的。\n\n以现在的视角,重新回过头看这段经历。这是我开源的第一站,第一次与一群志同道合的伙伴讨论项目和代码。这段时间,把几乎所有的业余时间都花在维护 Element Plus 上面,一上完课就跑回宿舍看 PR 🤖。\n\n这段时间在开源社区学到了非常多的东西,是我飞速成长的时期。因为 Element Plus 是一套 Vue 的 UI 库,整天和 Vue 打交道,我对 Vue 也有了更深的了解。除此之外,还有很多都是自己不懂的,把 Rollup、[unplugin](https://github.com/unjs/unplugin)、esbuild、ESM 与 Common JS 等都研究了一遍。\n\n很多项目也是在维护 Element Plus 的期间诞生和认识的。[unplugin-vue](https://github.com/sxzz/unplugin-vue) 是改 Element Plus 的构建工具的时候而写的 Rollup 插件。[unplugin-vue-macros](https://github.com/sxzz/unplugin-vue-macros) 是去年为 Element Plus 迁移 `<script setup>` 语法而做的工具。还把 [unplugin-vue-components](https://github.com/antfu/unplugin-vue-components) 与 [unplugin-auto-import](https://github.com/antfu/unplugin-auto-import) 写到了 Element Plus 的官方文档中。\n\n总之,2021 年是我正式参与开源的第一年。4 个多月的时间里提了 200 多个 PR,为 Vue 周边的生态做了一些小贡献,期间也为 Vue 3 提了[我的第一个 PR](https://github.com/vuejs/core/pull/5026) 😎。\n\n## 渐入佳境 <sub>2022 年 20 岁 大三</sub>\n\n如果说 2021 是一个好的开始,那 2022 年对我来说绝对是意义非凡的一年。\n\n这年二月,随着过完了春节,Vue 在农历初七把 Vue 3 切换成了默认的版本,Element Plus 也同时发布了第一个正式版。然而在背后,春节期间我在帮忙完善最后的一些细节与文档,在除夕夜还在[忙着发版](https://github.com/element-plus/element-plus/releases/tag/1.3.0-beta.10) 🤣。\n\n这年为 Vite 贡献了[我的第一个 PR](https://github.com/vitejs/vite/pull/6566)。在为 Element Plus 迁移到 `<script setup>` 语法的时候,为 Vue 提了[我的第一个 RFC](https://github.com/vuejs/rfcs/pull/432)。非常荣幸地收到了尤雨溪 Evan You 两个 Twitter 账号的关注。\n\n在三月份,在 Element Plus 的小伙伴的帮助下,我开通了 GitHub Sponsor。收到了来自开源社区的第一桶金 🥳!目前已经收到 49 位伙伴的支持!在这非常感谢大家对我的帮助和认可 ❤️。\n\n在 2021 年其实有想过去哔哩哔哩直播写代码,但是只是说说而已。但今年终于付出行动了。契机是 [Anthony Fu](https://github.com/antfu) 去直播了,我觉得挺好玩的。时不时[在 B 站直播写代码或聊天](https://live.bilibili.com/396708),也认识了不少的朋友!\n\n\n<p align=\"center\">\n<img src=\"https://user-images.githubusercontent.com/6481596/213795516-414af184-dd0e-4778-8c9f-26878d6d61d2.png\" style=\"width: 400px; height: auto\" />\n</p>\n<p align=\"center\">\n<img src=\"https://user-images.githubusercontent.com/6481596/213796168-9692bf2a-f9fa-4141-847e-912dbc3942ab.png\" style=\"width: 400px; height: auto\" />\n<br/><sup><del>卷起来了</del></sup>\n</p>\n\n下半年,我也逐渐把视野放到了 Element Plus 以外的项目上,自己瞎捣鼓写一些玩具,同时也维护着自己的一些库,反正就是到处修修补补蹭一蹭 PR 吧 🤪。本年我花最多时间的个人项目是 [Vue Macros](https://vue-macros.sxzz.moe/)。通过这个项目,解锁了一些奇怪的用 Vue 的方式——Vue 探索版 ~~(不是)~~。通过这个项目,我参加了 [Nuxt Nation 2022](https://nuxtnation.com/)。受 [Haoqun Jiang](https://github.com/sodatea) 的邀请,也参与了 [Vue Conf China 2022](https://vue.w3ctech.com/),这也是我第一次参与到 Vue 社区的演讲中。但是遗憾的是,由于众所周知的原因,到目前为止都还没有参与过线下的聚会。\n\n<p align=\"center\">\n<img src=\"https://user-images.githubusercontent.com/6481596/213796512-ef1bce9b-d6b5-4b41-af58-52b1f81e1dc5.png\" style=\"width: 500px; height: auto\" />\n<br><sup><a href=\"https://www.bilibili.com/video/BV1Ee411w7Ug\">Vue Conf China 2022</a></sup>\n</p>\n\n本年还录制了《开源面对面》的[播客节目](https://osf2f.net/episode/S01E16),这也是我第一次参与录制博客。因为是第一次,所以可能会比较局促一点 🫣,还请见谅。在录制完成后,还为《开源面对面》制作了一个[官网](https://osf2f.net/)。\n\n本年最大成就是[加入 Vue 团队了](https://twitter.com/sanxiaozhizi/status/1586198256400285697)!有段时间放了很多精力在 Vue 仓库,在为 Vue 做了好些个贡献后,同时在 [Anthony Fu](https://github.com/antfu) 的提名推荐下,我成为了 Vue 团队的一员。这是对我极大的认可和鼓励。作为 Vue 团队最年轻的成员,目前还比较菜🥬,我要学习的东西还非常多。对 Vue 的理解可能也不是那么的深刻,所以需要继续向前辈们学习 🫡。\n\n当然在开源社区有快乐的事情,自然也有闹心的事情——某些不可理喻的 issue。好在参与开源社区比较久了,我已经自带免疫了。碰到这种 issue 我会纯粹当作一个热闹来看,发到网上当一乐子。详见 Twitter [#迷惑issue大赏](https://twitter.com/hashtag/%E8%BF%B7%E6%83%91issue%E5%A4%A7%E8%B5%8F)。\n\n本年上半年参与最多的社区项目是 Element Plus,前文已介绍,不多赘述。下半年则是 [Elk 鹿鸣](https://github.com/elk-zone/elk),基于 Vue 技术栈开发的一个 Web 版的 [Mastodon](https://joinmastodon.org/) 客户端。最初是 [Anthony Fu](https://github.com/antfu) 创立了这个项目,后面我自己有段时间感觉无聊,就把我也邀请进来了。之后有段时间经常与团队的 [Patak](https://github.com/patak-dev) 和 [Daniel Roe](https://github.com/danielroe) 沟通,以至于过成了欧洲时间 GMT+1 了 🤣。通过 Elk 鹿鸣,让更多 Vue 社区的小伙伴参与进来了!我学习到了各种各样的技术栈:Nuxt、PWA、Tauri 等等。\n\n![sxzz_contributions (2)](https://user-images.githubusercontent.com/6481596/213796641-dbbb80fd-024b-4645-a6bb-22a47b9d9362.png)\n\n\n## 鸣谢 <del><sub>蹭热度</sub></del>\n\n不过这年收获最大的还是认识了非常多来自开源社区的朋友们——[Anthony Fu](https://github.com/antfu)、[ShenQingchuan](https://github.com/ShenQingchuan)、[webfansplz](https://github.com/webfansplz)、[Haoqun Jiang](https://github.com/sodatea)、[Patak](https://github.com/patak-dev)、[Daniel Roe](https://github.com/danielroe)、[Johnson Chu](https://github.com/johnsoncodehk)、[LittleSound](https://github.com/LittleSound) 等等!很难想象在前两年遥不可及的大佬们,现在可以时常进行讨论 ~~(谈笑风生!🤪)~~\n\n今年在诸多朋友的帮助下,获得了许多的成就。可谓是成就感满满的一年。在此我想向 Evan You 和 Patak 等我的赞助者和朋友们致谢。多亏了 Patak 和  Evan You 赞助了我,有了他们的认可后收到了更多的赞助,对我意义非凡。\n\n## 👋 未来,2023\n\n### 🚩 目标\n\n- 博客 & 文章\n\n  希望在 2023 年把我年久失修、已经长草了的博客翻新一下。因为博客太旧,就也没有动力写文章了。平时多去写点总结性的文章。避免明年的年终总结再写个流水账 🥲。其实我不怎么善于表达,所以多写点文章练练手可能会改善一些。~~(愿你博客半生,归来时仍是GitHub Gist 🤣~~\n\n- 做出一个自己满意的开源项目\n\n  希望自己能做出一个规模大一些、令自己满意的开源项目 🤔。\n\n- 线下 Conf\n\n  也由于众所周知的原因,2023 年有更多机会参与海外的演讲。所以希望能多参与一些线下的演讲。希望能在 [Vue.js Amsterdam 2023](https://vuejs.amsterdam/) 见到各位。👋\n\n- 润\n\n## 抓到我\n\n更多我的日常,可以通过以下网站关注我 💖\n\n- [GitHub](https://github.com/sxzz?tab=overview&from=2022-12-01&to=2022-12-31)\n- [Twitter](https://twitter.com/sanxiaozhizi)\n- [知乎](https://www.zhihu.com/people/sanxiaozhizi)\n- [稀土掘金](https://juejin.cn/user/4371313964904791)",
  "attributes": [
    {
      "value": "2022-my-open-source-exploration",
      "trait_type": "xlog_slug"
    }
  ]
}