Day 3 - 本日のサマリー: 「同じ材料」をどう料理するか、設計思想を選ぶ日
概要
- 日程: Day 3
- 本日のゴール: DOA/MDA/SOA/ROA/OOAD、MVC/MVVM/DDDの違いを比較し、開発テーマに適した設計思想を選択できるようになる
- 対応する到達目標: No.5, No.6
- 本日の成果物: 設計アプローチ比較メモ、MVC分解図、正規化考察メモ、開発手法選択メモ
🧭 今日の航海図(なぜ・なにを・どこへ)
🗣️ 要約
今日はDay2で抽出した機能・プレゼンテーションを「どう作るか」という設計思想・アーキテクチャを学ぶ POA・DOA・MDA・SOA・ROA・OOADの6つの設計アプローチと、MVC・MVVMなどの多層アーキテクチャ、開発手法を扱う ゴールは暗記ではなく、開発テーマに合う設計思想を理由つきで選べるようになること
昨日(Day2)は、情報モデルから機能とプレゼンテーションを抽出するところまで進みました。今日はその一歩先、「それをどう作るか」という設計思想・アーキテクチャを学びます。POA・DOA・MDA・SOA・ROA・OOADという6つの設計アプローチ、MVCやMVVMといった多層アーキテクチャ、そして開発手法まで、名前だけ聞くと圧倒される量の用語が登場します。しかしゴールは暗記ではなく、「自分たちの開発テーマなら、どれを選ぶか」を理由つきで言えるようになることです。今日1日かけて選んだ設計思想が、そのまま明日(Day4)の実装の指針になります。
⏱ 今日の流れ
🗣️ 要約
午前は設計アプローチとMVCで全体の骨組みを決め、午後は永続化・通信・開発手法で肉付けする 座学と演習が交互に配置され、最後にDay3まとめで設計思想の最終選択を行う
| 時間 | セッション | 形式 | このセッションで手に入るもの |
|---|---|---|---|
| 9:00-9:30 | オリエンテーション/UNIX哲学/設計アプローチ①(POA・DOA) | 座学 | UNIX哲学の考え方、POA(処理中心)とDOAの違い |
| 9:30-10:00 | (演習)開発テーマをPOA視点・DOA視点で捉え直す | 演習 | 自分たちのテーマをPOA/DOAそれぞれで書き出したメモ |
| 10:00-10:10 | 休憩 | - | - |
| 10:10-10:50 | 設計アプローチ②(MDA・SOA・ROA・OOAD)/デザインパターン | 座学 | 6つの設計アプローチの全体像、デザインパターンの目的 |
| 10:50-11:30 | (演習)「アーキテクチャ」「設計」「駆動」「アプローチ」「パターン」の違いを考察する | 演習 | 5用語の違いを説明する考察メモ |
| 11:30-12:00 | 多層アーキテクチャ(3層アーキテクチャ・MVC・MVVM・DDD) | 座学 | 3層アーキテクチャとMVC/MVVMの対応関係の理解 |
| 12:00-13:00 | 昼休憩 | - | - |
| 13:00-13:30 | (演習)開発テーマをMVCで分解してみる | 演習 | MVC分解メモ(機能名・Model・View・Controller) |
| 13:30-14:00 | 永続化 | 座学 | ACIDの4要素、RDBとKey-Valueストアの使い分け |
| 14:00-14:10 | 休憩 | - | - |
| 14:10-14:50 | (演習)RDBの正規化と情報アーキテクチャの違いを考察する | 演習 | 「正規化 vs IAの整理・分類」考察メモ |
| 14:50-15:30 | UIと機能の通信/実行方式/開発手法 | 座学 | REST/SOAPの違い、クラウドの3形態、開発手法の全体像 |
| 15:30-15:40 | 休憩 | - | - |
| 15:40-16:20 | (演習)なぜ開発手法が複数あるのか考察する | 演習 | 開発手法の選択とその理由をまとめたメモ |
| 16:20-16:30 | Day3まとめ | 座学 | 開発テーマに使う設計思想・アーキテクチャの最終選択 |
午前は「設計アプローチとMVC」で全体の骨組みを決め、午後は「永続化・通信・開発手法」で骨組みに肉付けをしていく1日です。
🎯 今日の成果物
🗣️ 要約
設計アプローチ比較メモ、MVC分解図、正規化考察メモ、開発手法選択メモの4点が完成する MVC分解図はDay4の実装でそのまま「どこに何を書くか」の地図として使う
夕方には、次の4点がチームの手元に揃っている状態を目指します。
- 設計アプローチ比較メモ(POA/DOA視点の書き出し、5用語の考察メモ)
- MVC分解図(機能名・Model担当・View担当・Controller担当を1枚にまとめたもの)
- 正規化考察メモ(RDBの正規化とIAの整理・分類の共通点・相違点)
- 開発手法選択メモ(不確実性・チーム規模・納期を根拠にした選択と理由)
これらはすべて「明日どう実装するか」を決めるための土台です。特にMVC分解図は、Day4の実装で「どのコードをどこに書くか」の地図として、そのまま使うことになります。
⚠️ 今日のつまずきポイント
🗣️ 要約
ControllerやViewに業務ロジックを書き込んでしまいやすい(表示方法を変えても使い回せるかで判断する) 設計思想や開発手法に唯一の正解を求めて議論が止まりやすいが、状況に応じた使い分けが前提
- ControllerやViewに業務ロジックを書き込んでしまう:MVC分解の演習で最も起きやすいつまずきです。「その処理は、表示方法をWebからスマホアプリに変えても使い回せるか」を自分に問いかけ、使い回せないなら書く場所を間違えているサインです。多くの受講者が最初はここでつまずくので、詰まって当然だと思ってください。
- 設計思想や開発手法に「唯一の正解」を求めて議論が止まる:POA/DOAの演習や開発手法の演習で頻出のつまずきです。今日扱う用語はどれも「優劣」ではなく「状況に応じた使い分け」です。意見が割れたら、それは良い議論ができているサインだと捉え、無理に1つにまとめずハイブリッドな結論でも構いません。
🤖 今日のAIの使いどころ
🗣️ 要約
MVCへの分解を自分たちで終えた後、AIに変なところがないか検算してもらう 用語が混乱したら、暗記の前に料理や建築のたとえで違いを説明してもらうと整理しやすい
- まず自分たちで「開発テーマの機能をMVCに分解してみる」→ 分解し終えたら「この分解、AIから見て変なところはある?」と検算に使う
- 用語が混乱してきたら、暗記しようとする前に「〇〇と〇〇の違いを、料理か建築のたとえで説明して」とAIに聞いてみると、今日出てきた用語がぐっと整理しやすくなります