前回の続きと、この講義の役割

前回の続きと、この講義の役割

前回のE-06では、同じ処理を繰り返すループを学びました。今回はその一歩先、処理そのものに名前を付けて部品にする関数へ進みます。E-01で見た入力・処理・出力という3要素を、名前を付けて呼び出せるようにまとめたものが関数です。これまで積み上げてきた道具を一つの単位に束ねる、カテゴリEの中心となる回です。

このスライドのポイント

  • 前回(E-06): 同じ処理を繰り返すループを学んだ
  • 今回: 処理そのものに名前を付けて呼び出せる部品にする=関数
  • E-01の入力→処理→出力を、一つの単位にまとめる
  • カテゴリEの中心となる回

関数・引数・戻り値の定義

関数・引数・戻り値の定義

関数とは、処理のまとまりに名前を付け、引数という入力を受け取り、戻り値という出力を返す単位です。この引数は、B-08で学んだコマンドの引数と同じ発想で、関数に渡す入力を指します。関数が処理の結果として返す値が戻り値です。一度定義しておけば、同じ処理を何度でも呼び出せます。たとえば税込計算のようにまとまった処理へ名前を付けておけば、その名前を書くだけで中身をやり直さずに済みます。これが再利用という、関数の最大の利点です。

このスライドのポイント

  • 関数=処理のまとまりに名前を付けた単位
  • 引数=関数が受け取る入力(B-08のコマンドの引数と同じ発想)
  • 戻り値=関数が処理の結果として返す出力
  • 一度定義すれば何度でも呼び出せる=再利用

なぜ関数を読める必要があるのか

なぜ関数を読める必要があるのか

関数が読めないと、何に困るのでしょうか。AIが生成するコードの大半は、実は関数の集まりです。ですから、この単位が読めないと、コード全体の構造がつかめません。逆に、関数ごとに「何を受け取って、何を返すのか」を見られるようになると、コードを部品単位で確認できます。一つ一つの関数の入口と出口さえ押さえれば、コード全体を一度に理解しようと身構える必要はなくなります。これがコードレビューの基本単位になります。

このスライドのポイント

  • AIの生成コードの大半は関数の集まり
  • 単位が読めないと、コード全体の構造がつかめない
  • 関数ごとに「何を受け取り、何を返すか」を見る
  • これがコードレビューの基本単位になる

関数の構造——定義と呼び出しは別

関数の構造——定義と呼び出しは別

関数の構造は、箱の絵で捉えると分かりやすくなります。左の入口から引数が入り、中で処理が行われ、右の出口から戻り値が出ていきます。E-01の入力・処理・出力が、そのまま関数の形になっています。もう一つ大事なのは、関数を「定義する」ことと「呼び出す」ことは別だという点です。定義は部品を作る作業、呼び出しはその部品を使う作業です。

このスライドのポイント

  • 関数の箱: 引数の入口→処理→戻り値の出口
  • E-01の入力・処理・出力が、そのまま関数の形になる
  • 「定義」=部品を作る作業/「呼び出し」=その部品を使う作業(別物)

Webアプリでの具体例——税込計算の部品化

Webアプリでの具体例——税込計算の部品化

具体例で考えます。税込金額を計算する処理を関数にしておくと、どうなるでしょうか。経費の計算でも、請求書の計算でも、同じ関数を呼び出すだけで済みます。もし計算方法を直したくなっても、修正するのは関数の中身の一箇所だけです。同じ処理をあちこちに書き散らさず、一箇所にまとめられるので、バグの入り口そのものが減っていきます。

このスライドのポイント

  • 税込計算を関数化すると、経費でも請求書でも同じ関数を呼ぶだけ
  • 修正は関数の中身の一箇所で済む
  • 処理を一箇所にまとめる=バグの入り口が減る

技術サンプル——関数の定義と呼び出し

技術サンプル——関数の定義と呼び出し

サンプルを見てみましょう。taxIncludedという名前の関数を定義し、priceという引数で価格を受け取っています。returnの右側にある、priceに1.1をかけた値が戻り値です。下の2行では、この関数を1000と500という別々の値で2回呼び出しています。定義は一度きりですが、呼び出しは何度でもできるという再利用の形が、ここに表れています。AIには「この関数の引数と戻り値の型は何ですか、何を渡すと壊れますか」と聞いてみましょう。

混同しやすい——定義と呼び出し

混同しやすい——定義と呼び出し

混同しやすいのが、関数の定義と呼び出しの違いです。関数を定義しただけでは、まだ何も実行されません。部品を作って棚に置いた状態です。実際に処理が動くのは、その関数を呼び出したときだけです。「関数を書いたのに動かない」という場合、呼び出しを忘れているケースが少なくありません。書くことと使うことは、別の操作だと押さえておきましょう。

バイブコーディングでの確認点

バイブコーディングでの確認点

バイブコーディングでの確認点です。AIが生成したコードは、関数ごとに「入力・出力・役割」を1行で説明させてみてください。これはE-01の入力・処理・出力を、関数という単位に当てはめる確認です。もしAIがある関数をうまく説明できないなら、その関数の設計が曖昧になっているサインです。質問例としては「この関数の入力、出力、役割を、それぞれ1行で説明してください」が使えます。

このスライドのポイント

  • 関数ごとに「入力・出力・役割」を1行で説明させる(E-01の3要素の適用)
  • 説明できない関数は、設計が曖昧なサイン
  • 質問例: 「この関数の入力・出力・役割を、それぞれ1行で説明してください」

一問一答とまとめ

一問一答とまとめ

最後に一問一答です。関数が返す結果を、何と呼ぶでしょうか。(間)答えは、戻り値です。30秒でまとめます。関数とは、入力である引数を受け取り、処理して、出力である戻り値を返す、名前の付いた再利用可能な部品でした。定義と呼び出しは別の操作だという点も、あわせて押さえておきましょう。次回は、複数のデータをまとめて扱う配列へ進みます。関連資料は「リファクタリング指示文50」と「AI開発ワード100」です。

このスライドのポイント

  • 一問一答: 関数が返す結果を何と呼ぶ?→ 戻り値
  • 30秒まとめ: 関数=引数(入力)を受け取り、処理して、戻り値(出力)を返す、名前の付いた再利用可能な部品/定義と呼び出しは別の操作
  • 次回: 複数のデータをまとめて扱う配列へ
  • 関連資料: 「リファクタリング指示文50」「AI開発ワード100」