当前位置: 首页 > Web前端 > HTML

谈谈Rust编译器Svelte的未来?构建大型应用程序?

时间:2023-03-28 16:15:28 HTML

最近看到Rich关于《未来Svelte》的微博。我很兴奋,点击观看。这个视频我看了两遍,感觉质量还是很高的。它涵盖了从如何构建开源库到如何运营开源库再到开源库的核心库规划等一系列主题。虽然视频是针对Svelte框架的,但我认为这同样适用于任何框架。接下来,我把个人认为的一些重要的点做一个总结。想看完整版的请看原视频(https://www.youtube.com/watch...)整个视频都是问答的形式所以把楼主的问题总结给Richfor每个标题。如果只想看Svelte的未来规划,可以直接跳到第四个内容。每段内容的底部是作者自己的个人理解(不认同的可以跳过),对话中没有。1.第一个流行的开源库是什么?如何改变开源路上的流程?Rich提到他制作的第一个流行的开源库是Ractive。这个图书馆大家可能有点陌生。但在当时也很流行。他可以说是MVVM的鼻祖。下面是Ractive的例子:不是说Vue和它很像,因为早年Vue也借鉴了Ractive的相关用法,在Vue的历史Issues中也可以找到。但是在Ractive推出的同时,React也推出了,Rich想:完了,我浪费时间了。(毕竟React是有公司背书的),不过Rich最后推出了Ractive,社区反响不错,让Rich觉得自己可以和React抗衡。所以Rich对Ractive倾注了很多心血,周末和晚上的所有业余时间都用来开发这个项目。这也是他第一次在开源上投入大量经验,为他日后的开源生涯打下了良好的基础。但由于项目维护任务繁重,Rich利用业余时间开发项目非常疲惫,这是他第一次介绍作为开源维护者的真实情况。但这段经历教会了他如何获取用户,处理如何让用户参与贡献,如何统一项目,如何拒绝PR。之后,Rich在开源的道路上继续前行,还推出了另外两个知名库Rollup和Svelte。提示(作者自己总结,非官方态度):前期确定目标应该朝一个方向努力,有助于我们积累知识,步入开源队列。2.如何创造一个现在市场上没有的有价值的工具?Rich认为,大部分工具的创作都源于“个人之痒”(大意可以理解为个人的技术探索,市面上有些工具不好用,可以自己造一个)。由于在新闻编辑部工作,经常有很多繁重、快速的迭代工作,所以利用好开源项目非常重要。正是在这种复杂的任务中,促使Rich使开发过程足够简单,从而创建了Svelte。提示:这实际上是一个老掉牙的问题。只有结合实际业务,才能打造出优秀的开源项目。3.加入Vercel对Svelte的未来意味着什么?1.Rich也直言,进入Vercel可以对付有权势的人。毕竟,比如Webpack的作者Tobias和SWC的作者Donny都加入了Vercel。(最近React的灵魂人物Sebastian也加入了Vercel)2.还有一个很重要的点。Rich加入Vercel意味着他只需要为一份工作工作。(在Vercel的工作就是搞开源,真的很羡慕。)3.有工作的好处是可以有更多的时间投入开源。筋疲力尽的他不想让同样的事情发生在Svelte身上。4、消除人们对一个没有资金支持的开源项目会随时消失的担忧。但现在有了全职工程师,Vercel已经向Svelte投入了资源,不仅是Rich本人,还聘请了stephDietz来处理开发者关系团队的工作。随后,Lee还与Rich讨论了如何将Svelte的开发速度提升到一个新的水平。(当你有一个快速增长的开源项目时,后者真的很重要。)Lee认为,利用工作和招聘对Svelte来说非常重要。以React为例。也许一些开源爱好者正在研究React。如果公司在招聘时需要React,这对爱好者来说是一个积极的反馈,这个反馈也会让React社区快速发展。整体是一个良性循环。Lee还表示,Facebook(Meta)也在他们的一个网站上使用了Svelte,即使他们创建了React,他们仍然喜欢尝试,这是他们的一个很好的品质。Rich也表达了对SvelteTip的信心(作者自己总结,非官方态度):开源维护者确实需要平衡好自己的工作和副业。也许未来会有新的解决方案,可以帮助开源工作者有一个很好的时间分配方案和资金收入。(不然就跟最近的Log4j一样。。。)4.关于Svelte未来的总体规划,你对明年或者未来几年框架如何推进有什么看法?从时间线来看,Rich表示新的大版本确实即将到来。Svelte3发布已经两年半了。Rich对Svelte4有很多想法,但有点犹豫要不要提前挖掘,哈哈哈哈。(有点可爱,知道我总是在挖坑,却不去埋坑)不过他还是说了一些他目前在做的事情,用Rust重写了很多工具链,提高了编译速度。我还提到了一个重要的点。许多人批评/担心Svelte,因为当Svelte编译和输出代码时,Svelte的体积会随着组件数量的增加而比其他框架增长得更陡。这张图反映的问题一直被Svelte诟病……详细的Issue可以看https://github.com/sveltejs/svelte/issues/2546虽然Rich认为这不是现实中的问题,因为Code分裂距离拐点足够远,一般不会出现这种情况,但它仍然是一个隐患。所以Rich说现在已经有新的编译方案可以让编译后的代码比输入的代码小,真的很激动~他还说他目前正在考虑一些新的东西比如Errorboundaries,Suspense,ReactServerComponent.Tip:我个人通过Lee的谈话感觉,最好有个地方记录项目的整体规划,这样有助于大家对项目有信心。关于这一点,我觉得Vue做得很好。每次有大的改动都会先提出一个RFC来讨论,最近大家的Notion开源替代AppFlowy5。核心库中的内容如何规划,比如React核心库是否要选择自己的状态管理库、路由等?如何划定核心库与生态库的界限?Rich认为React定义核心库的形式是非常可扩展的,但是你也被迫创建一些周边的生态库(路由管理,状态管理,以及如何管理你的CSS),这确实创造了很多关于React的东西。CSS和JS库的创新,但同时也存在选择困难的问题。就像Rich提到的关于如何将CSS添加到React中一样,没有答案。关于核心库的划分,Rich给出了答案。他认为React是一个JS框架,而Svelte是一个Web框架,所以他尽可能地为人们提供方便,比如快写动画,快写转场等等。提示:核心库的划分确实很重要的。个人比较喜欢官方统一生态,降低了用户的选择成本。当然官网也可以提供接口去拥抱其他竞品。6、如何解决开源资金观感问题?想想像Vercel这样的风险投资公司能做什么?里奇说这对他来说很难,这是他正在学习的东西。Lee也听从了Rich的回答,认为也许投入数百万到一个开源项目中肯定能解决问题。有时一个开源项目可能希望发起人能够提供一个类似PM的角色,帮助开源项目更好地管理时间,从而腾出时间给核心开发人员处理杂事。Rich认为很多项目都可以从PM中受益,也许有一个模型可以让某人充当各种项目的PM,认为OpenJS基金会有一些选择。他认为,一些开源项目最大的问题之一是需要对Issue和PR进行分类。如果一个不负责写代码的人能帮到这些,他觉得可能会带来很大的帮助,当然也不是绝对的,可能有些开源项目只允许核心开发人员管理。Lee认为,对于很多成功的开源项目,在没有公司支持之前,创始人和主要维护者就像一家初创公司一样运作,需要做很多工作,产品、营销、工程、技术领导、PM,并继续扩大自己。技能,将不同的部分委托给核心团队或开源社区。提示:在项目的前期,个人确实需要花费大量的时间。这个管理难度比公司难多了,领导的个人能力很重要,尤其是核心团队的选择。小结虽然面试全程基于Svelte,但我觉得这个讨论不局限于Svelte,它适用于任何开源项目的过程,从如何构建一个市场上没有的有价值的项目,到如何设计一个开源项目库时划分核心(项目定位)然后如何推广开源项目(招聘/工作是一个很重要的方向)然后我们应该如何共同塑造这个项目关于开源赞助,最后是项目的未来规划应该有文档沉淀结语??关注+点赞+收藏+评论+转发??,原创不易,鼓励作者创作更好的文章关注公众号秋风的笔记,一个前端公众号关注关于前端面试、工程和开源