メインコンテンツまでスキップ

第1章:「書ける」と「設計できる」は別物 🧠✨

(C#が書けても設計で迷う理由)

Code vs Design


1. まず起きがちな現象:コードは書けるのに、なぜか進まない 😵‍💫🌀

C#で「動くもの」は作れるのに、次の場面で急に手が止まりやすいです👇

  • 「この処理、どこに書けばいいの?🤔」
  • 「クラス増やすべき? でも増やすと逆にややこしい?😵」
  • 「とりあえず書いたけど、あとで自分が読めない…📉」
  • 「修正しようとしたら、関係ない所が壊れた😭💥」

これ、あなたが弱いわけじゃなくて “コードを書く力” と “設計する力” が 別スキル だからです🙂🧩


2. たとえ話:作文は書けるのに、小説の構成で詰む📚✨

  • コードを書く=文章をスラスラ書くこと ✍️
  • 設計する=「章立て」「登場人物」「伏線」「視点」を決めること 🧠

文章が書けても、いきなり長編小説の構成は難しいよね?😳 プログラムも同じで、設計は “構成を決める力” なんだよ〜!😊💡


3. 設計で迷う正体:決めることが多すぎる問題 🧠⚖️

設計って、実は「正解のない決断」の連続です👇

✅ よくある“決めること”

  • どのクラスが何を担当する?(役割分担)👭📦
  • 何をどこまでまとめる?(境界線)🧱
  • 名前は何にする?(言葉の統一)🗣️
  • どこからどこへ依存していい?(つながり方)🔗
  • 将来変わりそうなのはどこ?(変化の予測)🔮

コードは「書けば進む」けど、設計は「決めないと進まない」🥲 だから迷うんだよね。


4. “動く” と “扱いやすい” は違う 🛠️😇

動くコードは作れても、こんなコードは苦しくなりがち👇

  • 変更したら別の場所が壊れる 😱
  • 似た処理が増殖する 🧟‍♀️
  • どこを直せばいいか探すだけで時間が溶ける ⏳💨
  • AIに頼むと、毎回バラバラの書き方になる 🤖🌀

つまり、設計は「未来の自分が迷わないための道しるべ」🗺️✨ (AI時代は特にここが超重要!)


5. ミニ例:「とりあえず動く」が生む“迷子コード” 🧶😵

たとえば「合計金額を計算する」みたいな処理。 最初はこうなりがち👇

public int CalcTotal(int price, int count, string coupon, bool isMember)
{
var total = price * count;

if (coupon == "SALE10") total -= 10;
if (coupon == "SALE20") total -= 20;

if (isMember) total = (int)(total * 0.9);

if (total < 0) total = 0;
return total;
}

動く。けど… ルールが増えた瞬間に地獄になりやすい😇🔥 (クーポン種類、会員ランク、上限、端数処理、キャンペーン併用…)

ここで設計があると、こういう発想に変わるよ👇

  • 「割引ルール」をひとまとめにしたい 🧾
  • 「クーポン」って文字列じゃなく、意味のある型にしたい 🏷️
  • “変更が起きそうな場所”を隔離したい 🚧

この「発想の切り替え」こそが設計力です💪✨


6. 今日から使える!迷ったときの“3つの質問” 🪄❓

設計で詰まったら、まずこれを自分に聞いてみてね😊

3つの質問

Q1. これは「何のための処理」?(目的)🎯

→ 目的が言えない処理は、だいたい散らかる💦

Q2. これは「誰の責任」?(担当)👤📦

→ “どこに書くか”は、“誰の仕事か”で決まることが多いよ!

Q3. ここは「変わりそう」?(変化)🔮

→ 変わりそうなら、まとめ方を工夫する価値がある✨

この3つが、**「迷わないためのコンパス」**になります🧭💖


7. AIを味方にするコツ:AIは“設計の相談相手”にする 🤝🤖

AIにコードを丸投げすると、部分は綺麗でも全体がバラバラになりがち😵‍💫 だから最初は「設計の会話」をしてね✨

そのまま使えるプロンプト例 💬

  • 「この関数、責務が混ざってる気がする。役割分担案を3つ出して」🧠
  • 「将来ルールが増える前提で、拡張しやすい構造の方向性を教えて」🔧
  • 「この処理、どこに置くべき?クラス候補と理由をセットで」📦

“答えを出させる”より、選択肢を出させるのがコツだよ😊🌸


8. 【ミニワーク】あなたの過去コードで“設計迷子ポイント”を見つける 🕵️‍♀️✨

過去に書いたコードを1つ選んで(小さめでOK)👇

Step1:この3つにマーカーしてみてね🖍️

  • どこが「目的が曖昧」?🎯
  • どこが「責任が混ざってる」?👤
  • どこが「変更で壊れそう」?🔮

Step2:AIにこれを聞く💬🤖

「このコードの責務の分割案を出して。分割後のクラス名も提案して」

Step3:最後に自分で一言メモ📝

「未来の自分が助かる改善は何?」✨

これだけで、設計の筋トレになります💪😊


9. まとめ:設計は“迷わないための地図” 🗺️💖

  • コードを書く力=手を動かす力 ✍️
  • 設計する力=迷わないように道を作る力 🧭
  • 迷うのは普通!むしろここから伸びる🌱
  • AI時代は「設計の言葉」を持つほど強い🤖✨

次の章では、設計が何のためにあるのか(超大事)をハッキリさせます😊📘✨ **「設計の目的は◯◯のため」**ってやつだよ〜!🎀