クリーンなコードはプログラマを豊かにする

これは、「理解することが書き直すことを意味するとき」から引用したグラフ。

プログラマは何に一番時間を使っていると思う?「コードを新規に書くこと?」「コードを修正すること?」いやいや「コードを理解すること」。グラフでは「コードを理解すること」に70%使う。私も感覚値ではこのくらいかな。実際は設計を考えたりする時間もあるけど、今回はコードを読み書きするところに焦点をあてる。

新規のコードを書いて、少しコーヒー飲んで一服してくると、すぐに古いコードになる。自分で書いたコードを再度読んで理解して、コードを追加したり、修正したりする。このサイクルが続くとコードが増えて読み理解する量がどんどん増える。
既存のコードを書き換えるのは言うまでもなく、まず、コードを理解しないと修正できない。過去自分が書いたコードならまだしも、他人が書いたコードを理解するのは本当に時間がかかる。

「理解する」とは、つまり「コードを読むこと」。汚いコードを読むのはとても大変。動くけど、汚いコードというは「負の遺産」とまで言われる。汚いコードは将来の「理解する」時間を余計に取る、つまり負債となる。これが、「負の遺産」といわれる所以じゃないかと思う。

仕事の大半、つまりプログラマの仕事の大半は「理解すること」といっても過言ではないと思う。これはもしかしたら、営業や経理といった他の仕事にも当てはまるんじゃないかな。

この「理解する時間」を短縮することが、プログラマの人生を豊かにする上で重要なことじゃないかと感じる。「なんで動くのに修正するのさ」ということも理解できるし、コードレビューやリファクタリングが大切なのもこれで分かる。

「クリーンなコードはプログラマを豊かにする」

じゃあ、クリーンなコードってなんなのさ。というのは、たくさんクリーンなコードを読んで理解していくしかないと思う。