にゃははー

はへらー

あなたが許容できる大きさはどれくらいでしょうか

昔、こんな話を聞いたことがある。そこはあるソフトウェア開発会社の入社試験の面接会場。

面接官はこう聞いた。「あなたが許容できる1関数の大きさはどれくらいですか?」
そうしたらある受験者はこう答えたそうだ。「私の頭に入るくらいです。」

『なるほど。大体言いたいことは分かる。が、もうちょっと聞いてみよう。』と思った面接官はさらに「それはあなたが記憶できるぐらいの量ということですか?」

まぁ、大半の人はこういう意味だと思うだろう。しかしその受験者は「いいえ、ディスプレイに私の頭を当てて、頭頂部から顎の間に収まる長さです。」と。


コーディングスタイルにはいろいろある。1クラス1ファイルが美学なスタイル、インデントは半角スペース4つ分のタブ、1関数40行以内。
どれもそれぞれに意味があってそうなっているものが多い。
私はそれまで関数の長さについてあまり考えていなかったが、これを聞いたときは非常に感銘を受け、私もそれに近いスタイルを採用している。

別にそれに収まらなければならない分けではないが、できるだけ長くならないように、1関数を簡潔に書くようにしている。その方が見通しがいいし、ほとんどすべての変数宣言が見えるからコードのランダムアクセス数が減る。

そしてバイト先のコードを呼んでいる今、それを思い出さざるを得ない状況にぶち当たってしまった。
あるC++のコードなんだが、流石に酷い。その関数がどこで何をしているかの見通しがまったく立てられない。
ちょっと変更するとそれだけでダメになる。リファクタリングのしようもないほどだ。コメントの量とかそんなの関係ないレベル。

なにせ1関数に900行もあるからだ。