Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vue.js は裏切らない / UIT#5
Search
Yuji Yamaguchi
November 29, 2018
Programming
1
2.2k
Vue.js は裏切らない / UIT#5
Yuji Yamaguchi
November 29, 2018
Tweet
Share
More Decks by Yuji Yamaguchi
See All by Yuji Yamaguchi
Figma + Storybook + PlaywrightのMCPを使ったフロントエンド開発
yug1224
13
5.3k
メンバーの成長速度にバフをかける1on1ミーティング / 2024-12-06
yug1224
25
12k
強みを伸ばすキャリアデザイン
yug1224
3
530
インターンと盛り上げる全社員参加型Advent Calendarの作り方 / 2024-02-22-QiitaNight
yug1224
1
140
2022ランキング圏外から2023ランキング入りを実現したテックブログ運営について / 2023-07-28-QiitaEngineerFesta
yug1224
1
170
Qiitaいいね数をGASで計測している話 / 2023-07-24-HRBrainFlyHigh
yug1224
1
1.1k
HRBrainの生態系を支えるフロントエンドチームの取り組み / 2023-06-22-AwEngineerMeetup
yug1224
0
120
明日使えるかもしれないGitテクニック / Gunma.web#47
yug1224
0
320
React+TypeScriptで拡張機能が開発できるRaycastのススメ / 20221027_Raycast
yug1224
1
950
Other Decks in Programming
See All in Programming
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
360
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
490
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.4k
CSC305 Lecture 17
javiergs
PRO
0
340
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
2
650
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
230
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
290
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
5
2k
Level up your Gemini CLI - D&D Style!
palladius
1
180
認証・認可の基本を学ぼう後編
kouyuume
0
180
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
260
Microservices rules: What good looks like
cer
PRO
0
1.1k
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
51k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Site-Speed That Sticks
csswizardry
13
990
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Agile that works and the tools we love
rasmusluckow
331
21k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
GitHub's CSS Performance
jonrohan
1032
470k
Designing Experiences People Love
moore
143
24k
Building Applications with DynamoDB
mza
96
6.8k
Transcript
Vue.js は裏切らない 2018/11/29 UIT#5 Yuji Yamaguchi
自己紹介 ▸ 名前 ▸ ヤマグチ ユウジ ▸ 職種 ▸ フロントエンドエンジニア
▸ 経歴 ▸ 2011年04月 通信系企業 ▸ IoTやWebコンテンツサービスの開発運用 ▸ 2016年01月 ネット広告系企業 ▸ 広告配信管理システムの開発運用 ▸ 2016年10月 株式会社リクルートライフスタイル ▸ 飲食店向け予約台帳システムの開発 ▸ 横断フロントエンドチーム 2
3 今日話すこと
飲食店向け予約台帳アプリ:レストランボード 4
5 独自フレームワークを Vue.js で置き換えている話
Vue.js で置き換えている話 ▸ 独自フレームワークについて ▸ Vue.js 導入前にやったこと ▸ 良かったこと /
悪かったこと ▸ まとめ 6
どんな独自フレームワーク? ▸ jQuery 製、2014年末頃に誕生 ▸ Babelify で ES2015 化、 MorphDOM
で 差分レンダリング を実現 ▸ Template に Model を渡すとレンダリングし、 Selector と Function を渡すとバインドする MVVM 7
入力値を表示する場合 8
9 完成度は高いが 今後の継続性に不安...
まずは足元を整えることから開始 ▸ Browserify を webpack に ▸ Grunt を Gulp
/ npm script に ▸ JSLint を ESLint / Prettier に ▸ Mocha を Jest に ▸ $.Deferred を Promise(bluebird)に ▸ and more... 10
開発の歴史 11 2014/12 2016/10 2017/10 2018/10 2015/4 独自FW誕生 レストランボード 開発開始
脱Browserify 脱Grunt ESLint Jest Prettier Promise Vue.js async / await 足元の整理に二年弱くらい
Vue.js 導入時に心掛けたこと ▸ 小さく移行する ▸ Drastic に変えない ▸ 画面毎や部品毎、 Molecules
や Atoms から導入 ▸ 案件で触る部分だけ、リファクタリングの粒度にとどめる ▸ 移行で I/F が変わらないことが大事 ▸ レガシーコードの ロジックは資産、できるだけそのまま使う 12
13 導入による大きなインシデントは いまのところなし!
Vue.js 導入で良かったこと ▸ 学習曲線が緩い ▸ バックエンドからの転向組でも立ち上がりがスムーズだった ▸ template, script, style
の SFC はわかりやすい ▸ 誰が書いても それなり に書ける ▸ 人材が少ない中で 誰でもそれなり はすごく嬉しい 14
Vue.js 導入で難しかったこと ▸ 自由にできすぎる... ▸ watch or computed ? created
or mounted ? ▸ ついでに新しい技術等も一緒に入れようとして影響が肥大化する ▸ やらないことを決める のが大事 ▸ 秩序とは制約の上に成り立つ 15
現状の導入比率 16 59% 41% 60画面中25画面で導入済み
17 まとめ
まとめ 利益を出しているサービス開発において 継続性はものすごく重要で 誰でもそれなりに使えるFWはありがたい やらないことを決めるのがすごく難しいが 新旧が共存しながら移行できるのは Vue.js の柔軟性があってこそ 18
19 Vue.js は裏切らない!
20 EOF