10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

Medium 迁移到基于 React.js 和 GraphQL 的架构

  • 2018-05-20
  • 本文字数:794 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Medium 将他们现有的系统迁移到基于 React.js 和 GraphQL 的新架构。正如 Medium 工程师 Sasha T. Solomon 解释的那样,他们努力的两大目标是在不妨碍新功能开发的前提下,让用户逐渐转向使用新系统。

在对现有使用旧技术的代码库进行迁移时,需要做出一些艰难的决定。除了成本之外,他们必须考虑需要多长时间才能让用户感受到新系统的好处,而通常他们都希望不用等到整个迁移结束才能看到这一结果。此外,他们希望服务在整个过程中保持稳定,并且可以继续演化,如通过修复错误或实现新功能。

正如 Solomon 解释的那样,在他们的平台历经五年的开发之后,Medium 确实已经走到了这一步,

将整个系统迁移到新的工具和框架并非易事。在不影响功能开发的同时做到这一点?更难。

Medium 工程团队设计了一条服务迁移路径,旨在让用户尽快开始使用新系统,同时不妨碍现有系统的演化。

迁移的第一步是用 React.js 重写 Medium 的客户端应用程序,并使用 GraphQL 作为现有 API 的接口层。Medium 使用 Apollo Client 作为 GraphQL 客户端框架。

在这个阶段,旧系统和新系统共存,每个系统服务于一组不同的页面。这种方法的好处是不需要完全重写服务器端,也不会影响旧系统新功能的开发。Medium 团队采取的一项关键决策是使用 protocol buffers 将传统 API 描述为可与 GraphQL 交互的 schema。

根据 Solomon 所述,第二阶段迁移即将开始,服务器端代码将被重构为服务,为 GraphQL 层提供数据,GraphQL 层将使用 Sangria 作为服务器端框架。

预计GraphQL 的使用将带来一个巨大的优势,因为它的更加细化的结构直接映射到更模块化和更简单的服务,这反过来提升了它们的性能。新服务将通过 gRPC 与 GraphQL 服务发生交互,新服务可以与旧服务完全独立开发,旧服务仍然为旧 API 提供支持。

查看英文原文 Migrating Medium to React.js and GraphQL

2018-05-20 19:002720
用户头像

发布了 731 篇内容, 共 474.5 次阅读, 收获喜欢 2008 次。

关注

评论

发布
暂无评论
发现更多内容

Emby for Mac:多媒体影音库管理工具 兼容M1

南屿

苹果软件下载 Mac破解软件 Emby for Mac 多媒体影音库管理工具

苹果电脑YouTube客户端下载:YouTube for mac激活版v1.22(56)中文版安装教程

南屿

YouTube客户端 苹果mac软件 Clicker for YouTube

深入理解TF-IDF、BM25算法与BM25变种:揭秘信息检索的核心原理与应用

汀丶人工智能

nlp 搜索系统 BM25算法 关键词检索

软件测试开发/全日制/测试管理丨测试用例设计

测试人

软件测试 自动化测试 测试开发 测试用例 用例设计

StarRocks Awards 2023 年度贡献人物

StarRocks

数据库 数据分析 开源社区 StarRocks

如何用 Python 实现一个 “系统声音” 的实时律动挂件

北桥苏

Python pyaudio 系统声音

软件测试开发/全日制/测试管理丨软件测试流程

测试人

软件测试 测试开发

每日一题:LeetCode-10037. 移除后集合的最多元素数

Geek_4z9ami

Go 面试 算法 LeetCode 贪心算法

Fig Player - play mp4 mkv mp3 苹果电脑媒体播放器

南屿

mac视频播放器 苹果软件下载 Fig Player破解下载 Fig Player Mac版

3D建模设计 Vectorworks 2022 SP5激活版 for Mac 下载安装教程

南屿

3D建模软件 Vectorworks 2022下载 破解软件 Vectorworks 2022注册码

行云部署成长之路--慢SQL优化之旅 | 京东云技术团队

京东科技开发者

有关SCADA系统的所有信息:什么是SCADA?

2D3D前端可视化开发

物联网 组态软件 工业自动化 SCADA HMI

DNA序列分析软件 SnapGene 5 v5.3.1中文激活版 下载安装

南屿

SnapGene 5破解版 SnapGene 5下载 分子生物学软件 DNA序列

One Switch mac版 菜单栏一键控制神器 支持M/Intel

南屿

mac效率工具 One Switch for Mac 菜单栏一键开关控制神器 One Switch破解

苹果Mac自用软件推荐:Unite for mac 将网站转化为应用程序 支持M1/M2/Intel

南屿

Unite for Mac Unite破解版 将网站转化为应用程序 Mac软件资源站

【最新中文版激活序列号】Macs Fan Control Pro 苹果电脑掌控风扇必备软件

南屿

Macs Fan Control Pro下载 Macs Fan Control Pro破解 Mac 电脑风扇速度

云智一体,大模型服务的超级工厂

百度开发者中心

人工智能 云计算 nlp 大模型

如何基于文心一言NLP大模型搭建生成式智能对话服务

百度开发者中心

人工智能 nlp 大模型

实践案例:通过API优化加快上市时间

幂简集成

产品 MVP API OpenAPI REST API

Axure RP 8 中文激活授权码 Axure RP 8 完整安装教程 Mac/win

南屿

原型设计 Axure RP 8授权码 Axure RP 8下载 Axure RP 8汉化包

轻松完成图片转换矢量图,推荐Vector Magic for Mac破解版

南屿

mac软件下载 Vector Magic破解版 矢量图片转换工具

Medium迁移到基于React.js和GraphQL的架构_语言 & 开发_Sergio De Simone_InfoQ精选文章