Vue、Vite核心成员Anthony Fu访谈(上)

2,071 阅读14分钟

2021年10月28日,Vueshenzhen邀请了Anthony Fu,Vue和Vite的核心成员来了一次访谈,内容涉及Vue、Vite、Nuxt等开源内容,本次访谈分为上下两期,希望大家收藏以后慢慢阅读哟~

主持人:Hi Anthony,来跟观看直播的小伙伴们打个招呼吧!

Anthony:我是Anthony Fu,是VUE和VITE核心成员,同时也是VueUse、Slidev几个开源项目的作者,我之前做了一段时间的全职开源,现在在Nuxtlab做Nuxt3的开发,大家可以在这个链接去看我的Github。

关于开源

主持人:开源是现在非常热门的一个方向,Anthony也全职参与了一些开源项目,那全职开源是什么样的体验呢?

Anthony:其实我现在刚研究生毕业,全职开源做了大概4、5个月的样子,后来才进的Nuxtlap。全职开源是一个怎么样的体验?整体来说其实挺理想的,相当于说你会有非常多的自由时间,你可以灵活分配你工作的时间,你也不需要一个固定的居所,你可以边出去玩边做开源。可能会遇到的问题,就是怎么去分配时间和分配精力在开源项目上。

主持人:那你做开源主要的收入是什么呢?

Anthony: 收入当然是很重要的一个问题,如果收入没有办法解决的话,那全职开源是不太成立的。其实有很多种不同的方式,最直观的来说就是通过Sponsor。Github现在开通的Sponsor功能,我之前也就报着试一试的心态,想看一看大家怎么评估我的工作。结果在我准备要毕业的时候,Github上的赞助金额已经到达勉强可以维持我的生活开销,当然还不能跟真的工作去比,但是我自己特别热爱开源,我希望说能够在开源上面做出一些事情,然后如果我全职做开源,对我来说可能也没什么损失,如果我做出来一些厉害的东西,那我之后再要回去大公司也是没什么问题的嘛,就是抱着这样的心态,我就开始做全职的开源。同时因为做了全职的开源之后,你做的东西可能会更容易被人看到,比如说你可能做了一些跟某些公司的业务相关的内容,他们有些人就会来Email找你,或者是说推特私信你做像是顾问或者短期的兼职,去帮他们解决一个项目,那这也算是做开源的其中的一个收入来源。

主持人: 那你觉得国内互联网和国外公司在开源方面有什么不同吗?

Anthony: 这个其实很难讲,因为不同的公司其实都差别蛮大,不同的项目会需要解决的问题也不太一样。其实我对国内公司的开源也不是特别了解,但从我的角度来看,我觉得国外的公司在开源的部分比较多的是在做一些基础、通用化的工具。比如说大家都知道的react、 typescript,或者vuescode等等,这些东西与公司的业并没有那么强的绑定,是一个比较通用化的工具。

主持人: 最后一个问题是新手如何参与开源?

Anthony: 这个其实是一个很广的话题,我觉得最重要的就是你要有这个心,就是说你要真的对开源感兴趣。如果需要上手的话,我建议是有几种方案:

第一,你可以从网站或者公众号去选择一些适合参与开源的项目,或者说开源项目的作者可能会在issue上标good-first-issue,或者contribution-welcome这样,你可以去看看,如果觉得可以接受,那就可以参与。

另外一个方式就是我更倾向于持续做一个东西,然后在这过程中,你用到的工具,比如说你要做一个网页,那你选用Vue还是选react,这之间如果你发现Vue的文档有什么问题,可以去改,你去改正几个错别字,这也算是开源的第一步。之后,可能你遇到了一个bug或者是你觉得有一些功能可以加,那你也可以去更多的参与这个社区的开源,这样子的话,对我来说的话会有一个更好的激励。

主持人: 我之前了解到你好像是在台湾是上学是吗?

Anthongy:对,我在台湾读的大学和研究生。

主持人: 那我在这里插一个问题,就是你第一次接触开源是怎样的呢?就是怎么开始接触开源的?

