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
持続可能な開発のためのVueコンポーネント設計とコーディングガイドラインの策定
Search
gree_tech
PRO
October 25, 2024
Video
Technology
1
780
持続可能な開発のためのVueコンポーネント設計とコーディングガイドラインの策定
GREE Tech Conference 2024で発表された資料です。
https://techcon.gree.jp/2024/session/Short-Session-3
gree_tech
PRO
October 25, 2024
Tweet
Share
Video
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
2.5k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
27
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.4k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
170
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
160
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.5k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
280
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
300
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
220
Other Decks in Technology
See All in Technology
BidiAgent と Nova 2 Sonic から考える音声 AI について
yama3133
2
100
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
470
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
15k
アラフォーおじさん、はじめてre:Inventに行く / A 40-Something Guy’s First re:Invent Adventure
kaminashi
0
170
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
110
コールドスタンバイ構成でCDは可能か
hiramax
0
110
Amazon Quick Suite で始める手軽な AI エージェント
shimy
2
1.9k
SQLだけでマイグレーションしたい!
makki_d
0
1.2k
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
270
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
620
Identity Management for Agentic AI 解説
fujie
0
490
ペアーズにおけるAIエージェント 基盤とText to SQLツールの紹介
hisamouna
2
1.7k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
67
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
130
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
38
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
100
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
260
Building Applications with DynamoDB
mza
96
6.9k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
93
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Transcript
持続可能な開発のための Vueコンポーネント設計と コーディングガイドラインの策定 REALITY株式会社 ソフトウェアエンジニア 猿田尚輝
2 DevOps チーム所属 REALITY株式会社 ソフトウェアエンジニア 猿田尚輝 #サウナ 🧖/ #日本酒 🍶/
#講談🪭/ #Tarkov🔫 昨年7月より REALITY 社にて内定者アルバイトを開始。今年 4月に グリー株式会社に入社し、 REALITY 株式会社に配属される。 クラウドインフラ周りの改善活動が現在の業務のメイン。
3 本セッションはこちらの Blog 記事の内容をベースとしています https://note.com/reality_eng/n/nbf883a2b62e2
目次 1 REALITY における Web フロントエンド コード改善のための取り組み 4 問題意識の共有とチームでの合意形成 参考実装の作成とコーディングガイドラインの策定
2 b a
1 REALITY における Web フロントエンド 5
「なりたい自分で生きていく 」をコンセプトとした メタバースプラットフォーム 3D アバターを用いたリアルタイムコミュニケーション サー ビスとして iOS / Android
向けアプリとして提供 1 REALITY におけるWebフロントエンド 6
REALITY における Web フロントエンド ユーザー向け画面 (アプリ内WebView) 1 REALITY におけるWebフロントエンド 7
社内向け管理画面
Web フロントエンド開発における 課題 8 1 REALITY におけるWebフロントエンド Web フロントエンド開発を専門とするエンジニアの 不在・
サーバエンジニア による開発 ⇒Web フロントエンド部分の コード品質が担保されていない
2 コード改善のための取り組み 9
コード改善のための取り組み 10 問題意識の共有とチームでの 合意形成 参考実装の作成とコーディングガイドライン の策定 2 コード改善のための取り組み
11 2 コード改善のための取り組み a 問題意識の共有とチームでの合意形成
2 2 コード改善のための取り組み / 問題意識の共有とチームでの合意形成 12 問題意識: 素朴な Vue コンポーネント
2 2 コード改善のための取り組み / 問題意識の共有とチームでの合意形成 13 問題意識: 素朴な Vue コンポーネント
userId を入力
2 2 コード改善のための取り組み / 問題意識の共有とチームでの合意形成 14 問題意識: 素朴な Vue コンポーネント
User を取得
2 2 コード改善のための取り組み / 問題意識の共有とチームでの合意形成 15 問題意識: 素朴な Vue コンポーネント
User を表示
16 持続可能な開発のための Vueコンポーネント? 🤔 2 コード改善のための取り組み / 問題意識の共有とチームでの合意形成
2 UI Infrastructure Application Domain ビジネスルールのレイヤーと、ユーザー‧外 部システムとのインターフェースとなるレイ ヤーとに分離することで、ビジネスルールに 関するコードをそれ以外のコードに対する変 更から守る
ベースとしたい考え方 : Onion Architecture 2 コード改善のための取り組み / 問題意識の共有とチームでの合意形成 17
Webフロントエンドのコードの役割の⼤別 18 a. ユーザーインタラクション b. データの表示への反映 c. 外部へのリクエスト送受信 d. データの加工
2 コード改善のための取り組み / 問題意識の共有とチームでの合意形成
各役割とアーキテクチャとの関係 2 UI Infrastructure Domain Application a.ユーザーインタラクション b.データの表⽰への反映 19 2
コード改善のための取り組み / 問題意識の共有とチームでの合意形成
各役割とアーキテクチャとの関係 2 UI Infrastructure Domain Application c.外部へのリクエスト送受信 20 2 コード改善のための取り組み
/ 問題意識の共有とチームでの合意形成
各役割とアーキテクチャとの関係 2 UI Infrastructure Application d.データの加工 Domain 21 2 コード改善のための取り組み
/ 問題意識の共有とチームでの合意形成
コンポーネントの役割 2 UI Infrastructure Application Domain 22 a.ユーザーインタラクション b.データの表⽰への反映 2
コード改善のための取り組み / 問題意識の共有とチームでの合意形成
それ以外の役割 2 Application Domain UI Infrastructure 23 d.データの加工 c.外部へのリクエスト送受信 2
コード改善のための取り組み / 問題意識の共有とチームでの合意形成
チームに提案(⼊って1ヶ⽉半くらいの頃) 24 2 コード改善のための取り組み / 問題意識の共有とチームでの合意形成 当時作成したドキュメントの冒頭部分。ドキュメント全体のボリュームは 12,000字程度。
25 b 参考実装の作成とコーディングガイドラインの策定 2 コード改善のための取り組み
2 2 コード改善のための取り組み / 参考実装の作成とコーディングガイドラインの策定 26 参考実装: 先ほどのコードに適用するなら
2 2 コード改善のための取り組み / 参考実装の作成とコーディングガイドラインの策定 27 参考実装: 先ほどのコードに適用するなら ユーザーインタラクション のためのメソッド
2 2 28 参考実装: 先ほどのコードに適用するなら データ取得のための関数 コード改善のための取り組み / 参考実装の作成とコーディングガイドラインの策定
コーディングガイドラインの策定 29 2 コード改善のための取り組み / 参考実装の作成とコーディングガイドラインの策定 ・Web フロントエンド開発で最低限守りたいラインを項目として作成 ・Badパターンとそれをどう直すべきかの Goodパターンを並べて記載
実際のガイドラインの項⽬の⼀例 MUST (レビューで⾒つけたら指摘してほしいもの) • 命名規則⼀般 (UpperCamelCase/lowerCamelCase) • 変数宣⾔では var は使わず、
const や let を使う • as の使⽤をできる限り避ける • any の使⽤をできる限り避ける • JS ネイティブの Date オブジェクトを使⽤しない SHOULD (ベストプラクティスとしてなるべく取り⼊れたいもの) • 値が存在しないことを⽰すときには null より undefined を使う • switch ⽂で条件分岐の考慮漏れを防ぐ 30 2 コード改善のための取り組み / 参考実装の作成とコーディングガイドラインの策定
ガイドラインを導⼊することの効果 31 ・Pull Request レビュー時の 指摘ポイントの明確化 ->「ガイドラインにこう書いてあるので 」と指摘できるようになった ->担保できる最低限の品質 を決定することができた
・Web フロントエンドのコードに関する ベースラインの決定と底上げ 2 コード改善のための取り組み / 参考実装の作成とコーディングガイドラインの策定
ガイドライン導⼊についてのチームの声 32 ・コーディングガイドラインができたことで、 Web フロントエントエンドにつ い て最低限満たすべきラインができた ・TypeScript をちゃんと書こうという意識が高まった ・PR
をレビューする際に as や any についての 指摘をしやすくなった 2 コード改善のための取り組み / 参考実装の作成とコーディングガイドラインの策定
まとめ 33 ・参考実装とコーディングガイドラインを作成して実装方針をチームに導入する ・コーディングガイドラインを導入してコード品質のベースラインを定められた ・持続可能な開発のために UIとビジネスロジックを分離する
None