毎日使う多くの製品の手書きコードを見たら、みんな驚くんじゃないかな。私は大企業やスタートアップで働いてきたけど、プロダクションに出るひどいコードには最初は驚かされたよ。これは誰かを批判するつもりじゃないし、私も悪いコードを出したことはあるから。締め切りは、私の意向に反しても存在し続けることがある。時には、顧客やマネージャーを喜ばせるためにハックを出さなきゃいけないし、そのハックをより良いコードに置き換えることはなかなか起こらない。ちなみに、私が書くほとんどの初稿はあまり良くない。私が愚かだと思うかもしれないけど、私だけじゃないと思う。きれいで最適化されたコードを書くのは、たいてい2回目か3回目のドラフトだから、最初のドラフトを終えるまで問題や前提を完全には理解してないと思う。私の個人プロジェクトでは、最初の10回くらいのコミットは結構ごちゃごちゃしてて、その後にクリーンアップ用のブランチを作って、コードを少しマシにするんだ。これは本質的に悪いことじゃないけど、たいていはコードの2回目や3回目のドラフトを作る時間が与えられないから、初めの「とりあえず動かす」ドラフトがプロダクションに出ちゃう。あまり好きじゃないし、BigCoで自分の名前がついたコードが漏れたら怖いけど、企業の世界ではそういうもんなんだよね。