バイブコーディングの土台

Day 4関数と部品化

なぜ部品化するのか

コードを小さな部品に分ける理由は3つ。重複を消す・名前で意図を伝える・テストしやすくする。

大きな1枚岩より、小さな部品の集まり

料理の全工程を1本の長い手順書にベタ書きすると、読むのも直すのも大変です。でも「だしを取る」「野菜を切る」といった作業ごとに小さなカードに分けておけば、必要なカードだけ差し替えたり使い回したりできます。これが部品化(モジュール化)の発想です。

たとえるなら

部品化はレゴブロックです。1つの巨大な塊で作った家は、形を変えるとき全部壊すしかない。でも小さなブロックの組み合わせなら、屋根だけ・壁だけを付け替えられます。プログラムも同じで、小さな [[functioclienrequest の集まりにしておくと直しやすくなります。

部品化する3つの理由

  1. 重複をなくす: 同じ処理を1か所にまとめれば、直すときも1か所で済む
  2. 名前で意図を伝える: 『税込み価格を計算する』という名前があれば、中を読まなくても役割が分かる
  3. テストしやすい: 小さな部品なら『これは正しく動く?』を1つずつ確かめられる

なぜ重複が敵なのか

同じコードが3か所にコピペされていると、仕様変更のとき3か所すべてを直す必要があります。1か所直し忘れるだけでバグ([[debu用語]の対象)になります。部品にまとめておけば、直す場所は常に1つです。

巨大な1つの関数

何でも詰め込むと、どこで何をしているか読めない

TEXT
処理する():
  ...100行の計算とか表示とか保存とか全部...

役割ごとに分けた関数

名前を読むだけで流れが分かる

TEXT
税込み価格を計算する(...)
合計を表示する(...)
注文を保存する(...)

良い関数名は「動詞 + 目的語」で、何をするかがひと目で分かるものです。名前は未来の自分と仲間への手紙。名前だけで意図が伝われば、中身を読む回数がぐっと減ります。

AIにはこう頼む

「この長い処理を、役割ごとに小さな関数に分けて。それぞれ何をする関数か分かる名前をつけて」。分割の観点を指定すると、読みやすい部品に整理してくれます。

分けすぎにも注意

細かく分けるのは良いことですが、1行ごとに関数を作ると逆に追いかけにくくなります。『1つの関数は1つの仕事』を目安に、意味のあるまとまりで分けましょう。迷ったらAIに『これは分けすぎ?ちょうどいい?』と聞いてみるのも手です。

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

同じ処理を3か所にコピペしていることの問題点として、最も正しいのはどれ?

Q2

コードを小さな部品(関数)に分けると、どんな良いことがあるか説明してください。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。