命名
指針
名前の長さとスコープの大きさを対応させる
具体事例で考える
booleanの値や関数の命名
ツールを使う
abbreviations.com
略語辞典
codic
https://codic.jp/engine
翻訳
参考
/mrsekut-book-4048930591/046 (第2章 意味のある名前)
/mrsekut-book-4798068535/169 (Chapter 8 よりよい命名を行う方法)
/mrsekut-book-APoSD/Chapter14 名前の選び方
#WIP
ラベルのみから正確にシニフィエを想起できるを果たしている
かつ、冗長になりすぎないようにすることが求められる
本当に正確に表現するなら、形式的な記述になってしまう
「state」じゃなくて、「AのときはBになって、CのときはDになるもの」みたいな名前になる
それは抽象としての命名としての役割を果たせていない
一貫性
/mrsekut-book-APoSD/14.4 名前を一貫して使用する
同じものには同じ名前を使う
別のものには同じ名前を使わない
適切な抽象度の名前を使う
抽象度が高いと全部同じものとして扱えてしまう
根拠を持って命名を下すことがかなり難しいよねmrsekut.icon
選択肢を5個出して、それらの中から根拠を持って1つを選ぶのも難しいし、
的確なものがその5個の中にそもそも入ってないかもしれないし
的確な英訳を名前にすることが正しいとも限らない
その現場で使われている親しみのある単語の方がふさわしいこともある
それを読んで、パッと概念が頭に想起するほうが大事だったりする
https://speakerdeck.com/fujimura/ru-men-ming-qian
『リーダブルコード』
https://github.com/kettanaito/naming-cheatsheet#compose
https://kde.hateblo.jp/entry/2019/05/06/181639
WEB+DB PRESS VOL.110に「名前付け大全」というのがあって、良いらしい
https://qiita.com/tutinoco/items/85641c0819d813186f9d
常にゼロベースで名前を見直す
命名は気付いた時に直せばいい
最初に命名した時点の名前に引っ張られずに、仕様の更新と共に名前とマッチしているかを見直す
/kawasima/命名のプロセス
https://qiita.com/MinoDriven/items/37599172b2cd27c38a33#名前を設計する
型がアレば情報量が増えるので、名前の重要性が下がる
名前が長いことの問題点
コードがごちゃごちゃする
似た名前の長い変数めいの区別がつかない
e.g.
XYZControllerForEfficientHandlingOfStrings
XYZControllerForEfficientStorageOfStrings
覚えづらく、チャンキングが難しくなる
/mrsekut-book-4798068535/181
単語の長さそのものよりも、音節の数が多いことのほうが問題
名前が短いことの問題点
grep時に探すのが大変
マジックナンバーを使わないことの弊害
grepなどで探すのが大変
実際、プログラミングしてる時、「これ微妙だよな〜」と思いつつも、より適切な単語がわからないときがあって、だからといって調べたりせずにそのままスルーするんだがmrsekut.icon
ああいうのは、反省ポイントとしてどこかにメモっておくほうがいいのかもしれないな
ミスった記憶はあるが、積み重ねになっていない気がする
というかこれ、染み付き過ぎてもはや、変数名をあまり信用しなくなってしまってる気がする
型の方が情報量多い感じ
ユビキタス言語の設定はその意味でも重要だとは思う
『リーダブルコード』とかの命名時の気をつけポイントも読んでるときは「せやな〜」という感じはするが、どれだけ実践できているかは不明だし、
/nwtgck/WIP: 個数を表す変数名をどうするか問題 - count ? num ? 複数形のs ?
今考えられる最善の命名をして、後にズレたら修正する、というのはよくあるループだと思うmrsekut.icon
「今考えられる最善」をどう見つけるか、の言語化が必要
https://zenn.dev/wsuzume/articles/bb2bdca52206ab
下ネタになってしまう命名
xxxってダメなんだ
たまに書いてしまっている気がする気をつけよう(?)
1つのコンセプトには1つの単語
ref 『Clean Code』 pp. 54-55
「語呂合わせをしない」の節も
同じ操作に対して、getやfetchやretrieveのような揺れを起こさせない
とはいえこれ難しいよなmrsekut.icon
運用でカバーする他ない
コード規約を用意するか、全体を知っている人に細かくレビューをしてもらうか
だらだら長いクソデカmethodのCode Readingしてるときに、
命名していくことは、世界に分節を与えることに近く、それって言語論的転回のような世界認識とも近いな、と感じた
動的型付け言語では無闇に省略した命名をしないほうがいいのではと思ったmrsekut.icon
例えば、error messageみたいな単語って、
errMsgと書いても普通に伝わると思うが、
errMessageとerrorMsgなどが混在していると、型がない場合推測不可能である
だから常に正式にerrorMessageと命名することになりそう
明確に命名規則が決まっているならそれでいいんだけども
言語的アンチパターン
Venera Arnaoudova
/mrsekut-book-4798068535/200 (9.2 悪い名前が認知的負荷に与える影響)
メソッド名に書かれた以上の働きをするメソッド
実際の働き以上のことをするかのごときメソッド名
メソッド名に書かれたのと真逆のことをするメソッド
実際に格納されているよりも多くのものが含まれているかのごとき識別子名
実際に格納されているよりも含まれているものが少ないかのごとき識別子名
実際に格納されているものと真逆な識別子名
https://qiita.com/honey32/items/4ea8833cc8bf5047df6e
英語