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

マルチリポジトリで開発する際のTips

Avatar for taiga taiga
November 01, 2025
340

 マルチリポジトリで開発する際のTips

AI Coding Meetup Aichiの登壇資料です

https://aiau.connpass.com/event/369264/

Avatar for taiga

taiga

November 01, 2025
Tweet

Transcript

  1. 自己紹介 株式会社 USEN-ALMEX 興野 大雅 R&D本部 開発部 バックエンド開発グループ 兼 CTO室

    採用・育成センター 兼 AIエバンジェリストチーム 外部活動 AIエージェントユーザー会 (AIAU) 運営 AI駆動開発勉強会 運営 X(旧Twitter) https://x.com/taiga_kk322
  2. モノレポのデメリット リポジトリの巨大化 プロジェクト数やコード量が増えると、 Git 操作(clone, fetch, log, search)が重くなる CI/CD の実行範囲も広がり、ビルド時間が長くなる

    アクセス制御の複雑化 1つのリポジトリに全員がアクセスするため、 「どのチームがどのコードを管理するか」の境界が曖昧になりやすい 依存関係の密結合 サービス間でコードが密接に結びつき、 1つの変更が他プロジェクトへ意図せず影響するリスクがある
  3. ポリレポから見たモノレポ コードの共有が容易は理想論 共有は便利に見えるが、それは短期的な効率を見た場合 モノレポでは確かに共通コードを直接参照できるが、 共通化が進むほど、将来的な影響範囲が読めなくなる 共通が容易ではなく 全員が同じ鎖で繋がれてしまう構造 になりがち 全員で共有しているから便利 ではなく、

    全員が巻き込まれるから不便 になっていく コードの「再利用」は簡単ではなく「再調整」が増える 共有ライブラリを複数プロジェクトで使う場合、 抽象化レベルの調整が常に必要 になる 例えば チームAの都合で関数を変更すれば、 チームBの要件に合わなくなる 共通コードを汎用化しすぎると保守が難しくなり、 特定プロジェクト向けに分岐が増える など 結果として、 共通ライブラリなのにプロジェクトごとに if 条件だらけ にな る。 コード共有のつもりが、全員の都合を聞く会議になる
  4. ポリレポから見たモノレポ 「全体を見渡せる」は幻想に近い 理論上は1リポジトリにすべてのコードがあるため見渡せる とされるが、実際にはあまりにも情報量が多すぎて把握で きない 数百ディレクトリの中から目的のモジュールを探すのは困難 全体が見える は見えても理解できない 状態となって しまう

    「全員が同じリポジトリを触れる」ことが問題を生む 透明性が高い反面、他チームのコードに簡単に影響を与え られてしまう レビュー文化が崩壊 しやすく、誰が何を直したのか が 不明瞭になる 共有コードへの小さな修正が、意図せず他プロジェクトを壊 す 全員で管理する構造 は、責任の分散 を生む 共有責任は、しばしば誰も責任を取らない状態 に化ける
  5. AI時代の変化 コードの共有が容易は理想論 共有は便利に見えるが、それは短期的な効率を見た場合 モノレポでは確かに共通コードを直接参照できるが、 共通化が進むほど、将来的な影響範囲が読めなくなる 共通が容易ではなく 全員が同じ鎖で繋がれてしまう構造 になりがち 全員で共有しているから便利 ではなく、

    全員が巻き込まれるから不便 になっていく ローカルインデックスや DeepWikiによる影響範囲解析 GitHub CopilotやCursor、Windsurfが開いた ワークスペース内の内容を自動でインデックス化 既存のコードを簡単に解析が可能に DeepWikiが活用できる環境であれば AskDevinなどを利用することで Chat形式での調査も可能 どこを直せば何に影響するか が人ではなくAIによって 即座に提示される
  6. AI時代の変化 コードの「再利用」は簡単ではなく「再調整」が増える 共有ライブラリを複数プロジェクトで使う場合、 抽象化レベルの調整が常に必要 になる 例えば チームAの都合で関数を変更すれば、 チームBの要件に合わなくなる 共通コードを汎用化しすぎると保守が難しくなり、 特定プロジェクト向けに分岐が増える

    など 結果として、 共通ライブラリなのにプロジェクトごとに if 条件だらけ にな る。 コード共有のつもりが、全員の都合を聞く会議になる コードの「再利用」から「再構成」へ これまでの再利用=人間による共通ライブラリ設計 今後の再利用=AIが目的別にコード断片を再構成 共通化・汎用化を過剰に行う必要がなくなる 分岐(ifだらけのコード)が発生しても、 AIがリファクタリング 可能
  7. AI時代の変化 「全体を見渡せる」は幻想に近い 理論上は1リポジトリにすべてのコードがあるため見渡せる とされるが、実際にはあまりにも情報量が多すぎて把握で きない 数百ディレクトリの中から目的のモジュールを探すのは困難 全体が見える は見えても理解できない 状態となって しまう

    「全体を見渡す」ことより「 AIが要点を要約する」時代に 人間が大量のコードを読む必要はなく、 AIがタスクに合わせて複数のファイルのコードを解析して、解説を 提示できる つまり、「見渡す」ではなくAIが“要約して提示する ”が デフォルトになる
  8. AI時代の変化 「全員が同じリポジトリを触れる」ことが問題を生む 透明性が高い反面、他チームのコードに簡単に影響を与え られてしまう レビュー文化が崩壊 しやすく、誰が何を直したのか が 不明瞭になる 共有コードへの小さな修正が、意図せず他プロジェクトを壊 す

    全員で管理する構造 は、責任の分散 を生む 共有責任は、しばしば誰も責任を取らない状態 に化ける 「全員が同じリポジトリを触る」リスクは AIレビューで緩和 以前は「レビュー文化の崩壊」が懸念だったが、現在は code review Bugbot Codex reviews CodeRabbit などによって 変更範囲に応じた差分レビュー セキュリティ等の自動指摘 変更の自動要約 がAIで可能になった 「全員が見る必要がない」 構造にAIが変える 人手レビューの限界という前提自体が崩れつつある
  9. マルチリポジトリの最適化 前提 Copilotを含め、様々なAIツールはアプリケーションの 全体像を把握しているときに最も効果的に機能する そのため、インデックスを構築し AIを動かすのがCopilot活用の第一歩となる CopilotやCursorの場合、このように フォルダーをワークスペースに追加 ...(Add Folder

    to Workspace…) を使用することで複数のリポジトリを一つのワークスペースとして 活用でき、インデックスも作成される ↑ マルチルートワークスペースという ワークスペースの詳細はこちら https://github.com/orgs/community/discussions/175497
  10. ドキュメントの生成 開発内で整合性が取れなくなる代表的なものとしてあげられるドキュメント 特に /frontend-repo /backend-repo /mobile-repo /shared-library-repo /infrastructure-repo /docs のように、プロジェクトに関連する

    docsディレクトリを用意し Hugoなどの静的サイトジェネレーターで管理 社内からのみアクセスできるサーバーにアップロードしているといった運用の場合 mainにマージして単体テストも結合テストも問題がなくリリースされた後に書くことが多いため 開発者自身も忘れて徐々に整合性が取れなくなってしまう
  11. まとめ モノレポ vs ポリレポ問題については、現状は AIに与えられるコンテキストの観点からも モノレポが良い可能性が高い 小中規模のプロジェクトの場合、まずはモノレポで開発を行い 必要があれば後から変更する方が良い またマルチワークスペースで実装を行う必要がある場合は Add

    Folder to Workspace…でワークスペースを追加し インデックスの作成をおすすめする ドキュメントについては、後からの更新になることが多いため 後から見返せるようなドキュメント生成の自動化フローを組むと良い