本文是Li Mao的同学对“ Web Infra:谈论未来和Vercel”的完整文本翻译。直播时间为1.5 h,全文约为12,000个字,阅读时间约为40分钟。
活动文档:网络Infra大咖啡面对面:谈论前端和vecel的未来
实时播放:https://live.juejin.cn/4354/vercel
阅读本文中的任何问题。欢迎审查和讨论。如果您的翻译不正确或更好的解释,请直接指向。
安妮:李,你好,你现在在哪里?
Lee:我现在在美国Lowa的得梅因(使用Demin)。
安妮:我的身边是晚上8点,你呢?
李:早上6点是吗?
安妮:哇!(对您来说)我醒来后必须尽快做很多事情。对不起,这个活动使您如此早。我相信许多人已经认识您,并且可以更有能力观看观看现场广播的朋友。您是否深入介绍自己?
Lee:当然,我是Lee,负责Vercel开发人员关系团队(Vercel的开发人员关系总监)的负责人,Vercel是一家可以轻松部署前端项目的公司。我领导团队帮助基金会(开发人员)帮助。开发人员社区的教育和开发。
安妮:很酷!在此之前,我做了一份小型问卷,我收集了每个人都想聆听您想分享的内容以及想要什么样的分享表格的问题。您准备开始分享吗?以前有什么准备吗?
李:当然,让我分享我的屏幕。
好的,今天我想谈谈前端的未来,包括前端如何发展,将谈论Next.js,当然,我将谈论Vercel,最后为Q&A留出一些时间。
首先,让我首先谈论这个概念,首先是CDN和Edge Network。
CDN可以帮助您存储静态资源,使其与世界各地的用户更加接近。您可以看到您将在某个地方(Origin Server)有一个源服务器,该服务器可能具有您的数据库,然后您在这里(服务器和服务器和CDN之间)CDN(用于分发静态资源),以便您的用户可以更快地访问您的网站。
现在的不同之处在于,该CDN网络是一个可以执行代码的边缘网络,这对于未来的前沿非常重要 - 我们将谈论下一步。我希望我们首先澄清这一点。那么这与我们的前端应用有什么关系?
现在,人们构建前端应用程序的方式发生了很大变化。前端的分离变得越来越清晰。前端之间的数据流如何在很大程度上取决于成千上万的REST API和GraphQl API。用于数据交互的API,您可以将前端分配给我刚才提到的全局边缘网络。
我们有许多常用的方法在屏幕上显示数据,每个方法都必须考虑的因素。LET关于客户端渲染的讨论(CSR,客户端位点渲染),每个人都更熟悉所有人,例如React等和Vue。
首先将初始HTML发送到浏览器。它不包含任何数据,就像外壳一样,因此浏览器只能在开始时渲染外壳,然后获取数据并在屏幕上渲染。
在服务方面渲染(SSR,服务器端渲染)中,在贷款前链接中有所不同。目前,我们可以在服务器上获取数据,因此返回的初始HTML包含第一个屏幕渲染内容内容在客户端上执行的过程称为“水合渲染”,就像react / vue和他们的SSR框架Next.js / js / js / js / vue一样nuxt。例如,服务器返回的HTML包含此按钮,但它是灰色(不是交互式)。通过水合渲染客户端后,此按钮将变得互动。在客户端执行JS之前,该页面没有交互式能力。
现在,Next.js和其他框架中有太多的缩略图。它们每个都代表了获取数据然后渲染的一种方法。
我们暂时不需要学习太多,它们只是获取数据然后渲染的一种方式。
翻译注意:PPT标题中存在错误,该错误应为静态(SSG/ISR)
让我们看一下静态生成的渲染方法(静态)。我们生成静态文件并将其发布到CDN。有两个好处:
如果您的服务器挂断了,则无需担心无法直接使用的网站,因为您已经生成了长期的静态资源,并且可以将这些静态资源发布到世界各地。
当然,通常会有一些缺点:
右边是传统的SSR。此方法不能总是gobal,也不总是在线。
为了使您的申请访问世界,要么要在世界各地设置服务器的价格高昂,要么基于无服务器的体系结构,请将代码发布给世界各地,然后节省资金。例如,问题是冷启动的情况,像AWS这样的服务需要很长时间才能实际启动和执行您的代码。
这不能保证始终在线。如果您的服务或API被悬挂,则无法提供网页。但是,SSR在以下几点方面表现良好。例如,在服务器端,可以将用户分为不同的实验组,执行不同的代码逻辑,减少客户端执行的JS代码,然后返回基本页面结构的初始HTML可以减少布局偏移。
我们将上述两个,即我刚提到的Edge SSR组合。边缘网络的关键功能是它可以在世界各地运行代码。这是由此来表征的。我们可以不断优化静态生成部分和服务终端渲染的静态部分。因此,确保尽可能静态的可用性的唯一方法。
安妮:对不起,您能详细解释一下,因为我第一次听到了边缘网络的概念,就像有人第一次告诉我一样,您知道微软,解释更多?
是的,新概念很难理解,因此请使用该问题在此处解决它来解释它。然后,我们看一下。例如,此示例实际上,每个SSR应用程序都会有此问题:
完整的数据请求或什么都没有。
查看左侧的零件,我发送了两个请求,一个请求检查用户是否登录,另一个请求每分钟从分散的内容管理系统(无头CMS)中获取信息。在最慢的API调用结束之前,用户基本上只能面对空白页面,直到您获取数据并最终返回到html到客户端。
当您使用Serveless函数时,此问题将被放大,因为我们有一个周期请求。
即使许多基础架构都进行了大量优化,例如Firecraft [1],仍然没有共享时间来初始化您的代码和连接数据库。
在PPT的上半年,每个请求将达到不同的实例并重新启动环境。
对于边缘模式,您可以通过Vercel Edge功能或CloudFlare工人或其他工具部署边缘运行环境(边缘运行时)。这不是运行nodejs,而是V8引擎和Web API。最好占据整个实例环境。最好占据整个实例环境。只有部分可以更快。在此示例中,多个请求可以输入一个实例,可以更好地重复使用环境。在冷启动的情况下,它比上面快了几乎100毫米。
因此,如果是SSR?这是什么意思可以立即将其渲染给用户。根据大量请求,此流传输更可行,并且可以通过Edge Runtime带来的性能来优化它。
那么在实践中会发生什么?当您可以使用边缘运行时并仔细控制静态资源以进行包装时,前端会发生什么?
看着上部是一个旧的示例,左侧全部都是静态生成的。您看到的所有内容都是直接生成的HTML。
右边的右边是动态的。每个请求的内容不同。每个渲染都将获取当前的最新信息。用户每次获得信息时,用户可能是A/B测试。
这两者都是未来的发展方向,并且每个都有自己的利益。因此,如果我们将这些收入应用于一页的不同地方?
控制组件维度,而不是整个页面的静态生成或动态获取。这是Edge运行时可以解锁的能力。
目前,一些大型制造商使用了此特征。最大的事情是苹果,她已经开始使用Next.js。
WAL -MART也正在使用Next.js。
Hulu也正在使用Next.js。
与这家全球公司的合作和交流可以帮助我们不断提高优势,我们可以在全球范围内实现理论优化的理论优化。
因此,我也想谈论Vercel,因为Vercel是一个产品和平台,试图帮助人们走向前沿的未来。我们提出了许多假设理论,例如如何使用Edge来提高性能和使用Edge Runtime对于渲染,我们正在尝试实现这些假设。
因此,我将简单地展示我们的产品。我认为展示用户如何实际使用我们的产品很有趣。
从写作代码中,您可以使用与Next.js Live相似的内容,或者在本地编辑器或浏览器中进行编写代码并与团队合作,然后立即查看更新,您看到的已获得。
然后,我们将代码提交给GIT工作流,并根据最新提交自动构建代码。您可以看到新评论。您可以看到此结构的详细信息。这里有构造的原因,您可以快速看到代码预览链接。我可以和我的团队共享。
实际上,我们每次推动时都可以检查性能和可靠性。我们已经进行了一系列快速验证,以确保每次更改的可靠性。这不仅可用,而且还达到了性能阈值(性能阈值)。
您可以获取一个预览链接来验证您的更改,并且可以将链接发送给要交付的人或您的小朋友,并且您可以看到它。我可以在下一步中与其他人合作。直接在屏幕上发表评论或流通,并说“对您的更改的这些更改看起来很棒”。
继续,让我们合并这些更改,然后将最新代码部署到边缘网络。边际网络在全球范围内具有出色的性能,并尝试使用边缘运行时来减少可能情况下的延迟。
Next.js中有一个新的改进。部署时,如果您想确保自己的真实用户体验良好,我们有一个称为“ Vercel Analytics” InseMake的工具确保更快的用户体验。但是目前仅限于这些指标。
我想调整一点,首先回答我前提的几个问题。关于Rust和WebAssembly,有几个,然后Vercel如何看待前端的未来,我想稍后再谈论它。
让我们简要谈论基本事情。Next.js在内部使用Rust。首先,我们必须为生产环境打包代码。我们有许多不同的JS文件,或CSS文件,甚至TS文件。输出是可以通过生产环境操作的文件。现在,此包装器使用webpack,但是有足够的时间将其更改为SWC(正在生长的包装工具),它可以替换WebPack。您为什么要这样做?因为它比您使用过的任何包装工具都要快。
需要编译使用JS或TS编写的代码。左侧是JSX代码,使用最新的JS语法特征,以及汇编后浏览器可以执行的本机JS代码。RUST的下一代快速施工工具,但此部分相对独立。
第三步是压缩,左侧是编译的代码,但仍保持可读性。为了获得更好的性能,我们可以将编译的代码压缩为较小的卷。仍然可以通过SWC执行压缩过程。
当期待Rust和WebAssembly的未来时,我们押注SWC。我们认为Rust可以更快地制作。这是对Next.js@12的巨大投资。我们已经看到建筑的构建速度大大提高,并且本地开发的重新加载速度更快。
下一个重要的更改是SWC刚刚发布的插件系统,以允许用户编写。Rust插头可以为浏览器生成WebAssembly。这是一个大话题。我们还没有真正深入研究。人们很兴奋。
能够通过自己的代码扩展,同时您可以满足您或团队想要的性能。这就是我想谈论的生锈和Websembly。
有几个问题问我开发人员的关系是什么?这是我的第一份工作?
我认为这是一个教育开发人员和一个开发人员社区。不仅是Next.js,而且还有一个更大的社区,以及其他出色的开源工具,例如TurborePo [2],SWC,SWC,SWR [3],Webpack,of of webpack,当然,Next.js.s.在包括我在内的团队中的某些人,帮助开发这些开源社区,创建教育内容以帮助开发人员成功,处理问题以探索他们遇到的困难,并帮助他们了解我们的工具的使用。因此,我的团队中有5个人。每个人都负责不同的领域,以帮助该领域的开发人员成功。
这种解释几乎是相同的。如果您有问题,欢迎在问答环节中讨论。
下一个问题,Vercel的后端计划?
目前,大多数注意点都集中在前端部分。这次讨论了许多想法和工程方面的许多进展。为了尽可能快地进行大量工作,我们需要做到这一点。焦点在前端,并为前端提供最佳平台。在现在,开发人员可以带回他们想要的任何东西。我们设计了我们的系统来促进开发人员轻松访问其数据库,CMS和付款系统。开发人员可以将任何API或工具引入我们的系统。现在,我们保持非常低的配置集成,使我可以连接到数据库或CMS中的数据库或CMS。大约30秒至1分钟。特定时间取决于完成集成所需的几个步骤。但是您可以轻松地集成自己的概念。您可以在两分钟内使用数据库部署完整的堆栈应用程序,这是非常不可思议的。未来的计划是我们如何舒缓这种体验,我们正在探索一些可能的选择。但是,从本质上讲,我们希望开发人员能够开始使用我们的平台更容易。对于许多开发人员来说,这也意味着开始开发完整的堆栈开发,我们也希望能做得更好。
因此,上一部分是我的分享。看来它在25分钟内得到控制。我想确保我有足够的时间回答每个人的问题。我们可以探索上面提到的任何要点。现在我们可以公开交谈。
我猜Esbuild并不是第一个使用JavaScript生态系统使用基础语言或本机代码的工具,但它确实具有最大的影响。我认为Evan确实已经重新定义了人们对Esbuild之后的前端建筑速度的期望。我记得,SWC出生于Esbuild之前,可能是一年前,但我认为这两种工具在很大程度上相互推广。在我看来,两者之间的最大区别是,Esbuild明确设计为扩展。如果您已经阅读了Esbuild文档,因为Evan最初是设计了Evan,Esbuild希望重新定义人们对“快速施工工具”的期望,而不是想构建一个平台可以扩展开发人员,而是Esbuild只是创建了一个非常快速的构造工具。另一方面,SWC还试图做到这一点并成为一个扩展平台,因此这就是为什么SWC刚刚启动了WebAssembly插件系统以及我们可以看到的平台的未来开发方向的原因。
安妮:很酷,我听说这就是为什么SWC作者Donny现在为Vercel工作的原因
李:是的?
监视器可以监视性能,监视错误或异常,或监视日志。我以前已经谈论过性能。绩效分析可以通过客户或用户的角度通过性能生命值[4]来分析性能。对于日志,Vercel在平台上具有真实的时间日志,但您也可以将日志发送到所需的任何位置。它可能是您的内部日志记录工具,也可能是类似于datadog [5]的第三方平台,以更好地汇总显示日志,许多人这样做。然后,有许多开源工具,例如Sentry [6]。当当前末端出现时,每个人都使用它们进行调试。
我很高兴有这种交流,了解您的团队在努力工作,以及Vercel是该项目还是应用程序的正确解决方案。通常,当我们和团队评估是否使用Vercel时,我们将评估是否使用下一步.js。我们将通过沟通,我们工作的工作,应用结构是什么以及目标是什么。当团队试图建立一个项目时,有时Vercel非常合适,但有时对需求不满意。他们可能想做一些不同的事情。我们将与对手团队完成讨论过程。
就个人而言,我在VR方面没有太多经验。作为一项新兴技术,VR已通过0到1。每个人都熟悉它,但尚未达到世界的普及点。但是,我认为最好不要对新兴技术持怀疑态度。退后一步。更好的方法是观察人们如何使用它并观察开发趋势。我对VR不了解,所以我不敢结论。对我来说,我只看到每个人都在使用它。我看到人们喜欢VR,这很棒。
我对此的看法可能有一些争议。例如,我认为这很有趣。在延长了30年的时间之后,我敢确保像元宇宙这样的事情肯定会存在。但是现在我对Meta或Facebook的感觉并不相同,因为现在世界上仍然有很多问题,并且这些问题必须在进入人类宇宙之前解决。所以我不太了解,我一直对此表示怀疑。
我认为PWA对于某些类型的应用程序或某些场景是一个非常好的解决方案。特别是,如果您优先考虑离线设计,并尝试构建一个非常像移动应用程序的应用程序。PWA可能是一种很好的方法。但是有一些不足的位置,因为浏览器的能力没有跟上,就像PWA仍然没有达到本机应用程序的体验一样。例如,例如,系统推送通知,如果我没记错的话,野生动物园无法做到,但是基于铬内核的其他浏览器可以是。我认为PWA和本机应用程序之间的关系非常微妙,因为许多本机应用程序都非常强大,我们尝试在网络上实施并尝试使用诸如Expo [7]或反应天然之类的工具以实现它,但是对于我来说,网络的最大优势很容易迭代。这实际上是不可思议的,因为我提交了代码并提交了代码到Vercel或其他服务。它可以在30秒到一分钟或不需要多长时间内在世界各地部署。该方法非常痛苦。要查看发布过程,您必须通过Apple或Google或其他商店在线上。这个工作负载非常大。我认为这就是为什么在本机应用程序中构建一些大型工厂的原因,但我只想在Web的发布方法中发布代码。本机应用程序的发布方法很棘手。
安妮:您是否乐观(PWA)?您认为苹果会推广Safari以支持PWA吗?
我不知道,我希望对野生动物园保持乐观,但是他们以前没有这样的前奏。不幸的是,在过去的四到五年中,野生动物园在这方面并没有做得更好。我可能对野生动物园的未来不乐观。我希望我能证明自己将来是错的,因为我认为有多个浏览器制造商是一件好事,但是浏览器的出发规范的实施不是一件好事。野生动物园有一些认识和规格。这让我头疼。我不想让Safari成为下一个IE?
由于我在Vercel工作,并花费大量时间考虑操作性性能,因此SSR与Edge Computing相结合对我非常感兴趣,尤其是React和React Server组件(RSC)。RSC非常快,但是背后是React团队和Meta的努力已有数年的时间来迭代和解决问题。他们在五到六年内一直在尝试和反复试验,最后意识到并发布了API。这对我非常有吸引力,因为如果您想引入新的API,则必须确保这是正确的选择,因为这将被世界上成千上万的应用程序使用,它将很年轻,而不是Monthessencewe试图指导下一个社区。必须仔细考虑。我们必须有这个权衡的决定 - 制定过程:人们升级到此版本时会是什么样。
我认为这是一个非常微妙的话题。在这种情况下,当我们仅使用ESM而无需任何包装时,即使我们使用现代传输协议(例如HTTP/2,HTTP/3),也无法处理数百个数百人,这是人们想要的效果,尤其是当您的效果与计划的计划进行了比较。捆绑解决方案与生产环境和当地开发环境之间也有区别,因为我认为像Vite这样的开发工具是本地开发过程中的捆绑包,这仍然与使用完全捆绑物截然不同在生产环境中的ESM。我可能需要写一篇文章。对于捆绑方案,实际上有一些有趣的困难。很难说将哪种方法切换到Next.js绝对正确。
我想说的是,最重要的一点是预渲染,无论是静态的,SSR还是边缘计算,您都在服务器端生成了DOM节点,这意味着可以更快地通过搜索引擎对其进行索引。,这不是新事物。我认为下一阶段或他们最近的更改,搜索引擎开始关注搜索场景中真实用户的性能体验,尤其是在将排名与竞争者进行比较时。是两个搜索引擎,第一个比第二引擎快10倍,这对于使用户体验更快,尤其是现在使用手机的大多数人非常有意义。他们可能正在使用流量而不是wifi来访问。绩效对这些用户尤为重要。搜索引擎制造商已开始专注于我们正在执行的这些性能优化方法,这也是Edge SSR的关键改进方向。这是最好的。使您的网站更快,不要使您的处理逻辑更接近用户。设备终端中的逻辑处理总是不可行的。这有点像PWA。您需要了解设备。本地存储或其他内容,然后另一个可以接近用户的链接是服务器,这实际上是由Edge Computing网络制成的。它将您的代码分配给世界各地并可以运行。
想象一下,当开发人员使用Next.js构建应用程序时,他们将不仅选择一种策略。他们不会说我的整个应用程序都使用SSR,否则我的整个应用程序都是CSR。现实情况是他们最终将基于他们。请选择每页的情况。因为不在乎SEO,很难为应用制定通用解决方案。这样做的好处是下一步。JS可以根据需求采用不同的方法,不仅是整个应用程序维度,而且对于页面尺寸。
是的,没错。当边缘运行时,它不是nodejs。实际上,它正在尽可能使用浏览器API或Web API模拟浏览器。首先,这可能是一个限制,因为您无法使用熟悉的nodejs。通过此限制,我们实际上可以实现我们刚刚谈论的效果,因此您可以将其视为特殊的操作环境。渲染页面的最佳性能已得到优化。有时您可能仍然需要节点环境运行节点环境。Next.js是一个很酷的地方。这两个都是可能的。您可以在边缘上有一个页面。在一个应用程序中,无需使用工具切换。
这是Rust提供的SWC提供的功能,因为实际上,Rust是生成WASM代码的最佳方法之一。代码基本上是SWC插件运行的方式。环境在运行时还支持WASM二进制文件,可以获得更好的性能。
是的,Next.js可以做到这一点。也许它不如人们想象的那样好,与直觉不符,或者不像本地API那样,但基本上可以做到。您可以设置一些阈值。如果您的请求时间超过一个阈值,则可以标记和降级不同类型的数据加载。或者我认为您刚刚遇到错误时会有更多场景的问题。如果报告了错误,我们如何优雅地降级。我认为错误的边界与此相关。错误发生在组件级别页面的一部分中,这不会影响整个页面。
对于那些多年来一直关注反应的人来说,悬念是一件非常有趣的事情。他们知道悬念已经做了一段时间了,并且可能在2018年遵循。作为外部扩张并开发了一段时间,所以我认为有些人对此有所了解,也许仍然存在一些疑问。有消息是,React 18的服务方面没有大规模的入侵,因此您不知道什么悬念是可以的。本质上,这是一种允许您以同步方式编写异步反应代码的方法。您可以在边界边界(边界)或悬疑组件中编写要执行的逻辑,它们允许您定义加载状态。React团队的伟大部分是使悬念易于使用,以及SSR的何时,例如Next.js.i,我很高兴悬念可以广泛流行,这可以带来更好的用户体验,但也有很多学习成本,因为这与传统的React应用程序开发有所不同。
我们计划在边缘和悬念运行时重建Vercom.com。当前的模型有点像某些SaaS应用程序。我们首先使用SSR渲染加载状态,然后使用SWR或其他数据在客户端上请求数据。该模型已经运行了很多年,而且性能还不错。下一个迭代是带有边缘渲染的SSR,这基本上是RSC和悬浮液。这是我们接下来要采取的解决方案。
混音的一件事是帮助开发人员,如果我们用来使用nodejs的所有内容都看起来像是Web API的很多事情。我认为这非常好。它可以帮助开发人员查看浏览器状态。我们可以看到,我们的浏览器现在具有最佳的兼容性和最先进的Web API,因此这是提高性能的好机会。通过将其提出的不仅仅是传奇处理的分布在边缘计算中。因此,对于Next.J.例如,当边缘运行时,SSR可以帮助SSR实现更好的性能。不同的是,我认为将来混音会更加关注Edge,但距离节点和反应更远。基于现有和长期存在。Edge是一项令人兴奋的新技术。我相信,越来越多的人会在将来理解它,我们将尽力帮助人们去未来。理解新技术,Next.js将继续支持Node,您可以很长一段时间从业务角度来看,Remix试图远离React。Next.js恰恰相反。我们喜欢反应并计划使用React。
关于混音的影响,我想说一些有关嵌套布局的处理。过去,React路由器做得很好。现在,它是remixnext.js开发人员的一部分,有一个更好的布局。有一段时间我们一直在尝试将其介绍给我们的框架。我们必须确保这与RSC兼容,否则我们必须重写它。我认为它与公共RFC现在接近,并且有关改进布局的更多讨论。
我认为很容易期待生锈社区,因为它会很快发展,许多人对使用Rust来改善语言和工具很乐观。我将自己作为前端开发人员做广告。我喜欢后端,但前端是我的真爱吗?作为前端开发人员,我看一下Rust的工具:“好吧,我可能不明白它是什么原理,但是这些东西是Gadgetit的酷,我写了一些小小的生锈代码。尽管我不知道如何如何跑步,这很有趣吗?”
安妮:你在学习生锈吗?
我在尝试?实际上,我学习编程语言的过程是从低到高级的。我在大学学习C,然后改进了一些Java学习Java。后来,Python和Web编程。现在有点奇怪。它似乎是向后的。我想回去学习低级语言。
安妮:但是您活跃于Rust社区!
不,不,有时我会帮助SWC,但是我的生锈能力非常基本吗?
我不这么认为,您必须在JavaScript上相信并下注。在Web Wasteland舞台上,只有HTML,CSS和JavaScript只是HTML,CSS和JavaScript,JavaScript起着非常重要的作用。形成的,例如2002年的Gmail,其创新点是JavaScript和Ajax,因此浏览器不仅可以呈现HTML,而且可以获取数据。我认为JavaScript已迅速发展,并且会有许多创新。我很难打赌,生锈会在某些地区取代它。
安妮:您可以详细谈论Rust和Wasm,或其他一些语言吗?
在SWC中,我有一些作业,我计划谈论Rust,以生成与WASM相关的内容。将来,我们提供的网络基础架构将适应WASM。这些基础架构完成后,用户无需过多注意如何生成WASM二进制文件。在那个时候,也许您可以在Rust中编写SWC插头,或者使用一些简化的工具来编写WASM,或直接编写WASM本机Web代码可以获取您的WASM二进制文件,就像现在使用Edge方法使用Edge网络一样,我认为这可能是可能的。
我认为这是如此,有许多工具可以非常简单地部署返回-end services.next.js在这方面做出了很多创新,这意味着某些基本事物,例如消息队列,数据库等。这些例程的条款,您需要一个AWS帐户或类似帐户才能设置。设备的抽象被取消。从基本上讲,Vercel是通过前端技术堆栈开发的。您不需要考虑AWS。您只需要使用一种方法。它实际上称为LAMDA方法,但您不需要一个AWS帐户。在许多背端字段中也有很多创新。例如,数据库。过去,我一直喜欢使用mySQL。后来,我有Postgresql。我个人非常喜欢它。它有许多创新,例如通过关键价值存储。无疾病的Redis变得越来越受欢迎。我使用的一种工具称为Upstash,使部署Redis非常简单。
这取决于您对BFF的定义。这在许多方面都没有明确的定义,人们对此的看法并不一致。我还考虑了Next.js中的BFF定义问题。您可以在Next.js中使用API,路由或中间件来写入前端应用程序的逻辑。我认为最大的问题是Vercel Suerimore是否需要本机数据存储功能。此问题正在通过更好的功能集成来解决。我认为将来,这种潜在的能力将进一步集成到本地平台的一部分中。
我们之前提到的捆绑捆绑和捆绑包是Vite和WebPack之间的最大区别。我认为Vite做得很好。像Esbuild一样,它会刷新人们对建筑工具速度的看法。它促进了WebPack以优化大量性能,并且WebPack比一年前的版本要快得多。但是我坚信,在长时间的时间里,WebPack需要需要使用WebPack,需要由基础语言重写,或者被替换为编写基础语言的工具。考虑到WebPack现在支持数千个应用程序,重写或替换不会很快,并且可能会持续很长时间。但是i考虑为了获得新的绩效体验,有必要使用书面或Golang或其他基础语言来支持它。
是的,这个世界上唯一不变的是变化。在我的整个编程生涯中,经常发生新的不同事物。这个问题的核心是要了解,即使有一项新技术,也不意味着我想放弃一切以学习新技术并立即在公司中采用它。我们需要接受学习并接受新技术以及使体验更好的新工具,但这并不意味着我们必须立即放弃一切并使用新的解决方案或工具。在这种情况下,我成功的方式是学习如何热爱学习。我喜欢学习和学习新技术,然后与现有事物进行比较。我确实使用了一部分新技术,但是我不会打算使用“我会使用Rust来替换Next.js工具的一部分”而不是重写框架。
在我职业生涯的一开始,我的第一个工作内容主要是为了制作封闭的源工具。那时,我没有意识到我学到了很多东西来完成产品,但我没有将其转换为外部。显示,我意识到了这一点。
然后在下一个职业中,我将告诉我在工作中学到的新知识。我将抓住这一点,并分享这一点,以便让人们知道我正在学习新事物并与他人分享经验。这些问题可能只会遇到,您不会在Internet上找到任何有用的帮助内容。然后,您需要花几个星期来解决它以解决它。我的想法。作为一名技术人员,我只关注业务逻辑和代码,学习技术并与世界分享我学到的知识。这也帮助我在公司的工程师之外建立了一个个人品牌,但是还有很长的路要走。
我想说的是,工作量和强度可能取决于公司和个人。一般而言,初创企业的工作量通常比成千上万的人大。另一方面,我认为这是自我管理取决于您区分工作和生活的能力,但是对于某些人而言,这并不容易因为他们的工作非常有趣或非常热情。例如,他们将在WorkSome(相关工作)之外做到这一点,例如,我将阅读与外界工作有关的文章。边界变得模糊,人们不想感觉到生活只是一项工作,因为这会使人们感到疲倦。所以对我来说,最好将工作和生活“分离”结合在一起,因为很难清楚地澄清我的工作和生活。而且不再想工作。我的大脑不是电脑。它更适合我。例如,我必须在中午去看医生或买东西,然后今晚工作太晚了,因为我在中午忙了一段时间。我需要这种灵活性,而不是说整天工作后,我终于下班了,我再也不想再工作了。我很难做到这一点。
安妮:所以你不考虑工作量,你做什么?这很棒!
是的,我非常喜欢我的工作,所以对我来说很容易。
我认为最大的事情不仅是管理技术工作,而且是领导团队为一个共同的目标而努力。我需要将目标拆分为较小的部分。同时,它还需要与其他团队角色进行交流,例如产品经理和戴斯尼亚人。技术领导者必须与其他团队角色合作才能共同创造产品。
是的,我们非常喜欢反应,但与此同时,我们专注于整个前端字段。我们招募了Rich,以使全日制Sellte [8]。我们也喜欢并优化Svelte,但我认为这与React并不相抵触,而是其中的餐点。
是的,对于由全球员工分配的公司,团队合作非常困难,因为有时会有差异。因此,重要的是要尽可能多地工作。这样,一旦一个时区醒来,他就可以简单地使用其他时区的同事的工作结果,最好回答在线区域中遇到的问题而无需该时区的人。,尝试尽可能同时一起工作。在某些情况下,不可避免地实时沟通,或者为了解决某些问题来解决真实时间编程。同时,该地区的人们可以帮助改善这些问题。
我们正在使用一种称为“ V2MOM”的工具,而Salesforce的工具可能不记得它包含的内容,似乎是视觉,措施,目标和其他事物。这与OKR和KPI.OKR和KPI可以达到相同的效果。在我看来,主要是让团队了解前进的共同目标和方向,并让团队明确达成共识目标。然后有些事情很清楚,例如值得庆祝的目标是值得庆祝的。但是,人们可能对共同目标有不同的看法是不好的。它走了哪种方式?我认为这种情况在现实中会遇到的情况,有些人会重复与目标无关的工作。
安妮:那么哪些工具并不重要,重要的是每个人都有一个共同的目标。
是的,每个人都使用此工具。这就是我们跟踪目标的方式。我认为这有点有用。
即使世界上最好的开发人员仍然希望在不同的领域成长和学习,因为尽管他们可能会制定最佳应用程序,但他们仍然想尝试尝试一些特定的领域或特定功能。这也是Vercel工作的一部分来帮助您这些人的成功,并提供成长所需的工具。例如,我现在是生锈专家。我的表现非常好,但是我真的很想现在就这样做。LearnHTML和CSS,因为我以前一直在处理基础语言,现在我想从一些上层网络开发技能中学习,以了解前线的方式- 末端代码编译并构建相应的产品。Vercel将在该领域寻求经验丰富的员工的意见。然后为想要学习该领域的员工以及一些高级准则提供学习工具。
Github的活动可能只是他的作品的产品。没有必要。例如,尽管我的马赛克墙非常绿色,但我所做的大多数事情都在里面,不会透露给外界。内部问题可能是内部问题内部的内部问题。在评论后,这也被计算在内。招募趋势的问题,我想首先考虑经验丰富的开发人员。我们希望他在某个领域的深入研究中有一个想法。它可以生锈,可以是瓦斯,也可以是前端工程等。您正在与一堆经验丰富的工程师合作。对于一般招聘要求,我们更加关注乐观和积极的想法。尽管这些想法可能与公司的方向有所不同,但我们将更多地关注这些独特的想法。
我们也非常喜欢Vue,并将赞助Nuxt.js。我们已经与他们的团队进行了交谈,并谈论了赞助。我不知道我是否会从Vue Core团队中招募人员,因为在很大程度上,他们在自己的利益上,他们想从事开源工作并全面保持独立性-Time。但是,我们一定会从Vue社区招募人员并继续。
是的,我相信,随着持续的发展,我们的中国员工也将越来越多。中国开发人员的数量正在不断增长,并且有许多出色的开发人员。毫无疑问,我们将从中国招募。
这是一个很好的问题。实际上,它并非每天都固定。我仔细想想。我昨天写了一篇文章。我更新了昨天前一天的一个旧示例的一个示例。主持他们设定了当前的工作目标,我们发布了新的下一张。发行功能。这些是每日德夫雷尔和社区工作。
安妮:如何衡量Devrel的工作?
我试图使团队成员保持最佳状态,有时与他们合作并提供一些帮助指示,有时让他们独立做某事做某事,最后给我一些反馈。这取决于他们的个人想法。如何成长,这里的核心是我希望他们成为最好的自我。
这是一个很好的问题。我现在没有任何建议,但是我建议一篇大文章,这是Vercel首席执行官Guillermo Rauch [9]撰写的“丰富的Web应用程序的7个原则”,本文非常有趣。它列出了许多框架来构建Web应用程序,然后其中的许多原则仍然有效。该技术正在发展,框架工具不断下降。改变事物以提供出色的用户体验。您可以访问他的博客以查看[10],那里有很多好东西。
安妮:非常感谢您的采访。希望您今天过着幸福的生活,并向中国观众道别?
李:我知道你迟到了,谢谢你的活动,再见吗?
感谢Li Mao的采访整理。
[1] Firecraft:https://firecraft-microvm.github.io/
[2] turborepo:https://turbookpo.org/
[3] SWR:https://swr.vercel.app/
[4]性能生命力:https://web.dev/vitals/
[5] datadog:https://www.datadoghq.com/
[6]哨兵:https://stry.io/
[7]博览会:https://expo.dev/
[8] svelte:https://svelte.dev/
[9] https://rauckg.com/2014/7-原理 - rich-eb-法
[10] https://rauckg.com
原始:https://juejin.cn/post/7095686598364250119