POSTD PRODUCED BY NIJIBOX

POSTD PRODUCED BY NIJIBOX

ニジボックスが運営する
エンジニアに向けた
キュレーションメディア

POSTD PRODUCED BY NIJIBOX

POSTD PRODUCED BY NIJIBOX

ニジボックスが運営する
エンジニアに向けた
キュレーションメディア

FeedlyRSSTwitterFacebook
Jeff Lunt

本記事は、原著者の許諾のもとに翻訳・掲載しております。

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

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

読みやすさ

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

予測可能

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

正確さ

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

効率的

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

なぜこの順番なのか?

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

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

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

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

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

監修者
監修者_古川陽介
古川陽介
株式会社リクルート プロダクト統括本部 プロダクト開発統括室 グループマネジャー 株式会社ニジボックス デベロップメント室 室長 Node.js 日本ユーザーグループ代表
複合機メーカー、ゲーム会社を経て、2016年に株式会社リクルートテクノロジーズ(現リクルート)入社。 現在はAPソリューショングループのマネジャーとしてアプリ基盤の改善や運用、各種開発支援ツールの開発、またテックリードとしてエンジニアチームの支援や育成までを担う。 2019年より株式会社ニジボックスを兼務し、室長としてエンジニア育成基盤の設計、技術指南も遂行。 Node.js 日本ユーザーグループの代表を務め、Node学園祭などを主宰。