BT

Facebookが”Relay"データフレームワークをリリース

| 作者: David Iffland フォローする 4 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2015年10月12日. 推定読書時間: 3 分 |

原文(投稿日:2015/09/17)へのリンク

Facebookは,同社の宣言型データフレームワークであるRelayのテクニカルプレビューの終了とオープンソース化を発表した。

Relayは,通常のデータライブラリとは違う方法で,データ要求を処理する。データの取り出しステップをひとつひとつ定義するのではなく,開発者が必要とするデータを宣言すればよいのだ。取得する“方法”はフレームワークが処理する。Relayのローンチを発表した記事の中でTimothy Yung氏は,FacebookがRelayの開発を必要とした理由として,従来のソリューションが脆弱過ぎたことをあげている。

RelayはReactアプリケーションに対して,データを取得する方法を命令的に記述する代わりに,宣言的に要求データを指定する手段を提供します。また,Reactで宣言的なコンポーネントによる効率的なバッチビュー操作が可能なように,Relayでは,宣言的なデータ要求によって効率的なネットワーク操作が可能になります。

Relayの中心となるのは,データ要求の概念を覆すGraphQLである。RESTエンドポイントをコールしてサーバからの応答を処理する方法に代えて,GraphQLでは,クライアントが必要なデータを記述して,サーバがそれに応答する形を取る。GraphQLの要求は次のようなものだ。


{
  album(id: 12) {
    id,
    title,
    artist {
        id,
        name
    },
    releaseDate,
    upc
  }
}

サーバからの応答は標準的なJSONである。

{
    "album": {
        "id": 12,
        "title": "Random Access Memories",
        "artist": {
            "id": 1,
            "name": "Daft Punk"
        },
        "releaseDate": "2013-05-17",
        "upc": "888837168618"
    }

}

GraphQLのメリットのひとつは,1回の要求に対して,サーバがオブジェクト階層全体を提供できることだ。GraphQLに関する記事の中で,Facebookの開発者であるLee Byron氏は,これが“複数のラウンドトリップ(モバイルネットワークではリソースを消費する)を必要とするRESTfulサービスや,SQLの複雑なjoin文”とは異なる点だ,と述べている。

Relayは,データクエリをビューとして同じスポットに配置する,コロケーションをサポートしている。Yung氏はコロケーションについて,“アンダーフェッチ(データはコードのレンダリングに使用されるが宣言されていない)とオーバーフェッチ(データは宣言されているがコードのレンダリングに使用されていない)の両方を容易に検出できるようになる”と説明している。

Albert Still氏は,自身のRelay経験について記事を書いた。その中で氏はRelayについて,パワフルではあるものの,“学ばなければならないことがたくさんある上に,Reactの短くて適切な例題コードに比べると,それよりも長いものが目に付く”,と述べている。氏は,まずRelayに慣れるまで,数日間使ってみるように推奨する。その結果は“魔法”のようなものになるだろう。

Facebookでは,開発者がこのプロジェクトについてより詳しく学べるように,RelayのWebサイトを用意している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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でリプライする

ディスカッション

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


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

Follow

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

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

Like

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

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

Notifications

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

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

BT