2021年10月28日,Vueshenzhen邀请Vue和Vite核心成员AnthonyFu进行专访。内容涉及Vue、Vite、Nuxt等开源内容。本次专访分为两部分,希望大家收藏后慢慢看~主持人:Anthony嗨,过来跟看直播的小伙伴们打个招呼!Anthony:我是AnthonyFu,VUE和VITE的核心成员,VueUse、Slidev等多个开源项目的作者。我已经做了一段时间的全职开源,现在在Nuxtlab开发Nuxt3。您可以转到此链接查看我的Github。关于开源的主持:开源是现在很火的一个方向,Anthony也全职参与了一些开源项目。那么全职开源是一种怎样的体验呢?Anthony:实际上,我刚从研究生院毕业,在加入Nuxtlap之前全职从事开源工作大约4或5个月。全职开源是一种怎样的体验?总的来说,其实还是比较理想的。意味着你会有大量的空闲时间,可以灵活分配工作时间,也不需要固定住所。出去玩的时候可以做开源。可能遇到的问题是如何为开源项目分配时间和精力。主持人:那你做开源的主要收入是什么?安东尼:当然,收入是一个很重要的问题。如果没有办法解决收入,那全职开源就不太成立了。其实有很多不同的方式,最直观的方式就是通过Sponsor。Github现在已经开放的Sponsor功能,我报了之前试一试的心态,想看看大家是怎么评价我的作品的。结果快毕业的时候,Github上的赞助额度已经够我生活费了。当然不能和真正的工作相比,但是我非常喜欢开源。有些东西,如果我全职开源,对我来说可能没有什么损失。如果我做了一些强大的东西,那么我回到一家大公司就没有问题了。抱着这种心态,我开始了全职开源。同时,全职开源之后,你所做的可能更容易被别人看到。比如你可能做了一些和一些公司的业务相关的内容,他们有的会来给你发邮件,或者推特私信你作为顾问或者短期兼职来帮助他们解决一个项目,那么这也算是做开源的收入来源之一。主持人:您认为国内互联网和国外公司在开源上有什么区别吗?Anthony:这个其实很难说,因为不同的公司差异很大,不同的项目会有不同的问题要解决。其实我对国内公司的开源了解不多,但是从我的角度来说,我觉得国外的公司在开源的部分是在做比较基础和通用的工具。比如大家知道的react,typescript,或者vuescode等等,这些东西跟公司业务的绑定不是那么强,都是比较通用的工具。主持人:最后一个问题是新人如何参与开源?安东尼:这实际上是一个非常广泛的话题。我觉得最重要的是你要有这个心,也就是说你要对开源有真正的兴趣。如果你需要入门,我建议几个方案:首先,你可以从网站或公众号中选择一些适合参与开源的项目,或者开源项目的作者可以将问题标记为good-first-issue,或者contribution-welcome,大家可以去看看,觉得可以的话可以参与。还有一种方式,我更倾向于继续做一个东西,然后在这个过程中,你使用的工具,比如你要做一个网页,那么你选择Vue或者React,如果你找到Vue的文档如果有任何问题,您可以更正它。您可以更正一些错别字。这也是开源的第一步。之后,也许你遇到了一个bug或者你觉得有一些功能可以添加,那么你也可以多参与到这个社区的开源中来。这样,对我会有更好的激励。主持人:我了解到你好像在台湾读书是吧?Anthongy:是的,我在台湾上过大学和研究生院。主持人:那我在这里插入一个问题,就是您第一次接触开源是怎样的?您是如何开始使用开源的?Anthony:从小学开始接触一点flash,高中开始接触编程,然后是基础和C#开始。当时我在桌面上做了??一些小工具,然后用C#写,然后把代码放在Github上,但是以我现在的眼光来看,其实那个时候所谓的开源就是为了把代码放到Github上,其实和我现在想的开源有点不一样。我个人认为开源不仅仅是你公开你的代码。解决了,就是你今天做了一个项目,你要想想这个项目能给大家带来什么价值。同样,你的项目应该能够更好的让大家做出贡献。也就是说,你要写文档,你要写贡献指南,你要参与贡献指南,然后你要告诉大家这些功能怎么用,写好注释,写好干净地编码。开源这个很重要的方面,也会决定你的开源最终是好是坏。当时,我只是把代码放在上面。其实那个时候Github是不能放私有仓库的,也就是公共仓库应该看成是私有的,反正也不会有人看。.后来真正参与开源,才开始接触文言编程语言。当时挺流行的,而我只是一个局外人。然后看到新闻,觉得这个项目很有意思,就看了一下。其实缺的东西还是挺多的,因为当时算是实验性的东西,然后他可能会花一两周的时间写出来,所以我就去帮他写了vuescode插件。就这样,我们慢慢开始和作者交流,开始提issue和PR。慢慢的,我们把这种文言文的编程语言变成了一个组织,变成了GitHub上的一个ToGet组织,变成了我和作者。还有一个人成为了这个团队的一员,然后我在它的各种生态资源支持上花了很多时间,比如ID,我们还做了一个在线IDE,我做了一个packagemanager。总的来说,这些东西其实是一个很好的学习过程。在此之前,我可能没有做过这些事情,但是因为做了这个开源,或者说在想方设法让这个生态变得更好的过程中,我其实学到了很多东西。主持人:所以大嫂也是从一个很小的开始,然后一步步长大的。那么我同意你刚才提到的一点,就是开源不只是把代码放上去,像Apache提到acommunityovercode比代码更重要,然后我们也包含了一些文档,这些东西它也很重要。深入开源主持人:其实开源里面有很多需求,这些需求是怎么确定的,我们怎么决定我们应该做什么?什么可能不做?Anthony:这主要取决于开源项目的性质。如果是个人开源项目,那大家更像我一样,为了好玩而做点什么。我觉得这个东西很酷,等我做出来的时候会开源,一开始,大家可能并没有多想。它可能是一个想法,或者解决您自己的特定需求。那么这个时候,所有的要求都是自己决定的。这取决于你是否想要它。开源本身没有强约束,就是别人提出的要求什么的,你必须实现,也就是你发布,你直接展示给大家看,这是一个可以工作的POC。最后,如果你不需要它,你可以fork它,你可以用它来自己修改它,或者你想贡献就贡献,但我不一定同意。然后可能会有一些人开始为您提出问题、功能请求和拉取请求。这其实取决于你自己对这个项目的期望。例如,您可能只想做一个个人项目。如果你只是想满足你自己的需要,那你说我不要,或者你觉得我可能会用这个,那我就用。但是还有一个就是,如果你想被更多的人使用,那么你就得想怎么去做更通用的东西,也就是更通用的东西。可能其他人也会提到一些专门为他服务的功能。比如他要解决这个问题,他用很刁钻的方法来解决自己的问题,可能对整个项目没有帮助。那么这个时候就是需要自己做出取舍的时候了。主持人:好的,下一个问题。我知道安东尼其实很有活力。看github提交记录,基本上是常年开放的。如何在众多开源项目中平衡自己的精力,才能产出相对高质量的产出?安东尼:其实没有什么特别的技能。我试着每天都这样做。天天做的好处是你不积累工作。天天看今天的新issue和PR,然后能解决,就是不行。也许你不想解决,你可能关掉它什么的,处理一次,就是今天的工作做完了,明天就没有双倍的工作要做,尽力而为,不一定要重做。然后还有一个就是,当你的项目做的比较好,比较火的时候,其实会有很多的contributor来参与贡献。这个时候你可以委托一些权限,可以放一些Contributor,给他们权限,这样他们也可以帮你管理整个项目,甚至发布什么的,这样他自己可能有一些需求,他可能会用到这个工具,他也有能力,同时他得到这份工作后更有动力帮你做这件事。他有你的认可,我自己的话也有,因为我加入了Vue团队,我实际上是为Vue做的。我做了很多事情,所以我觉得是大家对我能力的肯定。一是分配时间,二是借助社区的力量。主持人:您刚才提到了利用社区的力量。事实上,社区是相对开放和平等的。第三个问题是关于开源和商业化的。你怎么看这件事?其中一些开发者也利用开源来创业,一些大公司也会进入这个开源。那么你怎么看待开源和商业化这个大话题呢?Anthony:不管初衷是什么,总的来说,开源让每个人都贡献自己的力量,参与让事情变得更好,这是一件好事。最终受益的不是所有人。其实这个要看个人,要看你最后怎么决定。然后我觉得有个大公司进来就好了,很多开源项目都是因为大公司实力强才有可能。例如,即使TypeScript就是一个很好的例子。这是一个比较复杂的事情,社区要做到现在这个样子其实是很难的。就个人而言,我倾向于不太考虑商业化。有一种所谓的商业化,在开源中叫做赞助商。比如我有赞助商,那么我可能会做一些开源项目。但是我还没有把它公开开源,也就是说,我可能只针对我的赞助商。那么到了一定程度之后,发起人就有权利看到这个或者提前使用这个东西,最后我们就达到了一个目标,比如发起人的数量,或者我觉得这个项目做的不错,那么我最后会把它开源,所以这意味着你可以在开源和收入之间找到一个平衡点,即你上一个项目仍然是开源的,但你仍然可以得到一些更好的,然后再激励你的赞助商赞助这样的事情给你。主持人:那我们继续下一个问题,关于开源许可证。其实Apache在前段时间也经历过改license的事情。你怎么看待这件事?Anthony:我觉得license更多的是跟商业化有关,因为涉及到谁受益或者其他的事情。基本上所有的项目都是MIT,那么MIT基本上就放弃了你所有的权利,但是这样做的好处就是更多的人会敢用你的东西,因为他们可以拿走,自己改,不需要去被受你的license限制,这是现在大家倾向于选择的一个趋势,所以开源就是无论如何都要发布一个代码,这个东西就看个人了,就看你最后怎么决定了还是...主持人:是的,其实除了刚才提到的问题之外,还有一个问题,就是中国的牌照使用会更加规范和严格。前段时间有一个例子,就是一个公司用的是GPL协议,但是他的源代码是不开源的。Anthony:其实你说在美国的license不一定能控制国内,但是开源是建立在信任的基础上的。我觉得既然你拿了这个东西,虽然法律上不能限制你,但是你还是要尊重大家。劳动的结果,既然是GPL,那你就得尊重它的license。主持人:是的,而且国内法应该将许可视为合同,所以国内法院支持这种许可协议。最后一个关于开源的问题,您对国内的开源爱好者有什么建议吗?安东尼:让我们学好英语吧。不是说一定要学好英语,而是不要害怕英语。英语是阅读第一手资源的工具。基本上,所有Github问题都是英文的。我认为学好英语实际上是一件好事。对开源很有帮助。敢用敢读,自然要多读。可以和视频一起欣赏~VUESHENZHENMeetup--AnthonyFu线上专访:LINK
