プログラミングスキルの向上しにくい人
梅村研のWebサーバにログインしてDocumentRoot以下を覗いていると、ふと妙なRubyで書かれたCGIスクリプトがあった。
ちらっと見てみたら、
if @palam.phase ==nil then @palam.phase = "db" end
ってコードがあった。
ああ、もう「お前はRubyプログラミングをわかっていない」といいたい。たまには人の書いたソースコードも読めと。
@palam が多分 @param のスペルミスとかそんなのはどうでもいい*1。Rubyはnilとfalse以外は真偽評価すると真になるし、1文程度なら後置のほうがいい。
@palam.phase = "db" unless @palam.phase
もっといえば、普通はこう書く(よね?)
@palam.phase ||= "db"
あとね、fffname って変数名とか意味わかんないから。
ちなみにこのCGIはセキュリティ的にはかなり怪しかった。クライアントから送られてくるパラメータが検査もされずにopenするファイル名の一部になっているし、出力も実体参照変換とかしていない。あとパスワードの保存が平文*2。でもまぁとりあえず外部には公開していないようなので無問題。
別にこのスクリプトの作者に限った話ではないのだが、有る程度プログラムが書けるようになっても、「とりあえず動けばいいプログラム」を書く人はいつまでたっても泥臭いプログラムを書くばかりで、「再利用可能なプログラムを書こう」とか、「もっと綺麗に書こう」とか「便利なライブラリを使おう」とかそういう思考とは無縁なことが多い気がする。具体的には某大学の某NLP研究メンバーだったりするんだけど。
単に「他人の書いたプログラム」を読む気も機会も無かっただけというか、忙しくてそういうのを勉強する暇が無いだけかもしれないが。