google-code-prettify

2008-03-28

関数名は、「その関数を呼ぶ事で何をしたいか」ではなく「その関数が何をするか」を表すべき

tech@netbsdに、関数名の付け方の話でおもしろい話が出ていた。

=====

関数名は、
「その関数を呼ぶ事で何をしたいか」
ではなく
「その関数が何をするか」
を表した名前をつけるべき。

例えば、lockのリファレンスカウントを増やす関数を作る時は、
lock_retainやlock_holdという名前は適さない。

なぜなら、これらの関数名は、
「リファレンスカウントを増やす事で、呼び出し側がlockをretainしたい」
という、呼び出し側の立場で名前が付けられているから。

「その関数が何をするか」
という立場で名前を付けるなら、lock_increfのような名前にするのが良い。

=====

まあ、関数名には慣習もあったりするので、
ここまで厳密にルールを適用する必要は無いかもしれないが、
心に留めておこう。

0 件のコメント: