ソフトウェアエンジニアを目指す人へのコードに関するアドバイス

この短い記事で私は、ある素晴らしいアイデアを提案します。それは、製品品質のコードは、下記リストに挙げた特性で説明することができるということです。それぞれ、重要性の高いものから順番に記述しています。もしあなたが、学校もしくは独学でプログラミングを学ぶ、真面目な学生なのであれば、製品品質のシステムを構成するコードの特性を学びたいと思うのではないでしょうか。

是非、ご意見・ご感想をお寄せください。

読みやすさ

言うまでもなく、読みやすいコードである。
読みやすいコードは、必要に応じて簡単に変更できる。
読みやすいコードは、他の人も理解することができ、共有することができる。

予測可能

予測可能なコードは、信頼を築く。
予測可能なコードは、予想通りに壊れる。
予測可能なコードは、他の人に使われる最初のコードである。

正確さ

正確なコードは、エッジケースを含む。
正確なコードは、書くことで唯一報酬を得られるコードである。
正確なコードは、すべての既知の入力に対して、正しい結果を出力する。

効率的

効率的なコードは、実行する費用が安価である。
効率的なコードは、「これは必要か?」と聞いてくる。
効率的なコードは、必要以上のリソースを使わない。

なぜこの順番なのか?

価値のあるものを構築する際、コードが正確であることは絶対ですから、“正確さ”が一番目にリストされると思うかもしれません。ですが、それぞれの特性は次の特性の土台となるので、ほとんどの場合、この順番で構築していけば、より早く正確なコードを書けるようになるのも事実なのです。この見解が正しい理由は、次のようにまとめることができます。

もしコードが読みにくかったら、予測可能とは言い難い。
もしコードが予測可能でなかったら、偶然を除けばそれは正確ではない。
もしコードが正確でなかったら、おそらくそれは役に立たない。
もしコードが効率的でなかったら、広く役立つものとして見なされそうにない。

全てのコードが完璧である必要はない

これらのルールに明らかに当てはまらないのが一時使用のためのコードです。これには、(a)一度しか実行されないタスクのコードと、(b)問題の解決方法を調査するための単なる実験的なコードが含まれます。実際、この種類のコードは頻繁に書く必要があります。つまり、一時使用のためのコードは良いコードである必要はなく、ただ動作すればよいのです。

そこで、「間違いなく一時使用が目的のコードはどれか? これらのルールを無視しても大丈夫なのはいつか?」という疑問が出てきます。この答えは、経験によって得られるもので、実践を重ねることで身につくものなのです。