英語のニュアンスがわからないため微妙なところで名付けに困ることがあります。
これは自分なりの使い分けのガイドラインです。
どういう表現を使用するか
数
積極的に採用
-
hoge_number: 番号を表すときはnumber -
hoge_count: 計数(個数や回数)を表すときはcount
採用したくない
-
number_of_hoge: 長くなるから嫌う人は多いと思う -
hoge_no:noでは意味がわからない
コレクション
積極的に採用
-
hoges: 一般的に複数形にすることでコレクションであることを表現できる -
hoge_group: なんらかの規則で集められたグループであることを示唆できるかもしれない
採用したくない
-
hoge_list: データ構造を明示するのは冗長(だが必要となることもある)
〜〜者
日本語では多用するが英語にするのが難しい。特に「担当者」という言葉はなんでもありなので業務システムの設計としては分析不足かもしれない。
積極的に採用
- 動詞 +
er: 〜〜する人という造語法で誰でも理解可能であり、単純なのでまずはこれを検討- ただし、「描画者」を表現しようとして
drawerにすると「引き出し」の意味が強く混乱の元になるので、このような一部の単語には要注意
- ただし、「描画者」を表現しようとして
- 動詞 +
ee: 〜〜される人という造語法。日本語話者には一般的ではないが他のプログラマがこれで理解してくれたらありがたい。
採用したくない
-
hoge_rep: representativeの略で正しい表現だがわかりにくい。 -
hoge_member: 苦肉の策
複数の表現をどう使い分けるか
状態 state/status
-
状態1つを表す場合は
state - 状態を組み合わせてできる複合的な状況は
status
可否 can/-able
- 権限としてできるかどうかの場合は
can - 状態としてできるかどうかの場合は
-able
開始と終了
-
begining/end: 始まり/終わり(名詞) -
start/stop: 始める/やめる(動詞) -
begin/finish: 着手する/完了する(動詞)
実行 run/do/perform/exec(ute)
そもそも実行するという名付けそのものがよくない。何を実行するのかに基づいて命名すべき。とはいえ、やりすぎた抽象クラスなどで使うこともありうる。
- サーバのように実行中(running)状態があるようなものを実行する場合、
run - 下準備を色々してから最後に実行するという場合、
execute - ある一つのタスクを実行する場合、
perform -
doは多くの言語で予約語的扱いなので使用しない
追加 add/append/insert
- 通常は
add - コレクションに順序性があり末尾に追加する場合は
append- 先頭に追加する場合は
prepend - 途中に追加する場合は
insert
- 先頭に追加する場合は
作成 create/build/generate
- 無から作成する場合は、
create - 材料を組み立てて作成する場合は、
build - 材料をもとに質的に別な物を生成する場合は、
generate
変更 update/change/modify/patch
- 変更結果が永続化されるなら
update - 変更結果が一時的なものなら
change -
modifyは使用しない - いわゆる「パッチ」を実行する場合のみ
patch
削除 delete/destroy/remove/erase
- 削除結果が永続化されるなら
delete- または
destroy。慣習による
- または
- 一時的に取り外すだけなら
remove -
eraseは使用しない
属性 property/attribute
使用している言語やフレームワークの慣習に従っておく。