社内でコードレビューを行う機会が最近増え、良いコードとは何かについて私自身が考えることが多くなりました。
本記事では、n番煎じではありますが、現時点でどのようなコードを私が良いコードと考えているかについて、ポエムの形で記したいと思います。
1. 対象読者
本記事では次のような方を対象読者として想定しております。
- 時間が有り余っている方
- 良いコードとは何かについて意見がない方
- 良いコードとは何かについて意見がある方
2. 「良い」とはなんだ
この世の中には様々なプログラム言語があります。
HTMLやCSSなどの比較的 1 かんたんに取り組める言語 2 から、SwiftやKotlinなどのそれなりにプログラムについて知識がないと取り組みづらい言語があります。
また一口にプログラマと言っても週末に趣味で開発される方から、プログラムが生業の方まで幅広い層が想定でき、作成したソースコードについても、製品に投入されるものから研究開発に利用されるもの、または自身の勉強のためのものなど様々な物があると思います。
そのため本記事では、プログラマやソースコードの利用レベルを次のように想定し、想定した彼らにとってどのようなコードが良いコードなのかを考えることとしました。
日々プログラムを書くことを生業とし、設計からコーディングテストまで一貫して担当を行う。
必要があれば世に言う上流から下流まですべて担当する。
開発したソースコードは自社サービスに利用され、日々利用者に利用される
3. 自社サービスエンジニアにとって、良いコードとはなにか
本記事で想定した自社サービスエンジニアは次のような特徴を持ちます。
- 自分自身が開発したコードを継続的に自身、もしくは自分の同僚がメンテナンスする必要がある
- 自分自身が開発したコードにバグがあれば、即会社の評判に傷をつける、ないしは利用者に対して迷惑をかける
そのため、 彼ら にとって良いコードとは次のような特徴を持ったコードだと考えました。
-
開発者の意図が、明瞭 かつ、漏れなく 適切に伝わるプログラム
(変数の役割、期待されるメソッドの処理、返却値・・・etc) -
不要なコードが 一切ない プログラム
(必要最小限のコードで構成されていること) -
作成したソースコードの 読者が開発者のスキル不足を疑う要素がない プログラム
(適切なスキルを持った開発者が開発したことを感じられるプログラム)
4. 終わりに
様々な視点に対して「良いコード」が存在します。
別の言い方をするならば、「万人の目線に対して良いコード」は存在しません。
そのため、本記事で述べた内容は私にとっての「良いコード」であり、万人にとっての「良いコード」ではないことにご留意いただければ幸いです