2011年7月1日金曜日

真偽値を使わない人たち

プログラマーの技量を見分けるひとつの判断材料として、

「真偽値を使わずに数値や文字列でフラグ管理する。」

というものがあるような気がします。

もちろん使わない人は技量が低い(と思われる)プログラマーです。

これは明らかに2値しか持たない真偽の判定を行う要素での話です。
なぜかこう実装してしまうんです。

データベースの設計でもそのようでして、
イレギュラーなデータがバンバン入り得る設計を生み出します。
真偽値 + NOT NULLで完全二値になる(はずな)のに…
(ちなみに大抵10桁前後の文字列型にされていることが多いです。なぜ?)

処理が集合の世界の話に限定されてより分かりやすいと思うのですが、
どうやらその集合を嫌っているらしいのです。
…いえ、集合という概念を知っているかどうかという段階からでしょうか?

そういう人たちって否定演算子も拒否反応があります。
愚直に論理積と論理和ばっかりで、0と1のオンパレードです。
さらに厄介なのは、
そういう人たちが作ったコーディング規約です。

典型的なシステムハンガリアン…っと思ったら真偽値が入ってない!
システムハンガリアンを強制する上に真偽型まで奪うのか!?

っと、ソースを修正していて感じました。

※例外として、
  「真偽値を使わずにビットフィールドでフラグ管理する。」
  なんて人たちがいます。
  これは組み込み系のテクニックなので、全くの別問題です。


追記:やっぱりC言語からの移行に失敗した弊害なのでしょうか?
    C99が普及しないのも、こういった人たちのせい?(真偽型はC99から)


さらに追記:バカは自分だ…なんだよ真偽型って…真偽値に修正しました。

0 件のコメント:

コメントを投稿