Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

マイクロサービスにおけるクエリー言語について

1,426 views

Published on

マイクロサービスにおけるクエリー言語について

Published in: Software
  • Login to see the comments

  • Be the first to like this

マイクロサービスにおけるクエリー言語について

  1. 1. マイクロサービスにおける クエリー言語について @yudppp
  2. 2. yudppp Web Engineer HAROiD Platform HAROiD Inc. Golang,Node, JavaScript,Vue.js
  3. 3. HAROiDについては techblog.haroid.io
  4. 4. よくあるサービスの話
  5. 5. リソース チケット コメント
  6. 6. チケット コメント クライアントサーバー
  7. 7. サーバーエンジニ ア きっちりしたREST APIで提供したい
  8. 8. フロントエンジニア チケットを一件取得するAPIでコメントも一緒に入れ て欲しい
  9. 9. Androidエンジニア チケットを一覧で取得するAPIでコメントも一緒に入 れて欲しい
  10. 10. iOSエンジニア チケットを一覧で撮るAPIのJSONが大きすぎてパー スできない。キャッシュに入れるのに時間すごいかか る。本当に全部必要なプロパティなの
  11. 11. みんな欲しいものはバラバラ
  12. 12. クライアントごとにエンドポイント分けたり できなくないけどやりたくない
  13. 13. そもそもエンジニアなのに こんな調整ごとしたくない
  14. 14. そんな時出会ったのが クエリー言語
  15. 15. GraphQL/relay Falcor.js クライアント・サーバ間でのデータのやりとりを記 述するためのクエリー言語 効率よくデータを取得できるライブラリ(厳密には クエリー言語でない)
  16. 16. GraphQL/relay // relay sample var fragment = Relay.QL` fragment on User { name, surname, address } `;
  17. 17. Falcor.js // falcor sample model. getValue('user.["name", "surname","address"]'). then(function(val) { console.log(val); });
  18. 18. 必要な分の値をクライアント が選んで取れる
  19. 19. Pros サーバーサイドエンジニアとクライアントサイ ドのエンジニアの仕事の分離 Mockサーバーも簡単に作成できるので良い ドキュメントも簡単になる パフォーマンスの向上
  20. 20. Cons まだまだ採用事例が少ない(InstagramやNetflix とか大規模でも使っているのですが) 日本で実際にプロダクションで使ったとかは聞 かない マイクロサービス側を柔軟に作る必要があるか も(fieldsで指定したり等)
  21. 21. GraphQL/relay Pros • クエリーで色々できる。 • 多言語で実装されている。(Java, Python, Ruby, Scala, Goなど)
  22. 22. GraphQL/relay Cons • ラーニングコストが高め • Relayも使い方が難しい
  23. 23. Falcor.js Pros • データの取得が簡単。 • キャッシュやバッチ処理等も簡単。
  24. 24. Falcor.js Cons • GraphQLほど難しいことはできない • JavaScript以外の実装が公式でされていない
  25. 25. まとめ • 個人的にはFalcor推し • この辺りを盛り上げていきたい • プロダクションでまだ使えていないので使いたい
  26. 26. 参照 • blog.yudppp.com/posts/rest_to_falcor/ • https://medium.com/apollo-stack/graphql-vs- falcor-4f1e9cbf7504

×