投稿

4月, 2012の投稿を表示しています

よいコーディングとはなにか?

私が駆け出しプログラマーだったころからずっと疑問だったことがある。 それは「よいコーディングとはどういうコーディングなのか?」というものだ。 読みやすく、理解しやすいコーディング 必要なことしか書いてないコーディング メンテナンスしやすいコーディング データ中心に設計されているコーディング いろいろな表現があるが、どれもどんぴしゃという感じがしなかった。 それが何十年もたった今になってようやく1つの答えを見つけた。 そのきっかけは、会社の若手社員の何気ない質問だった。 「アーキテクチャーって日本語ではなんというんですか?」 「構造よ。」と答えたあとで違和感が残った。建築物のつくりも「構造」というが、システムの「構造」とは微妙に違う気がする。同じ「構造」なのに、どこが違うのだろう? 私のイメージでは、建築物の構造は「静的」、システムの構造は「動的」な感じがする。 なぜシステムは動的な感じがするのか? それは、システムには動いているもの、流れるものが存在しているからだ。 してみると、自然界のシステム、交通システム、発電システム、 経営システム、どれもその中に流れているものがある。 何かの流れを制御して、目的を果たすのがシステムなのだ。 そういえば、システムにもよいシステムと悪いシステムがある。 悪い交通システムは頻繁に交通渋滞が発生する。 よい交通システムは、交通量が変動しても交通渋滞が発生しない。 つまり、流れが変動しても流れが滞ることなく、スムーズに流れるシステムがよいシステムなのに違いない。 よりよいコーディングとは、よりよいシステムを作れるコーディングだ。 それはコーディングを流れるもの、つまりデータの流れ方がよく見え、流れの変動・変化への対応が容易で、流れをスムーズに制御できるようになっているコーディングなのだ。 こうして駆け出しプログラマの疑問は二十数年の時を経てようやく解決したのだった。