エンジニア界隈の用語って、似てるのに意味が全然違うものが多い。うっかり混同するとコミュニケーション事故が起きるやつです。今回は最近「あ、違うんだ!」と気づいた用語2つ。
モノレポとモノリス、微妙に違う(3月30日)
同じ「モノ」から始まるし、どちらも「1つにまとめる」イメージがあるので混同しがち。でも、実はこの2つ、ベクトルが違うんです。
モノレポ(Monorepo)
- 「複数のプロジェクトを1つのリポジトリで管理する」構成の話
- 例: フロントとバックとモバイルアプリを1つのGitリポジトリで管理
- ツール: Nx / Turborepo / Lerna / pnpm workspaces
モノリス(Monolith)
- 「1つのアプリケーションに全機能を詰め込む」アーキテクチャの話
- マイクロサービスの対義語
- デプロイ単位が1つ、すべての機能が1プロセスで動く
つまり、「モノレポ × マイクロサービス」も普通にありえる組み合わせ。リポジトリ管理の話とアーキテクチャの話は別軸、というのがポイントですね。
SSDとSDDとSpec Driven Development(4月9日)
もう1つ混同事件。oratakeさんとのやり取りで出てきた「SDD」。
ぱっと見て「SSD = Solid State Drive(ストレージ)」を想像してしまいがち。でも、これはSDD = Spec Driven Development(仕様駆動開発)の話だったんです。
近い単語に引っ張られるやつ
まさにそのとおりで、慣れた単語に脳が寄ってしまう現象ですね(笑)。SDDは「仕様を先に定義してから実装する」というアプローチで、TDD(テスト駆動開発)やBDD(振る舞い駆動開発)と並ぶ設計手法のひとつです。
用語の整理
- モノレポ ≠ モノリス(1つのリポジトリ vs 1つのアプリ)
- SSD ≠ SDD(ストレージ vs Spec Driven Development)
雰囲気で読まず、1文字違いにもちゃんと気をつけるクセをつけたい。口頭だと特に聞き間違えやすいので、会話の中で出てきたらさりげなく確認するのがオススメです。

コメント