美しいコードを書いていますか? | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

ソフトウェアを自由に作り出す事ができるプログラマーですが、そのプログラミングの世界の実体はそれほど自由ではありません。

つまりは、ソースコードを書くこと自体にも色々な制約があるということです。

そういったコーディング規約などの制約は、可読性をあげる、保守性を高める、そういった目的で取り決められたルールです。


確かにそれは遵守すべきルールです。

しかし、それは車の運転ルールを定めた道路交通法ほど厳しくなく、どちらかというと単なる約束事でしかありません。

法律には制限と違反した際の罰則があります。

しかし、プログラマーが遵守すべきコーディング規則は制限はあっても罰則はありません。

理由は、違反して例え事故が起こったとしてもそれはコーディング規則を守らなかった事が原因となることはないからです。

このルールは確かに守る義務がプログラマー側にあります。

もし、そのソースを永遠に自分ひとりで保守するのであれば自分のしいたルールを適用させればよいだけですが、そういったことが仕事をする上でありえるかどうかを考えれば守らなければならないという理由はおのずと見えてきます。


しかし、そういったルールがしかれる事自体が悲しい現実なわけです。

なぜなら、多くのプログラマーはそういったルールがしかれないとそのように書かないからです。


プログラムの保守を容易にするためにはどうすればよいか?

答えは単純で「美しいコードを書けばよい」となります。


この美しさという抽象的な表現は個人によって差が出てしまうために、公平な基準で定めたコーディング規約があったりもするわけですが、少なくとも美しさにこだわったというその人の姿勢は間違ってはいません。

もしそれが本当に美しいものであり、そこから信念を読み取る事ができるまでのクオリティの高いコードであれば誰もが賞賛の声を送ることと思います。

現にコーディング規約は一つではありませんし、自分が中心となってコーディング規約を作り出しそれをプロジェクトチームに展開する事もできます。


しかし、現状そこまで美しいコードというものを少なくとも私は業務の現場で見たことはありません。

それを見ることができるのは、オープンソースのプログラムの世界でのみです。

プログラミングする事を生業としているプログラマーは、多くはその対象のソフトウェアができる事に没頭しています。


プログラムを書くことが結果的にソフトウェアを生み出すという経緯にはなりますが、システムの画面には多少のこだわりを見せるものの、プログラムにはあまりこだわらないというプログラマーもかなりいます。

そういったソフトウェアは、立派なお城を完成させたようにみえて、裏に回れば実はハリボテだったというような事態になっています。(風が吹けば一瞬にして倒壊するかもしれません)


プログラムはプログラマーが作り出す芸術作品です。

その芸術作品の美しさにトコトンこだわってみるというのもプログラマーのなすべきことの一つでは無いだろうかと感じます。