LoginSignup
2

More than 5 years have passed since last update.

プログラムを書く時に気をつけていること(変数編)

Last updated at Posted at 2017-12-07

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 を利用します。

constの例
public const String MAIN_COLOR = "#fad3b2";

定数だが最低限の計算が伴う場合

時間など
public final int oneDaySeconds = 60 * 60 * 24;

定数は定数でも計算が伴うものは Java の final のようなもので定義します。
今回の例の場合、予め計算していたものを入れておけばいいっていう話しもあるのですが、
計算自体のコストよりもパッと見でわかるメンテナンス性の方が大事と考えるからです。


とりあえず今回はこの辺にしておきます。
また他の項目についても書いていきます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2