目的
- 実装するときに関数の責務の範囲を考えることが度々難しいと感じる
- 一定のガイドラインを一般的なナレッジから考えてみることで、日々の業務効率化を目指す
関数の責務の定義
- 一般的には「単一責任の原則」に通じると考えています。
- 「1つの関数は1つのことをするべき」だと考えます。
よい関数とは
- 目的が明確(合計金額の計算)
- 名前と処理内容が一致
- 副作用なし(純粋関数)
悪い関数とは
一つの関数で複数の責務を持っており、テストしにくく再利用もしにくい構造になっています。
チェックリスト
プログラムを書く際や、レビュワーの際は以下観点をもって確認を心がける
- この関数は「1つのこと」しかしていないか?
- 名前と中身にズレがないか?
- 関数の内容が多すぎて読みにくくなっていないか?
- この関数は他の関心事を侵していないか?