トップ «前の日記(2008-11-17) 最新 次の日記(2008-11-20)» 編集

かにの泡ぶく


2008-11-19 直感的であること。

_ 空のif文。

『青木さんって空のif文使うんですね』

って、たまに言われることがあります。だからどうというわけでは無いのですが、たまに『なんで ! 使わないんですか?』と質問されることもあったりして。

そう大した話ではありませんが、今日は少し私のコーディングスタイルについて書いてみましょう。

自分の性格がそうなのか自分でもよくわからないところが多々あるのですが、『直感的であるかどうか』を私はとても重視します。これは、コードに限らず、操作性であったり、デザインであったり、道順であったり・・・全てのことについて言えることです。

それを踏まえて以下のコードを見てみましょう。

例1:エラー処理-その1。

  エラーコードを格納する変数 errCode の値を見て、エラー処理を行うコード。   正常終了時には 0 が戻り、エラー発生時には 0以外 が戻る関数の場合。
  errCode = DoEffect();
  if (errCode) {     HandleErrror(errCode);   }
  この場合は、私も上記のように普通に書く。

例2:エラー処理-その2。
  関数のStatusを格納する変数 success の値を見て、エラー処理を行うコード。   正常終了時には TRUE が戻り、エラー発生時には FALSE が戻る関数の場合。

  success = DoEffect2();
  if (success) {     ;   } else {     HandleErrror2();   }
  と書く。以下のように書いても同じことだけど、以下のようには書かない。
  success = DoEffect2();
  if (!success) { // !偽 が 真 という表記がなんかこうしっくりこない。     HandleErrror2();   }
  でも、以下のように書くことはたまにある。
  success = DoEffect2();
  if (success == FALSE) { // でもやっぱりこういう書き方は滅多にしない。     HandleErrror2();   }
  また、空if文方式の場合、将来関数成功時に行う処理が追加になっても・・・
  success = DoEffect2();
  if (success) {     DoProcess(); // 2008.11.19 追加の処理。   } else {     HandleErrror2();   }
  という感じで極めて自然で直感的な流れになる。

どうです? ニュアンスお分かりいただけますでしょうか?

if文は、評価式が FALSEでない こと判定して if文内に入るというのが基本構造です。ですので、変数単体で条件判断できる場合、その変数が FALSEでない時(すなわちTRUEな時) になにをして、そうでないときにはなにをするという 『見た目の』 構造にしておきたいのです。! を使って論理を反転させたくないんですね。それに、! って、見落としがちじゃありません? まぁ、1文字ずつ頭で理解しながらコードを見ていけば見落とす心配は無いのですが・・・

まぁ、実のところ私自身にもそうする確固たる理由はなかったりするのですが、なんとなく、こういうスタイルのほうがこうしっくり来るんです。ほとんど趣味趣向の話かも。

_ 空のif文-その2。

さりげなくGoogleで "空のif文" で検索してみたら、あらら、結構話題になっている話だったのですね。賛否両論のようですが・・・

まぁ、私としては、if文が空かどうかよりも、分かりやすいif文構造、分かりやすい条件評価式記述のほうが、よっぽど重要だと思います。if文のカッコ内に複数の条件評価を長々と詰め込む書き方は、私はあまり好きではありません。すこし面倒で(記述的に)冗長になってしまいますが、複数の条件式をいっぺんに評価する場合、以下のように書きます。

  if (
       (redValue >= k_Threshold)
    && 
       (greenValue >= k_Threshold)
    && 
       (blueValue >= k_Threshold)
    ) {
    DoProcess();
  }

だめですかね?

_ 【株】含み損拡大中・・・

こんな地合いだとほんと、現物売買のみだと正直辛いです。とはいえ信用売買は私の信条に反するのでここはじっと耐え忍ぶしかないところです。

どんなに長い夜でもいつかは必ず明ける。必ず朝はやって来る。

おぅ。


もっと読みたい奇特なかたは、↓の読みたい月をクリックしてね。
2000|04|
2005|01|02|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|03|04|12|
2015|09|12|
2016|04|05|12|
2017|12|
2018|09|12|
2019|02|03|
2008年
11月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30


最新ツッコミ

  1. 青木@管理人 (09-11)
  2. 青木@管理人 (09-11)



  • 03月24日
    備忘録:各所の照度。
    • 1. 各所の照度測定(自分用メモ)。
  • 03月02日
    修復完了~
    • 1. 過去の日記の挿入画像、いちおう全て修復完了したつもりです。
  • 02月18日
    突然ですが・・・
    • 1. 過去の日記の挿入画像を修復中です。
  • 12月31日
    時は淡々と流れる。
  • 09月11日
    かにの泡ぶく破壊!
    • 1. まったくもう。
    • 2. Google検索ボタン付けてみた。
  • 12月31日
    新しい第一歩に向けて。
  • 12月31日
    平凡な日々を積み重ねて生きたい。
  • 05月07日
    デジタルカメラの画像処理。
    • 1. 思えば遠くに来たもんだ。
    • 2. 大雑把な流れ。
    • 3. デジタルカメラのホワイトバランス。
    • 4. ホワイトバランスの動き。
    • 5. 感度比をどうやって求めるか?
    • 6. 固定ホワイトバランス。
    • 7. オートホワイトバランス。
    • 8. ホワイトバランスシミュレータ。
    • 9. お仕事絶賛募集中〜 (^^)/
  • 04月29日
    久しぶりに更新。
    • 1. 大変ご無沙汰しております。
    • 2. お仕事募集〜 (^^)/
    • 3. 近況。
    • 4. 鎖骨骨折。
    • 5. 快晴だけど風強し。
  • 12月31日
    日々を積み重ねることで見えてくるもの。