サブルーチン化について(1)

その昔若い同僚プログラマが冗長な関数を書いていたので、「この関数のこの部分をサブルーチン化すると読みやすくなるよ」と教えたことがあります。

その時返ってきたのが「ここでしか使わないような関数を作っていいんですか?」というものでした。

確かに複数個所で実行される処理を共通化するというのは関数を作ることの意義の一つではありますし、彼はそれに忠実であるべしと考えたのでしょう。

それに対し当時の私は「ソースコードの可読性を上げるために局所的な関数を作るのはアリなのでどんどんやっていいよ」と教えました。

今でもそれは間違ってはいないとは思っているのですが、アドバイスとしては不十分だったように思います。

彼が新しく関数を作るべきかどうかを迷ったのは、関数が呼ばれる時に内部で何が起こっているかに対する知識不足に起因するものだったのではないでしょうか?

次以降の記事ではそのような観点から関数をサブルーチン化することのメリット・デメリットを書いていきたいと思います。