2009/04/14(火)閑話休題
(↑コード量で評価される職場があると本気で信じている)
例えば BOD管理プログラムでも、
- 布バルクを処理する関数
- 皮バルクを処理する関数
- 金属鎧バルクを処理する関数
- 武器バルクを処理する関数
- 鍛冶小口のみのバルクを処理する関数
長い条件分岐が関数の頭についたとしても、リファレンスが多重になっても同じ処理は少ないことの方がいいという考えで書く。「バンダナ」<->「bandana」の変換も、現状一単語しかないけどハッシュで辞書を持たせて汎用的に変換することを想定した関数を作る。
条件分岐の中身は変数の設定をしたりリファレンスの向き先を変えるだけで、分岐の中身が長いわけではない。
もちろん、短ければいい、という考えではなくあくまでも同じ処理は複数存在しない、という考え。いわゆる難読プログラムコンテストみたいなコードは書かないし、スカラー一つ分のメモリをケチる、とかはしない。
同じ処理が複数存在しない、といっても、コードパスが異なる場所に必要な場合は複数存在させる。この場合でも、完全に汎用的に書けるものは追い出す。例えば上の辞書変換みたいな関数。
正規表現についても、グローバルマッチアンカー等を使ってまとめられるならまとめる。
とか考えて書いてると、多くて数百行でお腹いっぱいになる。
いわゆるデスマーチとかの現場の人ってどのくらい書くんだろうなぁ、と気になった次第。デスマーチだと1日っていう時間単位は存在しないか。
# 最近 C 書いてねーなー