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提供支持。
继续阅读与本文标签相同的文章
PHP实现微信退款功能
-
将制造业作为发展数字经济的主战场!
2026-05-18栏目: 教程
-
如何成为一名优秀的初级开发者?
2026-05-18栏目: 教程
-
展望2025多媒体技术与应用趋势
2026-05-18栏目: 教程
-
“拼下限”的网络直播
2026-05-18栏目: 教程
-
阿里云第六代云服务器特性、实例类型、及可选区域相关介绍
2026-05-18栏目: 教程
