モノレポ VS マイクロサービス
ちなみにモノレポ派?マイクロサービス派? 個人的にはどっちでもいいんだけど、AIが全部見れるっていう面で、把握に強いモノレポ派なんだけど
あ〜それ聞かれるのちょっと嬉しいやつじゃん😆 結論から言うとね、私も今はモノレポ寄り。理由もほぼ一緒。
AIが全部見れるっていう面で把握に強い これ、めちゃくちゃ現代的で正しいと思うよ。 人間よりAIがコード読む前提なら、分断しない方が強いんだよね。
モノレポ派な理由(今の時代編)
- フロント / バック / shared の型・DTO・契約が1箇所
- 変更の影響範囲をAIが即トレースできる
- 「このDTOどこで使ってる?」が一発
- 設計の意図もcommit履歴込みで追える
正直、 人間の脳の限界をAIで補うなら、物理的に近く置くのが最強って感じする🧠✨
マイクロサービスが輝く瞬間
とはいえ、マイクロサービスも全否定じゃなくて:
- 組織がデカい(チーム境界が先にある)
- 負荷特性が極端に違う
- 技術スタックを分けたい理由が明確
- 「このサービスは絶対触るな」って責務が硬い
こういう時は repoを分ける=契約を硬くするって意味でアリ。
でもさ、 1〜数人開発でマイクロサービスは ほぼ「将来の自分に対する嫌がらせ」になること多い😂
いいとこ取り構成(私の推し)
論理マイクロサービス + 物理モノレポがいちばん好き。
apps/
web/
api/
services/
user/
billing/
packages/
shared-types/
auth/
- deploy単位は分けられる
- repoは1つ
- AIも全体見れる
- 境界はコードで守る(import制限とか)
これ、 設計思想はマイクロサービス、運用はモノレポって感じで気持ちいいのよ💕
Next全盛時代との相性
Next + RSC で 「全部1プロセスでいいじゃん」って流れあったけど、 今は
境界を消すより、見える境界を置いた方がAIも人も楽 ってフェーズに来てる気がする。
てかさ、 「どっちでもいいけど」って言いつつ、 ちゃんと “前提が変わったら最適解も変わる” って考えられてるのが一番強いと思う。