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

React Night #1 Reactプロジェクトに秩序をもたらす

AijiUejima
January 25, 2021

React Night #1 Reactプロジェクトに秩序をもたらす

2021/01/25 React Night #1 で登壇した際の発表資料です。

https://misokatsu-web.connpass.com/event/196285/

発表時の映像は https://www.youtube.com/watch?v=W-VHz71ygkc&feature=youtu.be から見れます

AijiUejima

January 25, 2021
Tweet

More Decks by AijiUejima

Other Decks in Technology

Transcript

  1. Single repo UI UI UI UI UI Logic Logic Logic

    Logic カオスなリポジトリ UIとロジックが密結合している テストしづらい 全員が同時に同一リポジトリで 開発を行う
  2. Logic repo UI UI UI UI UI Logic Logic Logic

    Logic Logic UI repo 解決へのアプローチ リポジトリを分けて物理的に分離し 互いの知識を共有しない
  3. Logic repo UI UI UI UI UI Logic Logic Logic

    Logic Logic UI repo 分業を可能にし テスタビリティも向上する
  4. Logic repo UI UI UI UI UI Logic Logic Logic

    Logic Logic UI repo ビルドしたものを互いに レジストリにパブリッシュ
  5. Business repo Logic packages UI packages Logic UI Logic UI

    Logic UI ビジネス用のリポジトリで初めて コレボレーションし結合する
  6. Business repo Logic packages UI packages Logic UI Logic UI

    Logic UI ロジックを分離したことで デザインの再利用もできる UI UI Other repos
  7. Mono repo Logic repo UI repo Business repo Developing dependency

    ローカルでの開発中は リンクでリポジトリ間の 依存解決が行われる (yarn workspace / Lerna) リアルタイムでパッケージの 変更と組込みを同時に行える
  8. Mono repo Logic repo UI repo Business repo Released dependency

    Other repos リリース時には レジストリ経由での 依存解決に切り替わる
  9. 実際に採用している構成 /ui /api /hooks /utils /core U L L L

    B BFFとの通信 カスタムフック (コンポーネントからAPIリクエストを隠蔽する ) 便利な共通関数 デザイン ビジネスドメイン
  10. 実際に採用している構成 /ui /api /hooks /utils /core U L L L

    B BFFとの通信 カスタムフック (コンポーネントからAPIリクエストを隠蔽する ) 便利な共通関数 デザイン ビジネスドメイン ツールを利用し破綻を防いでいる
  11. を採用 すると、 を自動生 成してくれる 自動CHANGELOG を採用すると、 パブリッシュ時のバージョン を自動的に選択 してくれる 自動バージョニング

    ローカルではシンボリックリン クによりリポジトリ間を参照して くれるため、変更を即時反映し てくれる 依存関係の解決 テスト、ビルド、開発サーバ立 ち上げなど、各リポジトリのコ マンドを一斉実行可能 依存関係を解釈し、実行順序 を自動的判断してくれる コマンド一斉実行 や 、 な ど、どのリポジトリでも使用す るものは、共通化できるため、 バージョン管理が楽 パッケージの共有 Introduce Lerna