[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 10554] アンチパターン
高橋(智)です。
先日「サーバーサイドJavaアンチパターン」を買って読み終わったの
ですが、最初は「読書会向きかも??」と思ったものの、技術的な解説が
少ないので、推薦はしないことにしました。(^^;
ただ、コーディング規則に関する章は面白いなぁと思いまいした。特に
以下の箇所です。
著者の好みは、2、1、3、4 の順ですが、
私自身の好みは、4、1、3、2 の順かなぁ。(2,4がまるっきり逆だ...)
--- 引用 --------------
■ハンガリアン記法とスコープ
...
ハンガリアン記法は、完全なクラス属性と共通の自動変数とを明確に
区別したいときには有効`かも'しれません。
...
[よくあるバグパターン]
public class SomeClass {
protected int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public void readValueFromDatabase() {
int value = 0;
value = getFromTable(...); // どちらの「value」が使われるだろうか?
}
}
上のような例では、自動変数とローカル変数を混同しやすく、このような場合に
よく使われる4つの規則が役に立ちます。
1、属性を扱うときは、先頭または末尾にアンダースコア(_)を使います。
例; protected int _value;
2、すべての属性に this を付けます。
例; this.value = getFromTable(...);
3、メンバー属性のアクセスをアクセッサ経由だけに制限します。
例; setValue(getFromTable(...));
4、名前の重複を禁止します。ただし人為ミスはあり得ます。
例; int tmpvalue = 0;
私自身の好みは、2、1、3、4 の順ですが、どれを採用してもよいでしょう。
...
...
--- 引用 --------------
--
高橋智宏
Java読書会( http://www.t3-jpn.com/bof/ )
T3-Japan( http://www.t3-jpn.com/ )