Anthony Fu 是一个 Fulltime Open Sourcerer,有许多优秀的作品,是 Vue 和 Vite 团队的核心成员,目前在 NuxtLab 工作,本期我们就来聊聊他的故事。
Transcript
Limboy: hi 大家好,欢迎收听 ByteTalk, ByteTalk 是一个程序员访谈节目,我是主持人 Limboy,今天请到的嘉宾是 Anthony Fu,他主要活跃在国外的开源社区。今天我们就来聊聊他的故事。欢迎 Anthony Fu。
Anthony: 大家好,我叫 Anthony Fu,我是 Vue 和 vite 的核心团队成员,同时也是一些开源项目,如 Vueuse, Slidev, UnoCSS 这些开源项目的作者。我之前在 GitHub 上做了一段时间的全职开源,那现在加入了 NuxtLab 主要参与 Nuxt 3 的开发和 Vite 的整合。
Limboy: 好的,那先来聊聊你是什么时候开始接触编程的吧。
Anthony: 这个的话其实我接触编程还挺早的,可能是在小学五年级,我是从我的同学那边了解到编程这件事情,他那时候给我展示了一些蛮酷的东西,比如说写一个什么键盘记录器,你开在后台,然后他会帮你把所有按过的键都记下来。这个东西算是我觉得特别酷的,展示完我就觉得原来还可以这样。这算是我开始接触编程的一个契机。然后后来开始接触 Flash 然后用 ActionScript 写了一些 Flash 的小游戏、小动画之类的。后来学 VisualBasic 和 C# 然后开始做一些 Windows 的开发。其实中间也是断断续续,因为学业的关系。比较算是认真开始学的话可能是从大一开始。大一的时候我那时候想要自己做一个个人网站,大家都会想要做一个自己 Blog。那时候那时候学了 Python,然后用 Python 做了一个后端,用 jQuery 写的前端,后来就是开始算是开始接触前端。再后来因为那时候 Vue 还蛮火的,然后学了 Vue ,故事差不多就是这样。因为学了 Vue 然后写了一些 Vue 的 App ,开始慢慢接触到开源。
Limboy: 那你觉得编程带给你最大的乐趣是什么?
Anthony: 我觉得对我来说可能就是类似成就感的东西,有点像是我们玩游戏,比如说我们玩吃鸡,那 100 个人里面,你最后一个人活下来,就会觉得特别爽,就是你去完成一件特别困难的事情,然后你成功了,那你会觉得很有成就感。那对我来说可能编程也是对我来说就算是一种游戏吧。今天遇到了一个特别难的问题,可能是比如说算法的问题,或者是你要解决一个事情,但是你完全没有头绪。但是你最后可能经历了很多困难之后,终于把它做出来了,那个能够给你带来的成就感,其实是非常能够驱动你去继续做这件事情。
Limboy: 那为什么会选择前端编程呢?
Anthony: 前端的话,我觉得前端有诸多好处,基本上来说就是你的 Feedback Loop 很短,稍微写几行代码,你就可以看到真正的东西。你可以在网页上看到一个按钮跳起来或者是一个什么,你从写代码下去到最后有反馈,是一个很快的过程。然后同时因为网页天然跨端,所以就变成如果你做了一个很酷炫的网站,然后你只要把它部署上去,就可以把这个链接发给你的所有的朋友。他不管是在手机电脑不管还是安卓还是 iOS 它都可以通过网页来看到。这也是另外一种成就感的来源,来自于别人使用你的东西,然后给你的一些评价之类。那我就觉得说做前端这一块能够让我做的东西更好更快地被别人看到,可以更快的分享给别人。
Limboy: 那你是什么时候开始接触开源社区的呢?
Anthony: 我最开始可能就是高中的时候看知乎,那时候很多大牛就会分享一些自己的经验。那时候好像有这么一件事情,就是说你把你的 GitHub 的首页做得特别好看,说你去参与很多贡献,对你将来找工作特别有帮助。我那时候就是一直有这么一个想法。然后我那时候一开始的时候就特别想要做一个成功的开源项目,然后通过这个可能去证明我的一些能力。之后比较好找工作。所以那时候会有意没意地把一些东西放在 GitHub 上。最开始 GitHub 你知道它是开源才是免费的。如果你要做 Private Repo 的话,是要收钱的。那时候那时候还蛮有趣,知乎上有人问说,那我怎么放我的私有仓库,但我又不想花钱,然后他们就说你就放呗,反正你开源也没有人看。如果没有人关注你,你这个东西其实跟私有的没什么区别。那最开始我做了一些小东西小工具放上去其实也没什么人看,那我其实也没那么在意。
后来我更多参与开源的话,就是一开始那时候我跟几个大学同学,想用网页做一个 App,它是一个记账的东西。我们几个朋友一起出去玩,然后比如说我们这段谁付那段谁付,我们最后旅行结束之后要把它算清楚。那这个我们要记一个叫做公账的东西。其实做公账这些事有很多解决方案。有的是说大家每个人一开始的时候,先比如说拿个 100 块钱放在公共钱包里,那钱包里有这么多钱,然后每次出去消费的时候就用公用钱包付。或者是另外一种方式说你每次谁付谁付,然后最后就算一下谁欠谁多少钱之类的东西,那差不多是这样。
我那时候跟一群朋友出去玩了之后回来,有在旅行的过程中遇到这个问题,就想说那不然我们来写一个 App 去更好地解决这个问题,说不定可以帮助到更多的人。然后那时候就用了前端的技术去做了一个 App,同时我们又想要利用我们学校朋友的同学的之间的资源,我们学校里面有一些外语科系的,比如说什么日语、韩语或者是一些小语种的。那我们就想能不能够让这些朋友来帮我们给这个 App 做翻译?这样一发布就是多语言。
如果不是学计算机的话,大家对于这种写代码这事情还是没有那么了解的。然后如果你这时候你发给他一个 JSON 然后你就要说这里面都是英文的,你帮我改成日文,那他就会不懂这个 JSON 语法,然后那时候就去找了一些 VSCode 插件,看说能不能比较直观的去做这件事情。那时候看到一个叫做应该是 VSCode Vue,然后那时候用了这个东西。它有一部分我们想要的功能,但是有一部分又没有。然后那个作者他自己的话是他没有太多精力在这个项目。同时他做完之后,就去忙他自己的事,然后他就把 issue 给关掉了,然后我就没办法给他提 issue 了,也不知道怎么参与贡献。后来想说那不然对不然我们来 fok 一个。好,我就去 Email 联系了作者,然后问他说能不能 fork 自己做一个呢?他说好,那我们就开始做这件事情,之后我就把它发布上去了。随着我们自己需求的增加,我加了一些新的功能。然后做这个项目之后,我会发到那个 reddit,还有一个 Discord channel 就是 Vue i18n ,就是跟大家介绍说我做了这件事情,加了一些觉得还蛮不错的功能。发了之后,大家说那我能不能用 React 因为那时候只是给 Vue 写的,我说好,我们就做呗。
然后把这整个项目相当于重构了一下,把它底层的一些东西做得通用化了之后,我们后来发了一个 2.0,支持了非常多的框架,基本上前端或者是有一些 PHP 什么类似的框架都可以支持。然后现在它叫 i18n-ally,如果你去搜的话,应该也可以搜的到。这算是我第一个有点成功的项目。后来蛮多人开始用的,然后也获得了一些 star,我可能会帮别人解决一些需求,或者说他们可能会想要加一些新的东西。如果你帮他解决,有些人就非常慷慨说那我就给你赞助点钱这样。那时候开了一个 paypal 收这个钱,怎么讲,收这个钱其实本身并不并没有太多,有可能就是一刀五刀之类的。但是我觉得这个事情能给我非常大的动力,就是你第一次说让别人因为你做了一个项目,让人甚至愿意掏钱。就是没有回报的掏钱去支持你做这件事情,我觉得是一个蛮大的成就感来源。一个受到别人的肯定这样的感觉。其实最开始我可能也想说。我很想要做一个成功的开源项目,但是我完全不知道要怎么做,因为你不知道别人需要什么,你也不知道你这个东西如果别人需要一个东西,你不一定做得出来。你要知道说自己能够做什么,跟别人需要什么,然后你可能要从中找一个平衡。那最开始我做这个项目其实是拿别人的想法来的,因为我是拿别人实现好的一部分,然后拿来 fork 拿来改的。这个东西就算是一个我能够更好地接触到开源,知道大家真的需要什么,也算是给我蛮大的动力去继续做开源。
Limboy: 所以是以一个记账的 App 为引子,开始进入到开源社区了。那我看你网站上有篇文章是讲 yak shaving 的这个概念,你能解释一下吗?
Information
- Show
- FrequencyEvery two weeks
- Published9 December 2021 at 00:00 UTC
- Length44 min
- Episode6