yak shaving life

遠回りこそが最短の道

「Learning GraphQL」を読んだ

まえがき

当時英語版しかなかったので英語版を読んだが、現在は「初めてのGraphQL」という和訳版(しかも色々追加修正されてるらしい)が出ているので日本語話者の方はこちらを読んだ方が良さそうです。

タイトル

Learning GraphQL: Declarative Data Fetching for Modern Web Apps

Learning GraphQL: Declarative Data Fetching for Modern Web Apps


Learning GraphQL: Declarative Data Fetching for Modern Web Apps

 

なぜ読もうと思ったか

そういえばGraphQLってよく聞くけど実際のところ全然わからないなーでも仕事で使いたいなーと思ったのが2年ほど前。しかし、2018年時点では日本語書籍が全くと言っていいほどなかった。仕方がないので普段読まない英語の技術書に挑戦してみた。

書評というか感想

一言で言うと

マジ良本。

本の内容

読んで字のごとく、GraphQLの入門書。自分はなんとなくのコンセプトやちょっとしたクエリの書き方ぐらいは知っていたが、GraphQL?何ソレ?みたいな人でも大丈夫です。多分。

まずGraphQLとは何か、なぜGraphQLが生まれたのかなどの概要を説明し、その後グラフ理論について軽く触れたあと、サンプルアプリケーションの実装を例に詳細に入っていく。

読んでみてどうだったか

いやーとても良かった。GraphQLについて、いろんなブログ記事やらGithub APIやらを見てなんとなく知っている気になっていたけど、全く何も分かっていなかったことに気づかされた。ありがとうございます。今は完全に理解した。(何も分からないとも言う)

本の構成が良かったのだと思うが、全体的に内容がスッと入ってきた。あと、英語が平易で読みやすかったような気がする。ただし3章のGraphQL Playgroundへのリンクが軒並み死んでいて、スキーマ全体が本文に書いていないのもあり、Playgroundで確認もできないしで割と困った。今は解消されているのだろうか…。(筆者が読んだのは2018年ごろです)

入門書として本当に素晴らしいと思う一方、これを読めばGraphQL APIを作れるようになるかというとそんなことはない。手を動かして何かしらの実装をやらなければいけない。ApolloでもGraphQL Javaでもgraphql-rubyでも使うライブラリはなんでもいいけど、とにかくやるべき。思ったよりムズい。そして、APIが大きくなってくると最適化問題にすぐぶち当たる。ここら辺の設計論やベストプラクティス、アンチパターン等がカバーされた中級者〜向け書籍が出てくれると嬉しいですね。

和訳版はRelayの解説が追加されているらしいし、そもそも英語を間違えて理解している部分がありそうなので、和訳版もそのうち読んでみたい。積読消化したつもりが一冊プラスになったのでプラマイゼロ。嬉しいような悲しいような。

まあとにかくGraphQLについて学びたい人には間違いなくオススメの一冊です。APIを作る側でなく、使う側の人(フロントエンドとか)にもおすすめ。