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
フロントエンドチームでリアーキテクチャを行っています!
Search
Maple
July 22, 2024
Programming
0
280
フロントエンドチームでリアーキテクチャを行っています!
Maple
July 22, 2024
Tweet
Share
More Decks by Maple
See All by Maple
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
270
検索機能リプレイスを4ヶ月→2ヶ月に! AI Agentで実現した2倍速リプレイス
fuuki12
4
1.2k
Other Decks in Programming
See All in Programming
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
330
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
580
AIエージェントの設計で注意するべきポイント6選
har1101
6
2.9k
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
170
ゆくKotlin くるRust
exoego
1
180
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
5
310
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
140
TestingOsaka6_Ozono
o3
0
260
チームをチームにするEM
hitode909
0
430
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
230
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.4k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Utilizing Notion as your number one productivity tool
mfonobong
2
190
Visualization
eitanlees
150
16k
Scaling GitHub
holman
464
140k
My Coaching Mixtape
mlcsv
0
19
Google's AI Overviews - The New Search
badams
0
880
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
54
Side Projects
sachag
455
43k
How to Talk to Developers About Accessibility
jct
1
94
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
Chasing Engaging Ingredients in Design
codingconduct
0
93
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.5k
Transcript
フロントエンドリアーキテクチャを⾏お うとしています! SODA Dev Talk #2 #SODADev
株式会社SODA • 2024年02月~ Webフロントエンドエンジニア • 入社後は、Webの抽選機能やLPの開発を行っていました。 伊藤
楓基
None
Agenda • 現状のフロントエンドの構成 • リアーキテクチャの目的 • リアーキテクチャの背景と必要性 • 具体的に何をするの? •
新しいアーキテクチャの理想 • feature構造 • まとめ
現状のフロントエンドの構成
現状のフロントエンドの構成 Request Go Router Go Template Vue
現状のフロントエンドの構成 Request Go Router Go Template Vue
• ブラウザ • スニダンアプリ
現状のフロントエンドの構成 Request Go Router Go Template Vue
• GoでRoutingを行っている
現状のフロントエンドの構成 Request Go Router Go Template Vue
• TemplateもGoが持っている • Templateが担っている役割 ◦ metaデータの挿入 ◦ DBにアクセスしたデータを templateに渡す ◦ Vueファイルのimportおよびマウント ◦ 部分的にコンポーネントを使用している場合もある
現状のフロントエンドの構成 • webpackでビルド ◦ SFC ◦ 1エントリーポイント1ファイル吐き出す
• TypeScript • CSS Request Go Router Go Template Vue
リアーキテクチャの⽬的
• 複数チームでうまく分担して開発できるシステムアーキテクチャにする • それぞれの開発チームがそれぞれ同じくらいの認知負荷で開発が回っていくように したい • 全体としてユーザーへの価値提供を最速で行えるようにする リアーキテクチャの目的
リアーキテクチャの背景と必要性
• マウントされているコンポーネントを見つけるのが大変 • in-DOMのRoot Component Templateがつらい(Go Template) • アーキテクチャが採用されていないため現状正しい書き方の参考がない •
OptionsAPIとCompositionAPIの書き方が混在している • 影響範囲を特定するのが難しい etc… リアーキテクチャの背景と必要性
具体的に何をするの?
具体的に何をするの? • フロントエンドとバックエンドのリポジトリを分ける ◦ CIに現状時間がかかりすぎている、 BackendのCIも同時に回ってしまう
• Vueをやめる • Routerをフロントエンドで持つ ◦ SP/PC/APPでtemplateを切り替えてる(コンポーネントで切り替えたい) • Reactのアーキテクチャを決める
新しいアーキテクチャの理想
新しいアーキテクチャの理想 • FEとBEを分離する • SSR & ISR • 全部Reactに置き換える
• Reactのアーキテクチャ ◦ GitHub - fuuki12/Frontend-Framework-Architecture: 新しいフロントエンドアーキテクチャ ◦ FEチームでReactのリアーキテクチャを行おうとしています!
リアーキテクチャ図 Request Next Server React Component App Router
API Request feature構造
feature構造
featuresアーキテクチャ Layer型 Feature型
featuresアーキテクチャの特徴 • 機能ごとに疎結合が実現 領域毎の認知負荷を合わせる • 機能単位での改善が多いため、不要なリグレッションを避けることが可能 •
機能を削除する際には、ディレクトリごと削除するだけ • featuresディレクトリを見ることで、プロダクトにどのような機能があるのか一目でわかる • 複数でうまく分担できるようにする この下に機能毎にディ レクトリを切る
featuresアーキテクチャのデメリット • 機能の少ないプロダクトやリリース初期のプロダクトはfeature構造を使用しないよう ほうが良い ここになんの機能毎にき るのか迷ってしまう&肥 大化してしまう
まとめ • まだ机上段階ではあるが、FEエンジニアの全員で熟考を行っているので、失敗しな いものを作れると考えている • 多角的視点で見ることを行う • 導入絶対行います!
質問は Xに #SODADev のハッシュタグをつけてポストをお願いします 質疑応答
ご清聴ありがとうございました