Upgrade to Pro — share decks privately, control downloads, hide ads and more …

フロントエンドチームでリアーキテクチャを行っています!

Avatar for Maple Maple
July 22, 2024

 フロントエンドチームでリアーキテクチャを行っています!

Avatar for Maple

Maple

July 22, 2024
Tweet

More Decks by Maple

Other Decks in Programming

Transcript

  1. 現状のフロントエンドの構成 
 
 
 Request Go Router Go Template Vue

    • TemplateもGoが持っている
 • Templateが担っている役割
 ◦ metaデータの挿入
 ◦ DBにアクセスしたデータを templateに渡す
 ◦ Vueファイルのimportおよびマウント
 ◦ 部分的にコンポーネントを使用している場合もある 

  2. • マウントされているコンポーネントを見つけるのが大変
 • in-DOMのRoot Component Templateがつらい(Go Template)
 • アーキテクチャが採用されていないため現状正しい書き方の参考がない
 •

    OptionsAPIとCompositionAPIの書き方が混在している
 • 影響範囲を特定するのが難しい etc…
 リアーキテクチャの背景と必要性 

  3. 具体的に何をするの? 
 
 
 • フロントエンドとバックエンドのリポジトリを分ける
 ◦ CIに現状時間がかかりすぎている、 BackendのCIも同時に回ってしまう 


    • Vueをやめる
 • Routerをフロントエンドで持つ
 ◦ SP/PC/APPでtemplateを切り替えてる(コンポーネントで切り替えたい) 
 • Reactのアーキテクチャを決める

  4. 新しいアーキテクチャの理想 
 • FEとBEを分離する
 • SSR & ISR
 • 全部Reactに置き換える


    • Reactのアーキテクチャ
 ◦ GitHub - fuuki12/Frontend-Framework-Architecture: 新しいフロントエンドアーキテクチャ 
 ◦ FEチームでReactのリアーキテクチャを行おうとしています! 

  5. featuresアーキテクチャの特徴 
 • 機能ごとに疎結合が実現 領域毎の認知負荷を合わせる 
 • 機能単位での改善が多いため、不要なリグレッションを避けることが可能 
 •

    機能を削除する際には、ディレクトリごと削除するだけ 
 • featuresディレクトリを見ることで、プロダクトにどのような機能があるのか一目でわかる 
 • 複数でうまく分担できるようにする 
 この下に機能毎にディ レクトリを切る