Skip to content

Instantly share code, notes, and snippets.

@sunaot sunaot/naming.md
Last active Jun 12, 2019

Embed
What would you like to do?
名前をつける

レビューコメントから

「問合せている」のは手段で、目的として得たいものは別ですよね。名前は実装や手段ではなく、意味や意図、結果、目的に対して付けます。
実装じゃなくて意味に付けようって話はコードコンプリートに書いていて、たぶんリーダブルコードにも書いていて、超基本的なんですが最重要なので、すべての名前で今自分はなにに対して名前を付けたのかを自問自答する癖をつけるのをおすすめです。

Clean Code より。

意図を表現した名前をつける (Use intention revealing names)

1つのコンセプトには1つの単語 (Pick one word per concept)

ある1つの抽象概念には1つの名前を使い続けましょう。

Intention Revealing Names

Smalltalk Best Practice Patterns に Intention Revealing Names というのがあってなという話。 https://gist.github.com/sunaot/e02cbac178b9f7ca0f785746b3a02206

Ward says

“You know you are working on clean code when each routine you read turns out to be pretty much what you expected. You can call it beautiful code when the code also makes it look like the language was made for the problem.”

— Ward Cunningham

https://medium.com/coding-skills/clean-code-101-meaningful-names-and-functions-bf450456d90c

Wiki

よい名前は How ではなく What を表現します。コンピュータ領域の単語(何をどうするか)ではなく、問題領域の単語を使い、解決しようしているのは何かを表現します。

よい変数名についての自分の Wiki から。

  • 広く知られた慣習には従う
    • 広く知られていると想定すべき慣習はプロジェクトの文化によっても違うが、一般的に UNIX 的なもの。デザインパターン的なもの。言語固有の文化。などは既知として扱ってよいと思う
    • 慣習に従うことはわずらわしさもあるが、それ以上にコミュニケーションコストを下げるという利点を得られることが多い。(慣習に従わなかった場合にコメントで説明すべきことを省略できることが多い。)
  • メソッド名にはそのメソッドが行うことだけを表す名前をつける。そして、そのメソッドが行うことはすべて表している名前をつける。

祈り

『名付けとは祈りだからな。』 『祈り?』 『ああ 名前にはこうあってほしいという願いが込められている』

ソムリエール 17巻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.