Graphql

この記事はgraphqlについて解説した記事です。会話形式のやさしい文章で「graphql」の用語のイメージを紹介した後に、採用に役立つgraphqlの知識を解説しています。

1分で分かる!graphqlとは?

う~ん。どうすればいいんだろう…。

ことりん君、なにか悩みごとかな?

あ、ジャバード先生!実はそうなんだ。

いったいどうしたの??

以前、ひまわりミュージックさん、音楽のストリーミング配信事業をやってるって話したよね?

あぁ、たしかKubernetesをオススメしたときの話だね。その配信事業で何か問題があったの?

そうなんだ。その配信サイトのパフォーマンスが悪化しているみたいなんだよね。最初はそんなことなかったんだけど、リリースしたときよりもコンテンツ数が増えたみたいだし、いろんな機能も追加されているから仕方ないのかなぁ。

なるほどね。それはひまわりミュージックさんも困っているだろうね。ほかに何か情報はあるかな?

あ、そういえばその配信サイトは、社内のデータ基盤チームが開発したAPIを使ってデータの操作をしているとかいってたな。そのAPIのパフォーマンスが劣化しているかも?っていってた気がする。

ふむふむ。APIね…。ちょっと詳しいことはわからないけど、将来を見据えてGraphQL (グラフキューエル)を採用してみるのも面白いかもね。

ぐらふきゅーえる?なにそれ?

GraphQLは、Meta社(旧:Facebook社)が開発したAPI用の言語だよ。規格みたいなものと理解してもらえるといいかな。

Facebookって、SNSだけを開発しているのかと思ったけど、結構いろんな技術を開発しているんだね。それで、そのGraphQLを使うとどうなるの?

現在、APIの規格としてはREST-APIというやつがスタンダードなんだ。そのREST-APIと比較すると、GraphQLはかなりシンプルになるんだよ。

シンプル?

そうそう。REST-APIは対象のリソースごとにリクエストするURLを分ける必要があるんだ。たとえば、「音楽情報を扱うURL」、「アーティスト情報を扱うURL」、「レコード会社情報を扱うURL」といった感じだね。

あぁ、それは結構複雑になりそうだね。

GraphQLは、URLで分ける必要がなくて、そのURLにリクエストするときに渡す情報でどんなデータを取得するかを指示するんだ。だからAPIを実装する側は開発対象が減るし、APIを利用する側もいろんなAPIを呼ぶ必要がなくなるというわけだ。

あぁ、なんかだいぶ楽になりそう!

あとREST-APIの場合は、不要なデータも含めて取得してきちゃうんだ。だから「音楽情報の中のタイトルとアーティスト名だけ取得」みたいなことができないんだよ。

あぁ、いらないデータもまるごと取得しちゃうというわけだね。

そう!つまりREST-APIは、不要なデータを取得しちゃったり、1ページに表示するデータ取得のために、何回もAPIを呼ぶ必要があるというわけだ。こういったポイントの積み重ねがパフォーマンスを劣化させてしまう原因になっているかもしれないね。

じゃあ、GraphQLだとそのあたりを解決することができるってことだね!

そのとおり!GraphQLについてなんとなくわかったかな?

うん!GraphQLがどんなものかわかったよ!ジャバード先生ありがとう!

はーい!ひまわりミュージックさん、喜んでくれるといいね!

GraphQLとは?採用に役立つ基礎知識

GraphQLとは、Meta社(旧:Facebook社)が開発したAPI用言語です。2015年、GraphQLはオープンソースソフトウェアとして公開されました。それ以降、Web業界では新たなAPIの形として大きな注目を集めています。

GraphQLを利用することで、開発生産性の向上、高度な柔軟性の実現、あるいはアプリケーションのパフォーマンス改善を期待できます。一方で、まだまだ新しい技術であることから、日本語での情報が極端に少ないという問題もあります。

GraphQLを使うエンジニア

GraphQLは、Web APIに関する規格です。そのため、Web APIを開発するサーバーサイド(バックエンド)エンジニアが開発します。

GraphQLを使うエンジニアの特徴と在籍業界

GraphQLを使うエンジニアの特徴としては、新しいものが好きという傾向があります。また、既存のライブラリやフレームワークなど、具体的な課題などを解消できるできる

なお、 GraphQLを使うエンジニアは、主にWeb業界に在籍しています。ただし、Web業界のみにしか在籍していないというわけではなく、さまざまな業界やさまざまな企業で働いています。

採用する時に知っておくとよいこと

GraphQLの学習コストと人気度

GraphQLは、比較的新しい技術であるため、あまり耳にしたことがないという方も多いかもしれません。ただ、学習コストはあまり高くないため、比較的容易に習得ができるといわれています。

何よりも、これまで一般的であったREST-APIよりも圧倒的にシンプルとなるため、いわゆる「爆速開発」しやすくなります。

現在、GraphQLの人気は上昇しつつあります。今後も注目の技術といえるでしょう。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

GraphQLの豆知識

GraphQLを採用しているサービス

ここではGraphQLを採用している企業やサービスを紹介します。

Netflix社

Netflix社については、もはや説明不要かと思いますが、同社の動画配信サービスは、先進的なアーキテクチャによって、競争力を高めています。Netflix社では、GraphQLを採用することで、開発生産性をはじめとする様々な課題を解決しているようです。

参考:Netflix TechBlog

ヤフー株式会社 GYAO!

GYAO!は、ヤフー株式会社が開発・運営している動画配信サービスです。GYAO!のトップページは、表示時のパフォーマンスやAPIの拡張性低下という問題を抱えていたそうですが、GraphQLの採用などにより、解決へ導いたようです。

参考:Yahoo! JAPAN Tech Blog

GraphQL関連のイベント 

ここではGraphQLに関するイベントを紹介します。

GraphQL Summit

GraphQL Summitは、Apollo GraphQLという組織によって主催されている世界最大級のGraphQLのイベントです。このイベントは2日間を通して、トークセッションやワークショップが行われます。

参考:GraphQL Summit

GraphQLConf

GraphQLConfは、ドイツのソフトウェア企業であるGraphCMS社とCommercetools社が主催するGraphQLに特化したイベントです。このイベントにはスピーカーとして、主催している2社のエンジニアなどはもちろん、GitHub、LinkedIn、Netflixといったテック企業のエンジニアが参加しています。

参考:GraphQLConf

関連記事

  1. CakePHP

  2. セキュリティエンジニア

  3. DDD

  4. dart

  5. Ruby on Rails

  6. pandas