写点什么

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:002329
用户头像

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

关注

评论

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

云堡垒机是软件堡垒机吗?是一种产品吗?

行云管家

云计算 网络安全 堡垒机

WiFi7-QCN9274, QCN6274 and QCN6224- What is the biggest difference?

wifi6-yiyi

qcn9274

【教程】iOS 手机抓包工具介绍及教程

雪奈椰子

异常检测、自动告警,业务问题分钟级识别

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟

【技术探讨】无线通信中如何排查电磁波干扰?

Geek_ab1536

结合数据分析工具,深入挖掘淘宝API接口的商业价值

Noah

Pod/Node 内存高负载故障注入

腾讯云混沌演练平台

k8s 混沌工程

软件测试学习笔记丨Linux命令 uniq去重

测试人

软件测试

工厂生产管理MES系统,开源代码+维护

万界星空科技

开源 源码 mes 开源mes 万界星空科技

Apache Doris 2.0.4 版本正式发布

SelectDB

数据仓库 数据分析 OLAP 大数据 开源 数据库·

机械加工行业MES系统实施步骤

万界星空科技

mes 万界星空科技 机械 机械加工行业 机加工MES

目前山西长治市正规等保测评机构叫什么名字?在哪里?

行云管家

等保 等保测评 长治

在 Windows 平台下安装与配置 MySQL 5.7.36

小魏写代码

GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟

复杂SQL治理实践 | 京东物流技术团队

京东科技开发者

MES系统计划排产功能,助你提升生产效率

万界星空科技

生产管理系统 mes 万界星空科技 万界星空科技mes 排产计划

预计算的时代该结束了

Braisdom

大数据 BI StarRocks BI 分析工具

Walrus 0.5发布:重构交互流程,打造开箱即用的部署体验

SEAL安全

GitHub 开源 平台工程 Walrus

左耳听风 - 绩效考核「读书打卡 day 19」

Java 工程师蔡姬

读书笔记 程序员 个人成长 职业发展 绩效考核

一文总结现代 C++ 中的初始化

EquatorCoco

Java c++ 开发语言

程序员必备!10款实用便捷的Git可视化管理工具

不在线第一只蜗牛

git 程序员 可视化 实用工具

如何理解低代码?将会带来哪些价值?

互联网工科生

软件开发 低代码开发 JNPF

✅快速构建Express服务

派大星

node.js Express

百川终入海 ,一站式海量数据迁移工具 X2Doris 正式发布

SelectDB

数据库 OLAP 数据库迁移 数据同步 大数据 开源

吴杰庄对话 BTC Inc. 国际业务总监:东西方 Web3 领域的合作与竞争

TechubNews

软件测试学习笔记丨Linux命令 sort排序

测试人

软件测试

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