Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nuxt.jsとGraphQLから見えたWeb開発の未来
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
takanorip
April 21, 2018
Technology
860
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nuxt.jsとGraphQLから見えたWeb開発の未来
takanorip
April 21, 2018
More Decks by takanorip
See All by takanorip
「見せる」登壇資料デザインの極意
takanorip
3
980
Design System Documentation Tooling 2025
takanorip
3
2.7k
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
1
1.1k
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
770
Bulletproof Design System with TypeScript
takanorip
7
5.1k
Eleventy3.0 で始める爆速個人ブログ開発!
takanorip
0
290
Webフォント選定の極意!フォントの基本から最新トレンドまで徹底解説
takanorip
6
1.1k
効果的な管理画面を デザインをするために 避けるべき5つの罠
takanorip
15
7.8k
社内管理画面のデザインもプロダクトデザイン
takanorip
5
2.3k
Other Decks in Technology
See All in Technology
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2k
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
590
そのPoC、何を検証したつもりでしたか? AIプロダクトの価値検証で陥った落とし穴
techtekt
PRO
0
150
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
7
4.1k
トークン数だけでは測れない — Claude Code 組織展開の効果検証から学んだこと
makikub
0
130
「コーディング」しない人のための Claude Code 入門 ChatGPT の次の一歩 — 業務に組み込む 育成・共有・自動化
rfdnxbro
2
1.2k
サイバーセキュリティ概論 / Introduction to Cybersecurity
ks91
PRO
0
170
Mastering Ruby Box
tagomoris
3
150
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.7k
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
0
200
AIプラットフォームを運用し続けるための可観測性
tanimuyk
4
1.1k
React、まだ楽しくて草
uhyo
7
4.1k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
The Cost Of JavaScript in 2023
addyosmani
55
10k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
360
Building Adaptive Systems
keathley
44
3k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
390
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
KATA
mclloyd
PRO
35
15k
Site-Speed That Sticks
csswizardry
13
1.2k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
550
How to train your dragon (web standard)
notwaldorf
97
6.7k
BBQ
matthewcrist
89
10k
Transcript
Nuxt.jsとGraphQLから見えた Web開発の未来 Takanori Oki @BCU30 2018/04/21
自己紹介 - Takanori Oki (@takanorip) - 株式会社スマートドライブ - フロントエンドエンジニア
(Nuxt.js、React、Polymer、ウェブ制作全般) - Polymer Japan 翻訳チーム - 技術書典4でウェブフォントの本頒布します
None
今日は4月に新しくリリースした サービス開発の話をします
※コードはほとんど出てきません…
None
SmartDrive Cars -「安全運転がドライバーに還元される社会の実現を目指す」 -カーリース+コネクテッドカー -ポイント還元、走行データの可視化、安全運転診断
技術構成 -Nuxt.js - Ruby on Rails -GraphQL ( フロントエンドはNuxtのapollo-module )
- Heroku
開発体制 - フロントエンドエンジニア(1人) - サーバーサイドエンジニア(1人) - デザイナー(1人) - UIデザイナー・ディレクター(1人) -
マークアップエンジニア(外注:1人)
状況 - SPAで作りたい - リリース日は決まっていて変更できなそう - 度重なる仕様変更(外部協力会社の関係により) - FIXされないデザイン -
マークアップは外部の方にお願いする - 実装期間は2ヶ月弱
圧倒的リソース不足!!
Nuxt.js
ユニバーサル Vue.js アプリケーション
Nuxt.js vue-router vue-meta vuex vue-server-renderer Vue2
メリット
圧倒的な開発スピード
- 環境構築が爆速 - めんどくさい設定全部やってくれる - HTMLやCSSをそのまま使える! - デザイナーや外部エンジニアと協業しやすい - ディレクトリ構成とかある程度決まっているので悩む部分が少ない
- nuxt-communityを中心としたエコシステム
None
None
None
None
コアな部分(設計や機能開発)に 集中できる
注意
Nuxt.jsはブラックボックスなので 中でどんなことをやっているのか 知っておくことが大事
GraphQL
GraphQL -クライアントからサーバーへのリクエストを送信するための クエリー言語 -クライアント/サーバアプリケーションのデータモデルの機能 と要件を説明 -エンドポイントは1つ -型システムを提供してくれる
今回導入を決めた理由 - フロントエンドとサーバーサイドの開発を分離したい - デザインがなかなか決まらない - サーバーのモデリングだけFIX - ルーティングやUIに左右されずにサーバーサイドの開発がしたい -
(完全に分離はできないけど、ある程度疎結合にできる)
今回導入を決めた理由 - それなりの変更に耐えられる実装がしたい - 仕様が局所的にFIXされていくので全体の見通しがたたない - (僕は実装していないので詳細不明…) - (サーバーサイドの人曰く)導入コストは2日くらい
メリット - 必要なデータを1回のリクエストで取得できるようになる - リクエストするクエリを変えれば様々なデータに1回のリクエストで アクセスできる - 不必要なデータは取得しないので、サーバーから返ってくるデータが シンプルになる -
欲しいデータが変わったらフロント側でクエリを変更すればOK
メリット - サーバーサイドフィルタリングができる(特殊な実装が必要) - フロントエンドでフィルタリングしなくて良いので、バグが減る
メリット - Store(のサーバーサイドのデータを結合する部分)がいらない - そもそもエンドポイントが1つなのでデータを結合する必要がない - 複雑なレーヤーを排除して、データとUIを直結させることが可能
REST APIの場合 API API API View Store 複数のAPIから取得したデータを StoreでまとめてViewで表示している
GraphQLの場合 API View Store APIが1つなので、Storeでまとめる必要がない
REST vs GrapgQL ?
REST & GrapgQL
それぞに得意、不得意があるので 状況によって使い分ける
フロントエンド開発の未来?
-Nuxt.jsのようなフレームワークの登場で、 フロントエンド開発の敷居が下がり、 誰でもそれなりに動くものはすぐに 作れるようになりそう
-開発者はよりコアな部分で価値を発揮できる - 設計、機能開発、アニメーション、パフォーマンス、etc… - 今まではVue.jsやReactでアプリケーション作れるだけで 価値があったけど、これからはそうはいかないかも?
-ライブラリの中まで理解できる人はやっぱり強い - 今までもそうだったけど、これからもそう
-GraphQLの登場により、データとUIがより ダイレクトに結びつくような設計が可能になる - StoreとかViewModelとかの複雑なレイヤーを排除して、 本質的な開発をUIとデータを直結合して行うことができる
-フロントエンドエンジニアもGraphQLの実装に ついて理解する必要がある - フロントからデータを取得するときにクエリを書かないといけない - サーバーサイドフィルタリングなどの機能もサーバーの実装によるので、 どういう機能が使えるのかを把握して提案する必要 - やること増えていくかも…?
まとめ - フロントエンド開発はより便利で効率的になっていってる! - 面倒な部分が少なくなり、より本質的な部分に集中できる - 幅を広げることも大事だけど、得意なことをつくるのが大事かも
おわり ご清聴ありがとうございました! (フォント:コーポレートロゴ)