Anthony:我从小学开始接触一点点flash,然后高中开始接触编程,然后就从什么basic、C#开始,当时的话,就是做了一些桌面上的小工具用C#写的,然后我就把代码放到Github上,但是以我现在的角度来看,其实当时所谓的开源就是把代码放到Github上,跟现在我认为的开源其实是有点不太一样,我自己觉得开源不仅仅是你把代码公开出来就解决了,就是你今天做了一个项目,你要去想这个项目能够为大家带来什么样的价值,同样你这个项目要能够更好的去让大家做贡献。也就是你要把文档写好了,你要把contributionguide写好、参与贡献的一些指南、然后你要告诉大家这些功能怎么用,把注释写好,要把代码写的干净,这东西其实都算是开源很重要的方面,也会决定你这个开源最后做的是好还是坏,那当时我只是把代码放上去,其实当时Github不能放私有仓库,那就是公有仓库当私有看,反正也没有人看。

后来我真正比较参与到开源的话是开始接触文言文编程语言,当时其实还蛮火的,我也只是一个外人,然后我看到了这个新闻觉得这个项目很有意思,然后看了一看他可能在工具链方面其实还欠缺蛮多的,因为它当时就算是一个实验性质的东西,然后他也可能就是花了一两个星期写出来的,那我就去帮他写了vuescode的插件。就这样跟作者慢慢有开始做交流,开始提issue跟提PR,慢慢的我们把就把这个文言文这个编程语言变成了一个organization,在GitHub上变成To Get organization,变成我跟作者还有另外一个人做成这个team的member,然后我就花了很多时间去做它的各种各样的生态上的资源支持,比如说什么ID的,我们还做了一个线上的IDE、做了一个包管理器,整体来说这些东西其实都是一个很好的学习的过程。在此之前,可能我也没有做过这些事情,但是因为去做了这个开源,或者说为了想办法把这个生态变得更好的过程中其实就学到了很多东西。

主持人: 所以大佬也是从很小的这种开始的,然后一步步成长起来的。然后你刚才提的有一点我觉得非常赞同,就是说开源并不仅仅只是把代码放上去,像Apache里面会提一个community over code社区会比代码更重要,然后我们还有包括一些文档,这些东西也是很重要的一点。  

深入开源

  主持人:其实开源里面有很多需求,那这些需求是怎么确定的,我们怎么决定我们做哪些?哪些可能不做?

Anthony:这个主要取决于这个开源项目的性质了,如果是做个人开源的话,那么大家比较像是我就做一个东西好玩,我就觉得这东西挺酷的,我做出来我就把它开源了,最开始可能大家都没有想特别多,可能就是一个想法,或者是为了解决你自己的某一个特定的需求。

那么这时候,所有的需求都是你自己决定的,你想不想要都看你,开源本身也没有什么强约束说别人提的要求你就一定要实现或者是怎么样的,也就是你放出来,你就是展示出来给大家看,这是一份可以工作的POC。最后不用你可以fork,你可以拿去自己改,或者是你要来贡献也可以,但是我不一定合嘛。那再来就是可能会有一些人开始给你提issue、提feature request、提pull requests的时候,这个其实就取决于你自己对这个项目的预期是什么,比如说你可能就是想要做个人项目,就想满足自己的需求,那你就说我都不要,或者你可能觉得这个我可能会用到,那我要。但是再一个就是说,你希望被更多人去用到,那你就要去考虑说你要怎么去做更general的东西,就是更普适化的东西。可能别人也会提一些特定为他自己服务的功能,比如说他想解决这个问题,他又用了一个非常取巧的一个方式去解决他自己问题,可能对整个项目来说没有什么帮助,那这时候就是你自己需要去做权衡的时候。

主持人: 好的,下一个问题。我知道Anthony其实精力非常的旺盛,看那个github那个提交的记录基本上全年无休,怎么在众多的开源项目中平衡自己的精力,然后又能够有比较高质量的输出?

