Schi Heil と叫ぶために

hiroakiuno's blog

念のためという名のおまじない

プログラムの本や解説を読んでいると出くわす嫌いな言葉に「おまじない」がある。

  • #include はおまじないです。
  • using namespace std; もおまじないです。
  • #!/bin/sh もおまじないっす。

初学者が最初から枝葉にとらわれないようにという配慮だと思うが、実際のところおまじないな訳がないのでやめてほしい。特に人が疑問に思い質問したときに「おまじないだから気にしなくて良いよ」というアドバイスは最低だ。ちなみに #! にはシェバングという名前だってちゃんとついている。

一方、開発の現場で出くわす嫌いな言葉に「理由は分からないけどそうなっている」と「不要かも知れないが念のため」がある。

  • 理由は分からないけれどそこで 100ms の待ち時間を入れている。
  • 不要かも知れないが念のためもう一度その関数を call しておく。

「理由は分からない」の方は無知を認めているだけまだましだが、「念のため」の方は分かっている風に聞こえて実はごまかし以外の何者でもないので危険だ。その場は何とかしのげたとしても、忘れた頃にまた登場することが多い。しかも今度はパワーアップして。言わんこっちゃないあそこで止めを刺しておくべきだったのだ悟空よと。ちなみに同じ「念のために」でも「明確な理由がある念のため」は全く問題ないと思う。

さらにこれらが「昔からそうなっている」と「仕様だから」と「時期が時期だから」いう三種の神器を手に入れるととこうなる。

  • 理由は分からないけど昔からそうなっていて仕様書にも書いてあるので、不要かもしれないが時期が時期だし念のためそのままにしておこう。

まさにおまじないである。

理由を明確にする。それがおまじないにかからない一番の方法。くれぐれも念のため。