「アーキテクチャ」「設計」「駆動」「アプローチ」「パターン」の違い考察
概要
- 日程: Day 3 / セッション 05
- 時間: [11:35-12:00]
- 形式: 演習
- ゴール: 5つの類似語の違いを情報アーキテクチャの手法(カテゴリ分け)で整理した表を作成し、自分の言葉で説明できる
- 学習形式: AIディスカッション
導入(5分)
ここまでDay 3だけでも、いろんな言葉が出てきました。
- 「設計アプローチ」(DOA、SOAなど)
- 「アーキテクチャ」(3層、MVC、MVVMなど)
- 「ドメイン駆動設計」(DDD)
- 「デザインパターン」(GoFのSingletonなど)
似ているけど違う。違うけど重なる。ここがエンジニアの混乱しがちなポイントです。
今回はDay 1で学んだ「整理と分類」「LATCH法」「カードソーティング」の考え方を使って、これらの言葉を自分なりに整理してみます。情報アーキテクチャの手法を、自分の頭の中の概念整理に応用する演習です。
本編(15分)
1. 5つの言葉
| 言葉 | 英語 | 例 |
|---|---|---|
| 設計 | Design | システム設計、UI設計 |
| アーキテクチャ | Architecture | MVC、3層、マイクロサービス |
| 駆動 | Driven | TDD、DDD、BDD |
| アプローチ | Approach | DOA、OOAD、SOA、ROA |
| パターン | Pattern | Singleton、Observer、Factory |
これらは「同じ階層の言葉」ではありません。粒度や視点が違います。
2. IAの観点で並べてみる
LATCH法(Location/Alphabet/Time/Category/Hierarchy)のうち、特に「Hierarchy(階層)」と「Category(カテゴリ)」が役立ちます。
階層で並べる(抽象度の順)
抽象度: 最も広い概念"] A --> B["アプローチ (Approach)
設計の方針"] B --> C["アーキテクチャ (Architecture)
具体的な構造"] C --> D["駆動 (Driven)
何を起点に進めるか"] C --> E["パターン (Pattern)
定型的な解法"]
カテゴリで分ける
| カテゴリ | 説明 | 例 |
|---|---|---|
| 活動を表す言葉 | 何をする行為か | 設計(Design) |
| 方針を表す言葉 | どんな考え方で進めるか | アプローチ、駆動 |
| 構造を表す言葉 | どんな骨組みにするか | アーキテクチャ |
| 解法を表す言葉 | 困ったときの定型解 | パターン |
3. 1文ずつで言い換える
それぞれを「○○とは△△である」の形で言い切ってみます。
- 設計とは、つくり方を決定する活動である
- アプローチとは、設計の進め方の方針である
- アーキテクチャとは、システムの構造の骨組みである
- 駆動とは、開発を進める**起点(中心)**である
- パターンとは、頻出する課題に対する定型解である
ここがポイント
言葉の違いを整理するときは「同じ階層に並べると重複や矛盾が見える」のがコツです。これはDay 1のカードソーティングと同じ手法です。
4. 具体例で見分ける
「ドメイン駆動設計(DDD)」を分解してみましょう。
- 「ドメイン」: 中心に据えるもの
- 「駆動」: ドメインを起点に進める方針
- 「設計」: 設計という活動の名前
つまりDDDは「ドメインを起点(駆動)に、設計(活動)を進める方針」と読めます。
「3層アーキテクチャ」なら、
- 「3層」: 3つの階層
- 「アーキテクチャ」: 構造の骨組み
= 「3つの階層に分けた構造の骨組み」となります。
コラム
カタカナ用語を分解して翻訳すると、意外と意味が掴めます。「マイクロサービス・アーキテクチャ」=「小さなサービス(マイクロサービス)を組み合わせた構造(アーキテクチャ)」。「リアクティブ・プログラミング」=「反応(リアクティブ)するプログラミング」。「あ、なるほど」と腹落ちする瞬間が増えます。
💬 AIに聞いてみよう
ここまでの内容で疑問があれば、AIに質問してみましょう。たとえば:
- 「『デザインパターン』と『アーキテクチャパターン』は何が違うの?」
- 「『ドメイン駆動』と『テスト駆動』は同じ『駆動』だけど、何が起点になってる?」
- 「『フレームワーク』『ライブラリ』『パターン』の階層関係は?」
演習(10分)
課題
チームで以下を実施してください。
- 5つの言葉(設計/アーキテクチャ/駆動/アプローチ/パターン)について、自分たちなりの整理表を作成
- それぞれに今日出てきた具体例を3つずつ当てはめる
- AIに「この整理は妥当か? 改善点は?」と聞いてフィードバックを受ける
成果物
- 整理表(5行 × 「定義/例3つ」の形式)
- 5つの言葉それぞれを1文で説明したメモ
ヒント
- 完璧を目指さない。「自チームが納得できる整理」がゴール
- AIの答えと自分の整理が食い違ったら、どっちが正しいかではなく「なぜ違うか」を考える
- 言葉の意味は文脈で変わる。「アーキテクチャ」が「設計」とほぼ同義に使われる場面もある
まとめ(5分)
似た言葉でも、IAの手法(階層・カテゴリ)で整理すると違いが見えてきます。Day 1で学んだ「整理と分類」は、情報の世界だけでなく「自分の頭の中の概念整理」にも役立ちます。
ここまででDay 3午前パート(3-1 設計アプローチ全般)が終了。午後はいよいよ「永続化」「通信」「実行方式」「開発手法」と、より具体的な実装に近いトピックに入ります。
🔄 振り返りチェック
- 5つの言葉をそれぞれ1文で説明できますか?
- 「DDD」「3層アーキテクチャ」「Singletonパターン」を、どの言葉の階層に位置づけるか答えられますか?
- IAの「整理と分類」の手法を、概念整理に応用した手応えはありますか?
補足資料
- 参考リンク: Day 1セッション07・08(整理と分類・LATCH法)の振り返り
- 発展課題: 自分が知っている「○○駆動」「○○指向」「○○アーキテクチャ」をすべて洗い出し、整理表を埋める
学習ガイド
想定される質問と回答例
| 質問 | ヒント |
|---|---|
| 言葉によって人によって使い方が違うのはなぜ? | 業界・時代・文脈で意味が変わる。「正しい定義」より「文脈で察する」のが現場 |
| アーキテクチャと設計はほぼ同じに見える | 重なる部分は大きい。アーキテクチャ=大きい構造、設計=活動全般、と覚えると整理しやすい |
| パターンは設計? アーキテクチャ? | パターンは「定型解」。設計の中の道具、アーキテクチャの中の部品 |
つまずきやすいポイント
| つまずきポイント | ヒント |
|---|---|
| 完璧な定義を求めて時間が溶ける | 「自分のチームで通じる定義」を目指す。学術論文じゃない |
| AIに聞いたら回答が毎回違う | 当然。文脈やプロンプトで変わる。複数の回答を見比べて自分なりに整理 |
| 言葉の違いを覚えるだけになる | 自分の開発テーマに当てはめると定着する。「自分のチームのアプローチは何?」と問う |