🍳
変数名に result をつけるな
結論
プロダクトコードの変数名に result
を書くのはもうやめよう。
説明
result
は読者に何の情報も与えていない。
知らない連絡先からメールが届いて「誰ですか?」って尋ねた時に、「人です。」って言われているのと同じぐらい何も語っていない。
99%以上の場面において result
よりも適切な変数名が存在する。
それは userInfo
かもしれないし、aggregatedReport
かもしれない。どれを選んでも result
よりは読者に情報を与える。
result
を書いてしまうのは技術ドキュメントやガイドで result
がよく書かれているからだろう。
例えば以下はJavaScriptのドキュメントページに書かれている掛け算コード。
function multiply(num1, num2) {
let result = num1 * num2;
return result;
}
引用元:JavaScript の基本
だが技術ドキュメントの中で result
が使われているのは(構文理解に焦点を当てるために)構文以外のノイズを減らそうとする読者への配慮があるからである。
ドキュメントコードとプロダクトコードでは変数の役割が異なる。
ドキュメントコードでは変数は(構文を引き立たせるための)脇役であるが、プロダクトコードでは変数が主役である。
おまけ
偉そうに言ったが自分も result
を使いたくなる時がある。
それは変数名を考えることから逃げたい時である。
名前を考えるのは正直面倒くさいしどれが正解かわからない。
でもそこにこそエンジニアの仕事の意義があると思う。
エンジニアがより伝わりやすい変数名を考えることは、料理人がより美味しいレシピを考えることと同じぐらい誇りを持てることだと思う。
変数名を3分考えることで、後の読者の3分×10人を節約できるかもしれない。
result
って書きそうになったら一度手を止めて3分考えたい。
Discussion
変数名つけるの僕も逃げたくなります。
後に見る人(未来の自分も)のためにもわかりやすいものをつけるようにします!
誰もが一目で分かるような変数名を考えることは結構大変ではあるけど、次にそのコードを読む人が何のストレスもなくスムーズにコードを読めると考えると、自分の時間を数分かけてでもちゃんと考えないといけないという責任感が生まれてきますね!