結構、サボってしまったのですが、開発生産性カンファレンスに参加し、色々刺激をもらったので、コツコツと書いていこうと思いました。
次の考え方です。
考え方4
- 名は体を表していますか?
前提として、私はクラス名であったり、メソッド名変数名はかなり気をつけて設定すべきだと考えています。特に今後一定期間運用で利用されることが想定されるものはそうです。
私は、Javaのプロダクトに携わることが多いのですが、過去にオフショア拠点へ開発委託したソースコードの納品で、下記のようなものがありました。
※Xxxx部分、条件の詳細は忘れました
private boolean isXxxx(引数){
引数がXxxxの場合 return false;
それ以外 return true;
}
このメソッドを利用している別メソッド(それほど難しくない)をリファクタリングしている際に、思った通り動かず数時間を浪費しました。
メソッドは名前と振る舞い(戻り値)が逆になっていたことが原因です。boolean型だったことも気づくのが遅れた要因だったかもしれません。booleanは結果が2択でシンプルであるため、私は利用することを好みますが、シンプルが故に一度誤解すると、それが解けにくいように思っています。
他の人、将来の自分に誤解を与えないためにも、用途と名前は一致するように実装しましょう。
名称に関することは、あと2つほどあるのですが、それは別途書きます。