トップ «前の日記(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|10|12|
2020|04|12|
2021|12|
2022|12|
2023|03|12|
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. 青木@管理人 (10-09)
  2. こいち (10-09)
  3. 万年初心者 (04-01)
  4. 青木@管理人 (03-31)
  5. 万年初心者 (03-31)



  • 12月31日
    永劫回帰?!
  • 03月14日
    ランチに超高級カップ麺を食す。
  • 12月31日
    無為自然。
  • 12月31日
    今年もあと少し・・・
  • 12月31日
    大晦日。
  • 04月29日
    PCR検査陽性者数っていつの陽性者数?
    • 1. 日々の陽性者数はほぼほぼ意味無い。
  • 04月23日
    コロナ禍に思うこと。
    • 1. よんどころない話です。軽く読み飛ばしてください。
  • 04月22日
    買うとおカネが貰える?!
    • 1. 原油の価格がマイナスってナニソレ?!
  • 04月20日
    コロナ禍に思うこと。
    • 1. せめてもの報い。
  • 12月31日
    生きるということ。