Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nuxt.jsとGraphQLから見えたWeb開発の未来
Search
takanorip
April 21, 2018
Technology
0
830
Nuxt.jsとGraphQLから見えたWeb開発の未来
takanorip
April 21, 2018
Tweet
Share
More Decks by takanorip
See All by takanorip
Design System Documentation Tooling 2025
takanorip
3
1.7k
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
0
840
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
600
Bulletproof Design System with TypeScript
takanorip
7
4.5k
Eleventy3.0 で始める爆速個人ブログ開発!
takanorip
0
220
Webフォント選定の極意!フォントの基本から最新トレンドまで徹底解説
takanorip
5
990
効果的な管理画面を デザインをするために 避けるべき5つの罠
takanorip
15
7.6k
社内管理画面のデザインもプロダクトデザイン
takanorip
5
2.1k
早わかり W3C Community Group
takanorip
0
540
Other Decks in Technology
See All in Technology
LayerX QA Night#1
koyaman2
0
250
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
650
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
320
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
200
AI駆動開発の実践とその未来
eltociear
1
480
JEDAI認定プログラム JEDAI Order 2026 エントリーのご案内 / JEDAI Order 2026 Entry
databricksjapan
0
180
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
230
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
230
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
17
2.7k
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
110
Bedrock AgentCore Evaluationsで学ぶLLM as a judge入門
shichijoyuhi
2
240
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
0
220
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Into the Great Unknown - MozCon
thekraken
40
2.2k
For a Future-Friendly Web
brad_frost
180
10k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
29
Are puppies a ranking factor?
jonoalderson
0
2.4k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
sira's awesome portfolio website redesign presentation
elsirapls
0
89
Fireside Chat
paigeccino
41
3.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Deep Space Network (abreviated)
tonyrice
0
21
Typedesign – Prime Four
hannesfritz
42
2.9k
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の実装に ついて理解する必要がある - フロントからデータを取得するときにクエリを書かないといけない - サーバーサイドフィルタリングなどの機能もサーバーの実装によるので、 どういう機能が使えるのかを把握して提案する必要 - やること増えていくかも…?
まとめ - フロントエンド開発はより便利で効率的になっていってる! - 面倒な部分が少なくなり、より本質的な部分に集中できる - 幅を広げることも大事だけど、得意なことをつくるのが大事かも
おわり ご清聴ありがとうございました! (フォント:コーポレートロゴ)