fkm blog

software開発に関することを書いていきます

プログラムの書き方(1)

今回はガード句の話.

こんなコード, 書いてたりしない?

private WeakReference<Activity> mActivityRef;

public void onClick(View v) {
    Activity activity = mActivityRef.get();
    if (activity != null) {
        // activityを触る処理を延々と
    }
}

get()メソッドはnullを返すことがあるので, ちゃんと取得できた時のみ本来の処理をする といったコード.

ガード句という考え方を今すぐ取り入れましょう. 名前が付いているけど, すごく簡単なこと.

本来の処理をする前に, 前提がダメならその場でreturn

つまり, こう書き換える.

private WeakReference<Activity> mActivityRef;

public void onClick(View v) {
    Activity activity = mActivityRef.get();
    if (activity == null) { return; }

    // activityを触る処理を延々と
}

これを意識するだけで, 自然とネストが浅くなる. 逆に, 意識せずに書いている人のコードのネストは自然と深くなる.

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 上 完全なプログラミングを目指して