C#で1メソッド8000行を書いたツワモノがいるらしい。レガシーコード改善だっ! (nnasaki) @nnasaki 書きたくて書いたんじゃなくて、上からの命令で書いたんじゃねぇの?Cの時代でも似たような話聞いたことあるわ。オブジェクトがどうこう以前に、一つに書くのが哲学って奴いるしな。ちなみにVb6は制限のためそんなに書くと怒られます。 (uyat_) |
黙ってるとすぐ長くなるC#でも8000行はすげえな。よくそんなもの間違わずに書けるもんだ。若さだよなあ。
近頃はそういう話になるとすぐ上の呟きみたいなこと言うやつがいるわけだが、俺なら直ちにそんなことは言わない。どうしてもそうなるということはありうる。たとえば字句解析や構文解析を手書きで書いてるような場合なんかは、どうしたってひとつの関数(メソッド)がswitch文の多重ネストになったりするわけで、そういうのを一気呵成に書いたりすると関数ひとつが数千行なんていうのは簡単に出来上がることがあるわけだ。しかもそういうのに限って関数を分割するのは必ずしも可読性の向上につながらないことがある。
プログラムなんていうのは所詮人の書くものだ。コードのよしあしということは、原則は原則としてモノは何だという具体性から柔軟に判断しなければならない。本当はな。そうは言っても近頃では上に立ってるやつでもプログラマとしてはそんなにたいした経験を持ってなかったりして、何かっつーと杓子定規の規則ばかり作りたがるのが多いわけなんだ。「goto文は絶対禁止」「絶対?なんでだよ。そんなのは原則でいいんだ。絶対なんて軽々しく言うな」「××の本にこう書いてあるから禁止だ」「その本書いてんのは大学教師でプログラマじゃねえよ」「いいから禁止だ」うぜぇ、と思いつつgoto文をdo~while(0)とbreakで置換したりしてな。プログラムの意味を変えずに見た目上gotoを消す定番のひとつだ。アホかっつーの。
●
副題にくっつけたのは若いころ読んだ「プラスチック成形物語」のパロディだ。プラスチック成形加工の職人技と、折からのTQC金科玉条主義の対立のドラマとでも言ったらいい本で、縁もユカリもない分野の本ながら楽しく読んだものだった。
プラスチック成形物語 鳴滝 朋 シグマ出版 Amazon |
・・・ってAmazonにあったよ。古本なのに画像までついてたぞ。