【プログラミング初心者向け】関数を定義するメリットは?
関数について知りたい人
「プログラミングするとき、関数を定義するのはなぜでしょうか。処理を続けて書いてしまっても同じ結果が得られるのではないですか?」
こんな疑問に答えます。
この記事を書いている私はIT業界歴12年、年収1,000万円ちょっとの金融系エンジニアです。学生時代から様々なプログラミング言語を扱ってきました。
これまでの経験を元に、今回はプログラミングする際になぜ処理を関数にするのか解説します。
(例)肉じゃがを作る作業の工程を関数で表現してみる
書籍「理系の料理」に肉じゃかを作る工程がありました。下ごしらえや煮込むなどの各作業を関数で表現した場合と関数を使わない場合で比較してみます。
関数にしない場合
関数にしない場合は、処理の内容を上から下に順番に書いていきます。
《煮汁を作る処理を書く》 ・・・ 《具材を下ごしらえする処理を書く》 ・・・ 《強火で沸騰する処理を書く》 ・・・ 《アクを出す処理を書く》 ・・・ 《弱火で20分煮込む処理を書く》 ・・・ 《盛り付ける処理を書く》 ・・・
関数にした場合
関数を使ったプログラムは、次のように書くことができます。
makeNijiru() #煮汁を作る updateGuzai() #具材を下ごしらえする boilStrong() #強火で沸騰する getAku() #アクを出す boilLow(20) #弱火で20分煮込む dish() #盛り付ける function makeNijiru(){ 《煮汁を作る処理を書く》 ・・・ } function updateGuzai(){ 《具材を下ごしらえする処理を書く》 ・・・ } function boilStrong(){ 《強火で沸騰する処理を書く》 ・・・ } function getAku(){ 《アクを出す処理を書く》 ・・・ } function boilLow(int time){ 《弱火で20分煮込む処理を書く》 ・・・ } function dish(){ 《盛り付ける処理を書く》 ・・・ }
関数にするメリット:
個別の機能を関数にすると、分離されて整理整頓された状態になる
まず、関数にしていない状態です。上から順に処理が書かれ、どこからどの処理が始まるのか一見わかりません。
プログラムを作ったときはいいかもしれませんが、時間が経ったり他の人が見たときにはなんの処理をしているのかわかりにくい状態になってしまいます。
[関数にしないと煩雑に処理が積み上がる]
一方、関数によって機能を分離すると、下の図のように整理された状態になります。これなら時間が経っても処理を追いやすいですし、知らない人が見てもどこでなんの処理をしているのかわかりやすいのです。
[関数にすると処理が整理された状態になる]
それ以外にも関数にするメリットがあります。
- 関数なら再利用ができる
- 機能単位でテストしやすい
順に解説します。
関数なら再利用ができる
関数にしておけば、何度でも別の場所からでも個別の関数を呼び出して、再利用することができます。
機能単位でテストしやすい
個別の関数ごとにテストすることができます。関数にしていないと、プログラムコード全体を使ってテストすることになり、テスト対象ではない処理まで動かさなくてはなりません。
今回は以上です。なぜプログラムで処理を関数にまとめるのかを解説しました。お役に立ちましたら幸いです。