果てしなくどこまでも二日酔い

プログラミングやエンジニアリング、その他諸々について

ScalaMatsuri2017で登壇しました

お久しぶりです。

というか、2つ目の記事です…

 

最近システムの新規開発をしているため、

普段ブログを書く時間がなく、お粗末になっていました。

 

その話はリリース後に話せるかと思います。

 

 今回はScalaMatsuri2017で登壇してきたことを報告します。

2日目の発表で「Introduction to GraphQL in Scala」というお題でやらせていただきました。

発表を聞いてくれた方々朝早くからお越しくださりありがとうございました!

 

発表の内容としては、

私が勤めている会社のプロダクトでScala + GraphQLで実装しているAPIがあり、

そのプロダクトを開発/運用して見えてきた長所短所や、どのようにScalaで実装するのかなどを説明したものです。

  

github.com

www.slideshare.net

 

個人的にはGraphQLは面白い技術だし、RESTがデファクトスタンダードとして使われている世の中でこのような挑戦をするFacebookはさすがだなあと思います。

 

ただ、まだ世の中に出すには早かった感があります。

 

外部公開するAPIとしては、

APIを使う側の実装コスト・ラーニングコストを考えるとあまりよろしくありません。

 

更にはクライアントサイドがScalaなどの型安全な言語で書かれている場合、

リクエストボディにString型でJSONライクなGraphQLクエリを記述しなきゃいけないので型安全の恩恵が一切なくなってしまいます。

(もちろんVariableなどを使えば型安全になるのでは?という意見もあると思うのですが、それでもクエリ自体はString型なので完全に型安全とは言えません)

 

Request数を本当に減らす必要があるシステムならGraphQLを実装するソリューションもあると思いますが、

本当にRESTで解決できない場合でないと使うべきではない

と個人的には思っています。

 

RESTで並列的にリクエスト出せばいいだけですし。

 

ほとんどGraphQLの短所の紹介となってしまいましたが(笑)、RESTでない新しい考え方を勉強できたのはすごく良い経験となりました。

 

また、ScalaMatsuriで発表できたのも嬉しく思っています。

 

これからも新しい技術をガンガン使っていって知見を広げたいと思います。