Anthony: 其实也没什么特别的技巧,我尽量还是每天都做,每天都做的好处就是你不会积累工作,我每天都把今天新的issue跟PR看过一遍,然后能解决的解决,不能解决的可能就是不想解决,可能关掉或者什么之类的,都处理过一遍,就是你今天的事情做完,明天就不会有双倍的事情要做,就是尽力而为,不是说一定要做完。然后再一个就是当你项目做到做的比较好,比较有人气的时候,其实就会有很多的贡献者来参与贡献,那这时候你就可以下放一些权利,你可以把一些你觉得还不错的贡献者,给他们权限,让他们也可以帮助你做整个项目的管理,甚至发版或什么之类的,这样子就会变成他可能自己也有一些需求,他可能用了这个工具,他也有能力,然后同时他得到了这个事情之后更有动力去帮你做这件事情,他得到了你的认可,那我自己的话也是,因为我进了Vue的team,我其实就是也为Vue做了很多事情,那我觉得也就算是大家对我的能力的一个肯定。一个就是分配时间,再一个就是利用社区的力量。

主持人: 那刚刚其实提到了利用社区的力量,其实社区都是比较开放比较平等的,第三个问题的话,就是开源和这个商业化,你怎么看待这个事情,其实现在参与开源的话,除了个人的这种开发者,有一些也是利用开源来进行创业,也会有一些大公司进到这个开源里面。所以开源和商业化这个大的话题,您怎么看呢?

Anthony:不管初衷是什么目的是什么,整体来说,开源这件事情能够让大家做贡献,参与一起把事情变的更好,就是一件很好的事情,那最后大家得不得利,其实这个东西取决于个人,就看最后你自己怎么决定,那我觉得有大公司进来也是很好的,很多开源项目也是因为有了大公司这样雄厚的实力才有可能做好,就比如说像typescript就算是一个很好的例子,它是一个相当有复杂度的东西,社区其实也很难去把它做成现在这个样子。个人来说的话,我是倾向于不太考虑商业化的,有一种所谓的商业化,就是在开源里面我们叫sponsor where,就是比如说我有赞助者,那我可能去做一些开源的项目,但是我还不把它放成public开源,就是我可能只面向于我的那个sponsor。然后,可能等到做到一定程度, sponsor会有先预先看到这个或者是用到这个东西的权力,然后最后我们达到的一个目标,比如说sponsor数量是多少,或者是我觉得这个项目做得不错了,那我再最后再把它开源,那这样子就是说可以在一个开源跟一个收入的地方找到一个平衡,就是你最后这个项目还是开源的,但是在之前你还是可以得到一些更好的去激励你的sponsor去给你赞助的这样的一个事情。

主持人: 那我们进行下一个问题,关于开源的license,开源的license的话其实前一阵Apache有经历过更换license,这块你有什么看法呢?

Anthony:我觉得license更多跟商业化比较有关系,因为这个会涉及到谁得利或是其他事情。基本上所有的项目就是MIT,那MIT就基本上放弃了你所有的权利,但是这样的好处就是会让更多人更敢去用你的东西,因为他可以拿去自己改,他也不需要去受到你这个license的制约,这算是一个大家现在趋向于选择的一个趋势,那开源反正就是一个代码都出来了,这个东西就很看个人了,就看看你最后自己怎么决定或者……

主持人: 对,其实这里除了刚才提到的一个问题,还有一个就是,国内现在对license使用上面会更规范,更严格一些,前一阵也有个例子,就是有一家公司用了一个GPL的协议的,但是他源码没开源。

Anthony:其实你说美国的license可能不能够管到国内,但是开源这个东西就是基础建立在信任上,我觉得你既然拿了这个东西,虽然法律上制约不到你,但是你还是要尊重大家的劳动成果,既然他是GPL,那你就要尊重它的这个license。

主持人: 对,而且国内的法律应该是把license当成一个合同来看待的,所以国内的法院是支持这种license协议的。最后一个关于开源的问题的是对国内的开源爱好者有什么建议吗?

Anthony:学好英语吧,不是说你要学的很好,就是不要去怕英文这件事情,英文就是一个工具可以看一手的资源,基本上所有Github的issue都是英文的,我觉得学好英文其实对开源蛮有帮助的,你敢去用敢去看,多看其实也就自然而然就会了。

大家可以结合视频一起享用哟~VUE SHENZHEN Meetup--Anthony Fu 线上访谈:LINK