BT

MediumからReact.jsとGraphQLへの移行

| 作者: Sergio De Simone フォローする 14 人のフォロワー , 翻訳者 編集部T _ フォローする 0 人のフォロワー 投稿日 2018年5月18日. 推定読書時間: 2 分 |

原文(投稿日:2018/05/16)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

Mediumは、自身の既存のシステムをReact.jsとGraphQLに基づく新しいアーキテクチャに移行した。この試みの2つの主要な目標は、MediumのエンジニアSasha T. Solomon氏によると、新しい機能の開発を妨げることなく、ユーザが新しいシステムを段階的に利用できるようにすることであった。

古い技術を使っている既存のコードベースから移行することは、簡単に決断できることではない。コストの他に、新しいシステムの利点がユーザに見えるまでにどれくらい時間がかかるかを考慮する必要がある。そして、すべての移行を待つということをしたくない可能性がある。さらに、運用においてサービスが安定しており、バグを修正したり新しい機能を実装したりすることで、サービスが進化するようにしたいであろう。

Mediumのケースがそうだが、プラットフォームの初期開発から5年後、Solomon氏は次のように説明している。

システム全体を新しいツールやフレームワークに移行するのは簡単な作業ではありません。また、機能開発に影響を与えずに移行を進められるでしょうか。それはさらに難しいことです。

Mediumのエンジニアリングチームは、新しいシステムの使用をできるだけ早く開始できるようにするとともに、既存のシステムに対する変更を妨げることのないように、サービスの移行を進める道を考え出した。

移行の第一歩は、MediumのクライアントアプリケーションをReact.jsで書き換え、GraphQLを既存のAPIのインターフェイスレイヤーとして使用することであった。GraphQLのクライアントサイドフレームワークとして、MediumはApollo Clientを使用している。

この段階では、旧システムと新システムの両方が共存し、それぞれが異なるページセットを提供していた。このアプローチは、サーバ側の完全な書き換えを必要とせず、古いシステムで動作する新機能開発に影響を与えないという利点があった。Mediumチームがとった重要な決定は、プロトコルバッファを使用して従来のAPIをGraphQLとのインタフェースのためのスキーマとして記述することであった。

Solomon氏によると、移行の第2段階がすぐに開始され、サーバ側コードはGraphQLレイヤにデータ提供するためのサービスにリファクタリングされる。GraphQLレイヤには、GraphQLのサーバサイドフレームワークとしてSangriaを使用する。

GraphQLを使用することで、粒度の細かい構造が、よりモジュール化されたシンプルなサービスに直接マップされ、その結果、パフォーマンス向上が期待できるという大きなメリットを期待できる。GraphQLサービスと通信するためにgRPCを使用する新しいサービスは、古いサービスから完全に独立した方法で構築することができ、古いサービスは古いAPIと繋がる場所に配置される。

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

.NETの派生を理解する

Wayne Citrin 2018年7月18日 午前3時44分

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT