コードの匂いは人に移る
コードの匂い (code smell) といういいまわしを使うひとがいる。 Martin Fowler の『リファクタリング』が初出で、提案したのは Kent Beck らしい。
コードのまずさを「匂い」に例えるのはうまい。匂いは慣れるし、人に移るからだ。Kent Beck はそういう意図をこめたわけではないだろうけど、つまり、まずいコードに囲まれて暮らす人は、まずいコードに対する感受性 (驚き・怒り・悲しみ) を日々失っていくし、そのうち自身もまずいコードを書くようになると思う。仕事でも、趣味でも、次の職場でも。
長過ぎるメソッド、大きすぎるクラス、自動テストのないコード、コピーアンドペーストによるコードの共有。そういうものに違和感を感じなく、鼻がきかなくなるのが本当に怖い。
なので、コンパイラの警告を消すとか、外向けインターフェースを変えずにメソッドを分割するとか、コピーアンドペーストで増えたコードをまとめるとかを積極的にやっている。確認が足りなくて失敗したことも何回かあり、反省したり落ち込んだりも多々あるのだけど、まだやめていない。
Joel Spolsky の 下っ端でも何かを成し遂げる方法 は前に読んだ。いま胸をはって出来ているといえるのは 1 くらいだけど、まあ。