命名
指針
具体事例で考える
ツールを使う
略語辞典
翻訳
参考
かつ、冗長になりすぎないようにすることが求められる
本当に正確に表現するなら、形式的な記述になってしまう
「state」じゃなくて、「AのときはBになって、CのときはDになるもの」みたいな名前になる
一貫性
同じものには同じ名前を使う
別のものには同じ名前を使わない
適切な抽象度の名前を使う
抽象度が高いと全部同じものとして扱えてしまう
根拠を持って命名を下すことがかなり難しいよねmrsekut.icon
選択肢を5個出して、それらの中から根拠を持って1つを選ぶのも難しいし、
的確なものがその5個の中にそもそも入ってないかもしれないし
その現場で使われている親しみのある単語の方がふさわしいこともある
それを読んで、パッと概念が頭に想起するほうが大事だったりする
常にゼロベースで名前を見直す
最初に命名した時点の名前に引っ張られずに、仕様の更新と共に名前とマッチしているかを見直す
型がアレば情報量が増えるので、名前の重要性が下がる
コードがごちゃごちゃする
似た名前の長い変数めいの区別がつかない
e.g.
XYZControllerForEfficientHandlingOfStrings
XYZControllerForEfficientStorageOfStrings
覚えづらく、チャンキングが難しくなる
単語の長さそのものよりも、音節の数が多いことのほうが問題
grep時に探すのが大変
grepなどで探すのが大変
実際、プログラミングしてる時、「これ微妙だよな〜」と思いつつも、より適切な単語がわからないときがあって、だからといって調べたりせずにそのままスルーするんだがmrsekut.icon
ああいうのは、反省ポイントとしてどこかにメモっておくほうがいいのかもしれないな
ミスった記憶はあるが、積み重ねになっていない気がする
というかこれ、染み付き過ぎてもはや、変数名をあまり信用しなくなってしまってる気がする
型の方が情報量多い感じ
『リーダブルコード』とかの命名時の気をつけポイントも読んでるときは「せやな〜」という感じはするが、どれだけ実践できているかは不明だし、 今考えられる最善の命名をして、後にズレたら修正する、というのはよくあるループだと思うmrsekut.icon
「今考えられる最善」をどう見つけるか、の言語化が必要
「語呂合わせをしない」の節も
同じ操作に対して、getやfetchやretrieveのような揺れを起こさせない
とはいえこれ難しいよなmrsekut.icon
コード規約を用意するか、全体を知っている人に細かくレビューをしてもらうか
命名していくことは、世界に分節を与えることに近く、それって言語論的転回のような世界認識とも近いな、と感じた 動的型付け言語では無闇に省略した命名をしないほうがいいのではと思ったmrsekut.icon
例えば、error messageみたいな単語って、
errMsgと書いても普通に伝わると思うが、
errMessageとerrorMsgなどが混在していると、型がない場合推測不可能である
だから常に正式にerrorMessageと命名することになりそう
明確に命名規則が決まっているならそれでいいんだけども
メソッド名に書かれた以上の働きをするメソッド
実際の働き以上のことをするかのごときメソッド名
メソッド名に書かれたのと真逆のことをするメソッド
実際に格納されているよりも多くのものが含まれているかのごとき識別子名
実際に格納されているよりも含まれているものが少ないかのごとき識別子名
実際に格納されているものと真逆な識別子名
英語