フルスタックエンジニアのノウハウ
2020.01.08    2020.02.25

【プログラミング】関数とは機能を部品化したもの

【プログラミング】関数とは機能を部品化したもの

今回は、プログラミングの「関数(かんすう)」について説明します。


この記事で分かること

関数とは何か、どのような場合に使うのかを知ることができます。

【目次】

  • ・結論から言うと

    ・どのような時に関数を使うのか?


結論から言うと

関数は機能を部品化したもの


ちなみに関数のことを英語では「ファンクション(function=機能)」と言います。

変数や引数(ひきすう)もそうですが、プログラミング用語は日本語にすると何故か分かり辛いものも多いのですが、言葉の意味はそれほど重要ではないので、そのまま覚えてしまいましょう。


どのような時に関数を使うのか?

アプリケーションを作っていると「同じような処理」が、複数の場所でいくつも出てくることがあります。


例えば、ユーザーが入力したメールアドレスをチェックするような処理


ログイン画面のメールアドレス欄に、ユーザーが入力したアドレスが「正しい形式で入力されたかどうか?」をチェックするような場合です。


メールアドレスの入力欄はログイン画面だけに限らず、「新規ユーザー登録画面」や、「アカウント情報の編集画面」「お問い合わせフォーム」「商品購入画面」など色々な場所に存在します。


これらは全てプログラムが異なるので、同じようなメールアドレスチェック処理をそれぞれの場所に書かなければなりません。


もし、このチェック処理に後からバグが見つかって直さなきゃならない場合、全ての場所を直す必要があります。


とても面倒くさいですし、直し漏れがありそうで怖いですよね。

そんな時は、この処理を「機能部品」として共通利用出来るようにしてしまいましょう!


「入力されたメールアドレスをチェックする処理」の部分だけを取り出して、それを機能部品として共通化することが出来ます。

この共通化された機能部品のことを「関数(function)」と言います。



処理を関数化するには、部品用のファイルに以下のように関数として定義します。


①関数名(②材料){
 ③行う処理
 ④返す結果
}

①関数名は好きな名前を付けられます。

②関数に渡す材料です。

③関数が行ってくれる処理です。

④処理した結果、関数が返してくれる内容です。



先ほどの「メールアドレスのチェック処理」の場合は、以下のようになります。


①check_mailaddress (②ユーザが入力したメールアドレス) {
 ③正しい形式かどうかチェック
 ④チェック結果(OKまたはNG)
}


このように定義すれば関数は完成です。

関数として部品化しておくと、プログラム側でその機能が必要になった時に、対象の関数参照するだけで使うことが出来ます。

なので、毎回各プログラムに同じ処理を書かなくても、あそこのファイルのあの関数を見に行ってねという命令だけで済むのです。

チェック処理にバグがあった場合も、この関数自体を直すだけで済みます。



他にも例えば、


・数字を材料として渡すと、カンマ付き(1,000)で見やすくして返してくれる。

・件名、本文、宛先メールアドレスを渡すと、メールを送信してくれる。

・指定したメールアドレスのユーザーが既に登録済がどうかチェックして返してくれる。


など、再利用出来そうな便利な機能は関数化しておくようにします。

実際の現場では、「この処理は他でも使うから関数化しておいて」などと言ったりします。



なお、PHPなどのプログラミング言語にはあらかじめ便利な関数が多く備わっています。


先ほど例に出した「数字を渡すとカンマ付きにしてくれる」関数は「number_format」というものが予め用意されています。


予め用意されている関数は、PHPのマニュアルサイトにある「関数リファレンス」で確認出来ます。

https://www.php.net/manual/ja/funcref.php


また、「逆引き系」の書籍も関数を見つけるのに便利です。

PHP逆引きレシピ

https://amzn.to/2T2wcpz

PHPポケットリファレンス

https://amzn.to/35tIM3O


このように予め備わっている便利な関数や、オリジナルの関数を上手く使ってアプリケーションを組み立てていくのがプログラマーです。


なので、自分のアプリケーションで再利用出来そうな機能は、どんどん関数化しましょう。

同じような処理は一度書いたら作らなくてよいので、自分の関数資産が増えてくると、プログラミングはどんどん楽になっていきます。


関数を便利に使っていきましょう!


おすすめ記事
無料メルマガ配信中