Qiita初投稿になります。普段プログラムを書く時に気をつけていることを
自分のためにも一回まとめてみたいと思います。
きほんのき ではあるんですが、一番大事なことかなって思います。
今回は変数についてです。
真偽値を書く時の命名規則
正しい例
- isXXXX
- doXXXX
- canXXXX
ダメな例
- checkXXX
- XXXX
true の場合に何を指しているかというのが重要です。
check は何の説明にもなっていないのでダメです。
is などをつけていない場合もクラス名などと間違いやすいため、ダメです。
変数のスコープは極力大きくしない
ほとんど private です。
クラス内しかアクセスできないように閉じ込めておきます。
他のクラスからアクセスする時
Get や Set のアクセサメソッドを用意します。
ただし、オブジェクト型を Get で渡してしまうと外でいじられることがあるので、
必要なければ中の値のみを渡します。
private Object object;
public Object getXXXObject(){
return object;
}
では大きすぎるので、必要なものがもっと少ないならば、、
private Object object;
public int getXXXObjectNumber(){
return object.number;
}
これだといじられなくて安心です。
オブジェクトごと渡さないとままならない場合もあるのですが、
まず最初に値だけで済まないかどうか考えた方が後で苦労しません。
固定した値を使う場合は極力 enum か定数を使う
グループ化されたもの
グループ化されているような場合(例えば複数のタイプのIDなど)、
enum を使います。その際は言語によってはできるので、実際の値として数値を設定します。
public enum XXXType {
typeA = 1,
typeB = 2,
typeC = 3
}
設定しておくと何がいいかというと、何か設定情報としてテキスト保存などを行う機会もあるからです。
単独の値の場合
また、設定情報の保存をしたいが、enum に値が設定できなかった場合は、
const を利用します。
public const String MAIN_COLOR = "#fad3b2";
定数だが最低限の計算が伴う場合
public final int oneDaySeconds = 60 * 60 * 24;
定数は定数でも計算が伴うものは Java の final のようなもので定義します。
今回の例の場合、予め計算していたものを入れておけばいいっていう話しもあるのですが、
計算自体のコストよりもパッと見でわかるメンテナンス性の方が大事と考えるからです。
とりあえず今回はこの辺にしておきます。
また他の項目についても書いていきます。