2014年3月25日火曜日

コードは「簡潔」に。「短く」ではない。

プログラミングにおいて、コードは「簡潔」に書くようにしよう、とはよく言われることですね。冗長な書き方を排し、スッキリ読めるようにすることは大切なことです。その点にケチを付けるつもりはありません。

しかし、「簡潔」とは「短く」という意味ではありません。最も重要なのは、読んで処理の流れが分かりやすいことであって、短いほうかがそうなるかというと、僕は違うと思います。むしろ、あまりにコードを短くすることは、かえってコードを分かりにくくします。今プロジェクトでRubyを使っていますけれども、特にRubyのように豊富な組み込みライブラリを持ち、1つの処理を無数の方法で書けるような言語に関しては、短く書こうと凝り過ぎた記述がむしろ難読化を招くという罠があります。

もちろん、処理の流れを分かりやすく書こうと努力することで自然にコードが短くなり、見た目も美しくなるという副作用が発生しますから、見た目の美しいコードは読みやすいという法則があるのは確かなのですが、見た目の美しさとコードの短さは必ずしもイコールではありません。

さらにタチの悪いことに、同じ処理を短く書けるということは使用する言語に対するマニアックな知識がないとできないので、短いコード=高い技術力という思い込みにも陥りがちであるように思います。しかし、よく考えて見れば、書いた人以外が読むのに苦労するようなコードを書く人間が本当に技術力が高いと言えるのでしょうか。むしろ、本来ならば難しいはずの処理を、簡単に分かるようにコード化して見せられる人間の方が、高い技術力があるといえるんじゃないかと、僕は思います。

プログラミング以外においても「難しいことを難しく説明するのは凡人であり、本当に頭のいい人間は、難しいことを易しく説明できる人間だ」とよく言われますけれども、プログラミングにおいてもこれは同じことだと思います。

※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうぞ。

0 件のコメント:

コメントを投稿