プログラミングの研修で「関数を作るタイミングっていつですか?」と質問があったときの紹介をします。
参考書に載っているサンプルプログラムは理解できるようになった、短いプログラムなら自分で作成できるようになった。
次はもっと大きなプログラムを作成したいが、プログラムが長くなってしまって、なんだかモヤモヤを感じるプログラミング初心者から中級者に向かうときの話です。
関数を作成するメリット
「プログラムが長くなってしまった場合は、関数を作成するとプログラムが読みやすくなるよ」とアドバイスを受けても、プログラミング経験が少ないと、そもそも関数を作成するポイントがよく分からないと思います。
例えば以下のようなメリットです。
- 可読性が向上する
- 同じ処理を何度も書かなくてもよい
- 単体テストがしやすい
シンプルに考える
プログラミング初心者が関数を作成する目的として、こんなスローガンはどうでしょうか?
「シンプルで使いやすい機能を作ったら、皆が使えて、皆がハッピーになる」
このスローガンをイメージしてかみ砕いていきましょう。
イメージしてみる
大きなプログラムを作成すると、どうしてもプログラムが長くなり、長くなるほど不具合が発生しやすくなります。当然、作成にたくさんの時間がかかります。
皆がハッピーになる関数って何かイメージしてみましょう。
・・・ 同じ処理は関数にまとめるとプログラムは短くなるのでは?
・・・ シンプルで使いやすい機能(関数)なら皆のプログラムでも使えるのでは?
・・・ 皆が使うようになると、皆のプログラムも短くなるのでは?
・・・ 関数として作成しておくと、テストがしやすくて不具合が発生しにくくなるのでは?
なんだか、皆がハッピーになれる気がする!
どういう関数がよいか
皆(自分も含む)に使ってもらうことを前提にするので、以下の点に気を付けます。
- 機能がシンプルで分かりやすい
- 関数名で機能がイメージしやすい
- 不具合がない / 見つけやすい
この点で自分の長くなってしまったプログラムを眺めてみて、関数にした方がよいものを探します。
参考になるもの
プログラム言語には「標準ライブラリ」という最初から用意されている関数(標準関数)があります。
現時点で自分が良く使う標準関数の関数名や機能を参考にしてみましょう。
こうなったらよいを逆算する
今回の話は「手段ではなく目的から考えよう」でした。
「関数を作成する」を目的にすると、なぜ必要なのか?という点が見えなくなります。
関数を作成することは「手段」なので、その先の目的を一度整理してみてはいかがでしょうか?