最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

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

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

关注

评论

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

abaqus有限元仿真常见问题(一):数值仿真在产品研发中的作用

思茂信息

CAE abaqus abaqus软件 abaqus有限元仿真

乘云而上,山西软件行业CXO思享会在晋起航

说山水

世界500强开滦集团的财务共享建设路径

用友BIP

财务共享

重新思考流处理与流数据库

吴英骏

开源 云原生 流处理 ​Rust 实时数据库

挖掘算力产业的创新力量和新型机遇|2023开放原子全球开源峰会先进计算分论坛即将启幕

开放原子开源基金会

开源 算力 先进计算

秒验 iOS端集成指南

MobTech袤博科技

Mac电脑ps ai beta安装教程及ai绘图如何使用

魔仙苹果mac堡

ps AI绘图 ps ai beta Firefly AI使用教程

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

鳄鱼视界

mac电脑如何远程控制win?微软远程桌面连接工具来帮你!

Rose

Mac远程控制软件 mac电脑如何远程控制win microsoft remote desktop 微软远程桌面连接工具

华为教育中心:奇趣“童”行庆六一 多彩儿童应用助成长

科技热闻

如何在大学校园内合作运营共享电单车

共享电单车厂家

校内共享电单车 共享电动车投放 共享电单车合作 共享电单车厂家

智能出行 驱动未来|2023开放原子全球开源峰会CARSMOS开源智能出行生态年会即将启幕

开放原子开源基金会

开源 智能出行 CARSMOS

客服都要下岗了? 当ChatGPT遇见私有数据,秒变AI智能客服!

WorkPlus

植物大战僵尸mac版下载

Rose

植物大战僵尸 mac 植物大战僵尸中文版 植物大战僵尸下载 mac塔防游戏

AI2023下载 Illustrator mac版 2023 年 4 月版(版本 27.5)的新增功能

魔仙苹果mac堡

AI2023下载 Adobe Illustrator2023 AI2023完美解锁版

Java 高效处理千万级数据:技巧与最佳实践

xfgg

Java 大数据

led显示屏保养技巧

Dylan

故障 LED显示屏 设备日常保养

解锁软件工程新角色——平台工程师

SEAL安全

DevOps 平台工程 平台工程师

开源创新 协同融合|2023开放原子全球开源峰会开源协作平台分论坛即将启幕

开放原子开源基金会

开源 开源协作

WaveMetrics Igor Pro 9 for Mac(科学计算和数据分析软件)

魔仙苹果mac堡

苹果软件资源站 mac科学计算软件 WaveMetrics Igor Pro 9 Igor Pro 9破解

软件测试/测试开发丨接口测试学习笔记

测试人

程序员 软件测试 自动化测试 测试开发

技术的交流 思想的碰撞|2023开放原子全球开源峰会TOC面对面分论坛即将启幕

开放原子开源基金会

开源 社区 TOC

支持M1的苹果电脑视频下载器-Downie 4 Mac中文版

Rose

Mac 视频下载工具 Downie 4许可证 Downie 4中文版 Downie mac破解版

提升您的 MQTT 云服务:深入探索 BYOC

EMQ映云科技

物联网 云服务 mqtt

Scrum敏捷项目管理真实案例

顿顿顿

Scrum 敏捷开发 敏捷开发管理 敏捷项目管理 scrum工具

百度倾力出品|《神经网络机器翻译技术及产业应用》正式上线

飞桨PaddlePaddle

人工智能 深度学习 百度飞桨

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

西柚子

FC红白机游戏600合集 for mac(小霸王游戏) 单机离线版

Rose

Mac游戏下载 FC 红白机游戏 任天堂游戏下载 小霸王游戏

在软件定义汽车的时代,低代码究竟给车企数字化转型带来了什么?

优秀

低代码 车企 车企数字化

对应用数据开发还有疑惑?看这篇就够了!数据存储、管理,通通掌握!

HarmonyOS开发者

HarmonyOS

CodeWhisperer 初体验

天黑黑

AI 亚马逊云 CodeWhisperer

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