2009/02/17(火)宗教派閥

某イカのコードを読まされた。帰ろうとした時に呼び止められて。
  • C な人は定数マクロを好む
  • C++ な人は enum や static const で定数を定義する
という宗教論を思い出した。

しかしこれはヒドイコードですね。マジックナンバーガツガツ入ってるし。
とりあえず、コンテンツの鮮度を表す enum 変数をビット演算できる形に定義しなおしたいと強く思った。
if (hoge < 200)... ってナンダヨ。そこはさー、if(hoge & FRESH) ... とかしたいだろ。将来的に FRESH と STALE だけじゃないステータスを追加したくなったらどうするんだよ。
大体 200 とかコードに書くなよ。ステータスコードの 200 OK かと思うだろ。

ていうか無名 enum なの?
関数の返り値をこの型で定義した方がナイスじゃね?
マジックナンバーバリバリなコードなので、そのうちマジックナンバーで値を返すバカが現れるかもよ?enum 型を typedef しとけばそんなバカの出現が防げるよ?

とってもバザールでござーるな体制がよく分かるコードですね。