「関数を小さくする」ことの効能
ポイント
関数の「サイズ」を小さくする | プログラマが知るべき97のこと
関数が小さいとは行数が少ないことではない
引数 x 返り値の組み合わせが多ければ多いほど関数が大きいと言える
組み合わせの数が多いほど、その関数がバグる確率が大きくなる。
以下のコードはめちゃくちゃパターンがある
code: java
boolean atari(int libertyCount)
libertyCount < 2
問題領域を意識して、その固有の型を利用することで関数の大きさを小さくできる。
以下のようなコードは、入力値が4パターンしかなくなり、関数の大きさがめちゃ小さいと言える
code: java
LibertyCount = {1,2,3,4}
boolean atari(LibertyCount libertyCount)
libertyCount == 1
関数に分けるということはその入力と出力だけがはっきりしていれば中身の処理については気にしなくていいということです
関数を分ける理由は2つある「1. 可読性の向上」「2. 変更が容易」
「関数を再利用できる可能性がある」というメリットもある
この考え方はITにおける全てのレイヤ・カテゴリで言えること
システム間で再利用できるだけじゃなく、プロジェクト間で再利用できるかもしれない
OSSやライブラリなんかは、まさにこの考え方の権化みたいなもの
関数は小さいライブラリと思えばいい
小さいメソッドに分けていくと、コードを追っていくのが大変になりますが、 適切なメソッド名を与えることで、内部の実装を見なくても 読み進めることが可能になります。
そもそも、1つ1つの機能を小さくしておくことで、テストが容易になり、バグが含まれにくくなる。
バグを含みにくくするためには、機能毎のテストを怠らないことが重要。それを容易にするためには、できる限り機能を小さくする。
車を作るときのように、単機能の部品を組み合わせてシステムを作り上げていく
機能の分割を意識しておくと、そのファイル、ディレクトリ、モジュールを別PJTで再利用できる可能性が高まる
参考
重要.icon【技術書】UNIXという考え方-その設計思想と哲学を読んだ - suzu6の技術ブログ
関数の「サイズ」を小さくする | プログラマが知るべき97のこと
関数の分け方 - Qiita
関数の書き方・分け方 - プログラミングの教科書を置いておくところ
- 不吉な匂い