Upload
Download free for 30 days
Login
Submit Search
フロントでのGraphQL
0 likes
1,223 views
C
Chao Li
フロントでのGraphQL
Technology
Read more
1 of 16
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
More Related Content
PPTX
フロントエンドで GraphQLを使った所感
Chao Li
PDF
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
ceres-inc
PPTX
JavaScriptで味わう! 関数型プログラミングのメリット!!
Keigo Magami
PDF
Arachne Unweaved (JP)
Ikuru Kanuma
PDF
[Japanese] Style validator-html5etcstudy20151125
Takeharu Igari
PDF
これができたらエンジニア|YAPC::Asia 2015 LT rejected
Takahiro YAMAGUCHI
PDF
ジョイ・インク 役職も部署もない全員主役のマネジメント
Yasui Tsutomu
PDF
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
Recruit Lifestyle Co., Ltd.
フロントエンドで GraphQLを使った所感
Chao Li
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
ceres-inc
JavaScriptで味わう! 関数型プログラミングのメリット!!
Keigo Magami
Arachne Unweaved (JP)
Ikuru Kanuma
[Japanese] Style validator-html5etcstudy20151125
Takeharu Igari
これができたらエンジニア|YAPC::Asia 2015 LT rejected
Takahiro YAMAGUCHI
ジョイ・インク 役職も部署もない全員主役のマネジメント
Yasui Tsutomu
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
Recruit Lifestyle Co., Ltd.
What's hot
(6)
PDF
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Yasuhiko Yamamoto
PDF
Android meets RxJava - 渋谷Java#6
yo_waka
PDF
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Hiroyuki Ohnaka
PDF
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
SHIFT Inc.
PPTX
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
Taichi Watanabe
PPTX
スクラムマスター1年生⇒2年生
Taichi Watanabe
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Yasuhiko Yamamoto
Android meets RxJava - 渋谷Java#6
yo_waka
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Hiroyuki Ohnaka
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
SHIFT Inc.
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
Taichi Watanabe
スクラムマスター1年生⇒2年生
Taichi Watanabe
Ad
Viewers also liked
(20)
PPTX
課題を解決するためにやりたいこと
tatsuya kiyono
PPTX
GenisysでTableauを導入した話
Yuki Katada
PDF
20170112 tristan 勉強会_社外
Tristan Irvine
PDF
Maglev: A Fast and Reliable Software Network Load Balancer
kuro kuro
PDF
ニューラルネットと深層学習の歴史
Akinori Abe
PPTX
Elastic Beanstalkでアプリ/インフラかんたん一括管理
Yusuke Komahara
PDF
Database sql
明 高橋
PDF
20161110 tristan 広告ランキング
Tristan Irvine
PDF
レスポンシブWebデザインでうまくやるための考え方
Hayato Mizuno
PPTX
goa Design first API Generation
yoshinori sugiyama
PPTX
AbemaTV on tvOS
Yuji Hato
PDF
祭りから半年たったプロジェクトにジョインしてみた
Asuka Oizumi
PDF
Atomic designで助かった人たち
Iida Yukako
PDF
Introduction to Resource Hints
Shogo Sensui
PDF
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Kazunari Hara
PDF
BloomFilterを直感的に理解する
co-sche
PPTX
LT Thursday Intro. (Rust使ってみた←釣り)
Yuki Katada
PDF
Akka/Actor introduction
Yuki Katada
PDF
tvOSネイティブアプリを作る
Tomoki Hasegawa
PDF
AndroidにおけるCocos2d-x製ゲームの画面の録画
gomachan_7
課題を解決するためにやりたいこと
tatsuya kiyono
GenisysでTableauを導入した話
Yuki Katada
20170112 tristan 勉強会_社外
Tristan Irvine
Maglev: A Fast and Reliable Software Network Load Balancer
kuro kuro
ニューラルネットと深層学習の歴史
Akinori Abe
Elastic Beanstalkでアプリ/インフラかんたん一括管理
Yusuke Komahara
Database sql
明 高橋
20161110 tristan 広告ランキング
Tristan Irvine
レスポンシブWebデザインでうまくやるための考え方
Hayato Mizuno
goa Design first API Generation
yoshinori sugiyama
AbemaTV on tvOS
Yuji Hato
祭りから半年たったプロジェクトにジョインしてみた
Asuka Oizumi
Atomic designで助かった人たち
Iida Yukako
Introduction to Resource Hints
Shogo Sensui
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Kazunari Hara
BloomFilterを直感的に理解する
co-sche
LT Thursday Intro. (Rust使ってみた←釣り)
Yuki Katada
Akka/Actor introduction
Yuki Katada
tvOSネイティブアプリを作る
Tomoki Hasegawa
AndroidにおけるCocos2d-x製ゲームの画面の録画
gomachan_7
Ad
Similar to フロントでのGraphQL
(20)
PDF
第3回 JavaScriptから始めるプログラミング2016
kyoto university
PDF
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
Koichi Sakata
PDF
マーブル図で怖くないRxJS
bitbank, Inc. Tokyo, Japan
PDF
JJUG CCC 2017 Spring LT about JPA
Naoya Kojima
PPT
タダで始めるテストファースト入門 ~ C# Express + NUnit
Yasuhiko Yamamoto
PDF
歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech
Kazuhiro Sera
ODP
2008-07-12 / WCAN 2008 Summer Ligntning Talks #2
IWATA Susumu
PDF
フロント作業の効率化
Yuto Yoshinari
PDF
JavaScriptことはじめ
Yuki Ishikawa
KEY
今さら始めるJavaScript
Ashitaba YOSHIOKA
PDF
⑯jQueryをおぼえよう!その2
Nishida Kansuke
PPTX
Angular js はまりどころ
Ayumi Goto
PDF
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
PDF
WordBench Kobe jQueryどうでしょう
Hishikawa Takuro
PDF
Log解析の超入門
菊池 佑太
PDF
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
PDF
JasmineによるJavascriptテスト駆動開発
Yoichi Toyota
PDF
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
schoowebcampus
PPT
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
PDF
ServerSideJavaScript
Ryunosuke SATO
第3回 JavaScriptから始めるプログラミング2016
kyoto university
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
Koichi Sakata
マーブル図で怖くないRxJS
bitbank, Inc. Tokyo, Japan
JJUG CCC 2017 Spring LT about JPA
Naoya Kojima
タダで始めるテストファースト入門 ~ C# Express + NUnit
Yasuhiko Yamamoto
歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech
Kazuhiro Sera
2008-07-12 / WCAN 2008 Summer Ligntning Talks #2
IWATA Susumu
フロント作業の効率化
Yuto Yoshinari
JavaScriptことはじめ
Yuki Ishikawa
今さら始めるJavaScript
Ashitaba YOSHIOKA
⑯jQueryをおぼえよう!その2
Nishida Kansuke
Angular js はまりどころ
Ayumi Goto
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
WordBench Kobe jQueryどうでしょう
Hishikawa Takuro
Log解析の超入門
菊池 佑太
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
JasmineによるJavascriptテスト駆動開発
Yoichi Toyota
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
schoowebcampus
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
ServerSideJavaScript
Ryunosuke SATO
フロントでのGraphQL
1.
フロントでのGraphQL
2.
自己紹介 名前 李 超(31) 経歴 中国上海出身。2008年来日、2015年11月サイバーエージェントに入社 職種 フロントエンジニア
3.
目次 ・GraphQLを導入し、フロントで使っていて感じたこと ・フロントでのちょっとした改善の試み
4.
フロントで使っていて感じたこと ・jsからquery文字列変換には罠が多い ・コンソールでのデバッグはしづらい ・jsファイルがとにかく重い
5.
jsからqueryの文字列変換に罠が多い const str =
‘abcde’; => `strParam: ”${str}”` const arr = [1, 2, 3]; => `arrParam: [${arr}]` あれ?jsにそんなもんないよ><とりあえずそういう感じでいいかな const enum = { RED: 0, GREEN: 1 }; そうするとこう渡すでしょう => `enumParam: ${enum.RED}` と思っている方もいるだろう。 String Array Enum
6.
違う!!! 求められているのはこう => ‘enumParam:
RED’ ‘enumParam: 0’は決して許されない つまりjs側の定義はこうした方がいい const enum = { RED: ‘RED’, GREEN: ‘GREEN’ }; => `enumParam: ${enum}`; Stringとの違いは${}の外にダブルクオーテーションをつけないこと!
7.
コンソールでのデバッグはしづらい こちらはagencyのADG編集画面のリクエスト一覧 すべてgqlへのpostなので、 どれが何をするためのクエリは わからないorz... 途中でさすがに我慢できなくなっ たので_getLoginUserみたいな query stringを目印としてつけた ><
8.
コンソールでのデバッグはしづらい うん。。。わからん。。。 これは人が読めるものではない。。。 getLoginUserの中身を見てみましょう
9.
jsファイルはとにかく重い 短い方 => 長い方 =>
10.
似ているクエリは山ほどある! すべてはjsファイルに入っている! それは重いよね。。。 クエリを更に最適化をすると、更にバリエーションが増えるので、 更に重くなることも全然夢ではない。
11.
フロントでのちょっとした改善の試み ・クエリにvariablesを利用とセグメント化 ・nodeの中間サーバを用意し、GraphQLをすべてnodeに移動 ・クライアントとサーバのやり取りをRESTに戻す
12.
クエリにvariables利用とセグメント化 ・ソース記述量が増えるが、クエリ文字列への変換はvariablesの型宣言により、小細工 をしなくて済む ・agencyやadvertiserなど使う時基本同じ形にしているものをセグメント化をし、メンテナ ンス性がよくなる ・サーバ側のschemaとの二重管理をしたくないため、campaignやadGroupなど使う場 面によって必要なカラムが変わるものはセグメント化しない。
14.
client node resource request merged response merged request
1 merged request 2 response1 response2 GraphQLをnodeに移動し、RESTに戻す
15.
・クエリ用の文字列はすべてnodeに移動したため、jsファイルがかなり軽くなる ・リソースの改修はある程度nodeの改修で吸収できる ・nodeはフロントにとって馴染みがあるので学習コストが低い ・node側で複数GraphQLをまとめて一気に投げ、整形済みのjsonをクライアントに返す ようにしてあるため、GraphQLの長所である柔軟性は生かされている ・将来的に、おしゃれなSSRやリソースサーバとのschema共有するとかの夢も
16.
ご清聴ありがとうございました!
Download