🍳

変数名に result をつけるな

2023/12/02に公開
2

結論

プロダクトコードの変数名に 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分考えたい。

O-KUN Tech Blog

Discussion

rikutorikuto

変数名つけるの僕も逃げたくなります。
後に見る人(未来の自分も)のためにもわかりやすいものをつけるようにします!

k-motok-moto

誰もが一目で分かるような変数名を考えることは結構大変ではあるけど、次にそのコードを読む人が何のストレスもなくスムーズにコードを読めると考えると、自分の時間を数分かけてでもちゃんと考えないといけないという責任感が生まれてきますね!