江西抚州新闻网

usdt提币手续费最低(www.caibao.it):Lyft若何将100 前端微服务迁徙到Next.js

来源:抚州新闻网 发布时间:2021-04-03 浏览次数:

USDT自动充值API接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

原题目:Lyft若何将100 前端微服务迁徙到Next.js

先容

在 2019 年,Lyft 的前端架构需要一次梳理。我们的公司快速增进,新的团队天天都在开发新软件系统。那时,我们从一个服务天生模板来天生新的前端服务——用一个我们定制的零设置的前端构建平台。拥有这样一种简朴的服务确立方式导致了新服务的爆炸性增进,这些服务使用基于 React 的前端框架构建的林林总总的代码。

与此同时,我们在实验维护自己的前端平台(一组内部的 Webpack 设置、ESLint 库和框架代码)时遇到了一些晦气因素,我们发现自己陷入了对隐藏的构建错误举行故障清扫的逆境,而且普遍发现我们的生产效率被此类支持请求所削弱。由于代码库最先分化(就像它们在微服务架构中一样),我们的开发职员发现升级到我们的前端平台的新版本的义务异常耗时且令人沮丧。

有 100 多个前端服务和险些同样多的前端工程师,为了 Lyft 的增进,很显著我们需要做一些事情来确保我们的平台是可维护的。

我们存在哪些问题

我们坐下来枚举了我们面临的一些焦点问题:

迈向 Next.js

我们决议转向开源社区来寻找一个内生的框架来解决这些令我们头疼的问题。在评估了差其余平台后,我们决议使用 Next.js!我们喜欢:

  • 其可执行包装器,允许我们将所有中央应用程序关注点转移到模块接口后面,消除了我们维护自己的构建系统架构的需要。
  • 其壮大的开源生态系统、友好的社区和可靠的文档,向我们展示了平台的未来生长和轨迹。

我们本可以直接拿来 Next.js,让每小我私人都按原样使用它,但我们还需要解决几个问题。

添加一点儿 Lyft 秘料…

开箱即用的 Next.js 存在两个问题没有解决。

首先,我们需要自动化未来平台迁徙。

我们需要能够编写易于运行且稳固的服务升级,并能够大规模应用这些功效。为领会决这个问题,我们用 jscodeshift 设计了一个迁徙服务,允许我们宣布和运行迁徙,在运行升级时自动更新服务代码。

这意味着,我们平台中任何未来的突破性转变都将随同着自动化的代码模块,从而升级宿主应用程序中的代码。这也意味着,我们可以打开拉取请求来升级整个服务群,而无需产物工程的干预。

我们需要一种代码共享的方式。

我们希望构建一个可扩展的应用程序系统结构,允许开发职员编写插件,以尽可能少的设置或粘合代码,来引入差其余状态治理器和包。我们围绕 Webpack Tapable 设计了一个插件服务,允许我们的任何开发职员将共享的 Lyft 包注入到服务中央件和客户端 React 应用程序来实现我们生态系统中的差异义务——从 GraphQL 客户端、Mirage 模拟支持、UI 组件库到围绕规范和日志的共享库。

开发职员相同是要害

一小我私人不能仅仅靠自己去升级 100 个服务——我们需要验证和领会我们产物工程团队的痛点,然后再致力于我们的设计。我们采访了公司各个部门的工程师,来领会他们在当前平台上的挑战和痛点,并网络有关我们的新设计能否解决这些问题的反馈。在我们的内部前端公会全体职员集会上,我们不停向团队更新新手艺栈的进度。整个历程重新到尾都是透明的且以开发职员为中央的。

,

usdt支付接口

菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

我们将我们的新平台命名为 @lyft/service,并确定了一小部脱离发职员将介入平台里程碑宣布的 alpha 测试。随着我们的平台不停成熟,我们将受众扩大到更大的团队,他们会聚在一起加入为期半天的迁徙钻研会。做这些集会真的辅助我们确立了一个社区,团队协作来学习 Next.js 架构,相互辅助修复问题,并领会更多关于我们为什么做出设计决议的上下文。

Beta 测试以及一些与 React Router 相关的问题

我们遇到了一些障碍,这些障碍是在我们最先在 beta 阶段迁徙服务之后才泛起的。例如,我们假设可以将所有应用程序从 React Router 迁徙到 Next.js 默认的基于文件系统的路由。然而,由于 React Router 在我们的服务中实现的异常详细的方式,我们发现险些不能能轻松地对这些路由举行模块编码。我们没有从 React-Router 迁徙,而是构建了一个功效来允许我们的工程师保留他们现有的 React Router 路由并每次一个路由地分次迁徙到 Next.js 路由。

迁徙事情若何举行?

到 @lyft/service 的迁徙异常容易运行。服务所有者只需要挪用一个下令:

我们的代码模块最先事情并平安地升级代码。一旦迁徙完成,大部门繁重的事情已经完成!

固然,每个服务所有者也必须解决一些零星的问题,好比:

  • 修复单元测试
  • 与新的 Next.js 路由集成(或者使用我们的 React Router 实现)
  • 升级可能需要手工干预的包(例如 mobx 或 Redux 的使用)

平均来说,从运行迁徙剧本到竣事零星的问题需要几天的时间。

效果

现在,@lyft/service 运行着我们近 40% 的前端服务,而且我们正在加速接纳它。

我们看到了这个新平台令人难以置信的反馈,包罗以下优势:

  • 将开发反馈循环(从代码更改到浏览器更新的时间)削减了 350ms。
  • 将打包巨细削减了 845kb(在我们的样本应用程序中)。
  • 从每个服务中删除了 10000 行基础设施代码。

迁徙到这个新平台将在未来继续获得回报,由于:

  • 新的升级与 NPM 模块升级 @lyft/service 并运行迁徙 CLI 下令一样简朴。由于基础设施代码完全封装在一个包(和一套插件)后面,以是迁徙所涉及的面比已往少得多。
  • 迁徙可以通过在整个服务群中自动打开的拉取请求自动完成,所需的产物团队干预要少得多,而且所有服务都可以吸收到 Next.js 社区所提供的最新最全的更新。

有关迁徙的更多详细信息,请旁观 Josh 在 Next.js 2020 大会上关于我们的迁徙历程的演讲!

损失惨重!数据中央失火,360万个网站下线,Rust游戏25台服务器数据永远丢失

遐想杨元庆:旌旗鲜明否决996,两会多位委员“声讨”企业耐久加班征象

腾讯八年春节守护战:流量爆表宕机、现场应急开发,手艺人上演最强“剧本杀”

网易云醒醒吧,虾米都被“情怀”搞死了

迎接所有热爱手艺、热爱创作、热爱分享的内容创作者入驻!

另有更多 超值流动等你来!

开启你的创作之路吧~

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片