プログラマが知るべき97のこと/コードを読む
私たちプログラマは妙な生き物です。総じてコードを書くことは大好きなのに、コードを読むとなると嫌がってしまうという性質があります。コードを書くのは楽しいのに、読むのは辛いと感じるのです。時には読むことがまったくできないときもあります。特に辛いのが、他人が書いたコードを読むことです。他人の書いたコードがひどいからではなく、思考や問題解決の方法が自分とは違っているからです。しかし、意外かもしれませんが、実は他人の書いたコードを読むことは自分の成長につながるのです。
他人のコードは、色々と考えながら読むようにするといいでしょう。まず考えるべきことは、そのコードが読みやすいか読みにくいかです。もし読みにくいとすれば、それはなぜでしょうか。フォーマットが良くないからでしょうか。命名に一貫性がなかったり、論理的でなかったりするからでしょうか。1つのコードで同時に複数の問題を扱っているからでしょうか。使われている言語のせいで読みにくいということもあります。他人のコードを読んでいて、何か間違いを見つけたら、自分がコードを書く時には同じことをしないでおこうと考えるでしょう。読んでいて、色々と驚くような発見もあるはずです。たとえば、コードの中には依存関係を持つ箇所をできるだけ作らないのがよいとされます。一般に、ある箇所と別の箇所の結合度が高いのは望ましいこととはきれないのです。しかし実際にコードを見ていると、依存関係を排除したために読みにくくなっているものも見つかります。ある人が「エレガント」と思うコードが別の人には「読みにくい」と感じられる、というのは大いにあり得ることです。
読みやすいコードを見つけたら、よく調べ、そこからできるだけ多くのことを学び取るようにすべきでしょう。知らないデザインパターンが使われていることもあるでしょうし、自分が以前実装にとても苦労したデザインパターンが使われていることもあります。同様のメソッドでも明らかに自分より簡潔に書ける人もいれば、メソッドの名前の付け方がいいので機能がすぐにわかることもあります。オープンソースプロジェクトには、読みやすく質の高いコードばかり、というものもあれば、その正反対のものもあります。コードをチェックアウトして少し見れば、どちらなのかは多分すぐにわかると思います。
以前関わっていたプロジェクトで自分が書いたコードを読み返すのも勉強になります。古いものから順に自分の書いてきたコードを読み返していくと、書いたときには読みやすいと思っていたのに、今読むとそうでもないと気づくでしょう。特にプログラミングを始めたばかりのコードを読み返すのは、恥ずかしいけれど、面白い体験になるでしょう。まるで夜にお酒を飲みながら話したことを朝に思い出すときのようです。そうやって、自分がこれまで何年もの間どうやってスキルを磨いてきたのか、それをあらためて確認すれば、また新たなやる気が湧いてくるものです。もちろん、昔のコードに読みにくい筒所が見つかったら、今も同じようなコードを書いていないか確認することも大切です。
プログラミングの技術を本気で、磨きたいと,思っているのなら、本を読むのもいいですが、一番いいのは、他人が書いたものでも自分の書いたものでも、とにかくコードを読むことです。