クラス名・変数名に迷ったら書き込むスレ。Part29

2021/04/26(月) 17:52:13.23ID:KOZxV/bH
クラス名、変数名のつけ方に悩んだら書き込むスレです。

命名規則や設計の善し悪しについて議論するのは基本的に禁止。
設計などが話題になるのなら他のスレでどうぞ。

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part28
http://mevius.5ch.net/test/read.cgi/tech/1494147712/
2021/04/26(月) 17:52:40.95ID:KOZxV/bH
命名の相談時に設計についてのアドバイスや指摘を受けてもよい
というかたには、下記の別スレがあります。

【命名スレ1】命名に悩んだらココへ (設計助言あり)
http://mevius.5ch.net/test/read.cgi/tech/1619279151/
2021/05/25(火) 06:58:41.32ID:yDjOYm7F
コンパイラの進化で変数名を漢字にできるようになって久しいしこのスレの役割もほぼ終わったな
2021/05/25(火) 15:45:05.82ID:a0BIWpZb
スレの役割と言うより、5ch自体の過疎化と老人ホーム化が顕著で活発な人が居ない
2021/06/28(月) 16:55:20.87ID:lTBb4qc9
変数名というよりUI側の日本語表記だけど、購入日付は hoge_date 時間は hoge_time となんの疑問もない変数名において
UI表記の方の日付が「購入日付」とするならば「購入時間」、「購入日」とするならば「購入時」とするべき?
みたいなお前らオレオレルールありますか?

「購入日」「購入時間」と書いたところでふとしょーもない疑問が
2021/06/28(月) 17:07:07.04ID:bvm0yYNW
購入日時とするより分けた方がいいのか

購入日付より購入日
購入時より購入時間
購入時だと購入時に何かするのかってなるかもしれない
2021/06/28(月) 17:08:33.67ID:y9cDiJJM
表記の文字数を合わせるかって意味ならそんなこだわりは無意味だと思うが、「購入時」じゃ
point of purchaseの意味になっちゃうし、「購入時間」ってのも日本語としてちょっと変じゃないかw

普通は「購入時刻」でしょう
店に入ってから会計するまでにかかった時間のことを言ってるなら話は別だけど
2021/06/28(月) 17:16:42.77ID:6iMmxSuD
「時間」は、できれば使わないようにしてるかな。
datetimeかtimeかdurationか、はっきりしないから。
2021/06/28(月) 17:54:27.40ID:S+KM5q+3
時間は単位hourのことでもあるので紛らわしいね
時刻です
105
垢版 |
2021/06/28(月) 18:03:21.43ID:lTBb4qc9
>>5で書いた通り最初は「購入日」という表現が普通かなと思っていたところ、
続けて「購入時間」と書いてからふとある意味国語表記的に「購入時間」に対する言葉は「購入日付」
にしないともしかしてダメなのかなと思った次第です

たしかに、そもそも皆さん仰る通り「時間」もおかしいですね
「購入日」の方はそのままで「購入時刻」が妥当ですね

対する言葉とかいう謎な考えは忘れます
どうもありがとうございました
2021/09/03(金) 21:39:09.50ID:G0tU4WlS
複雑な検索処理の命名に悩む
2021/09/04(土) 01:37:01.23ID:ExeocnPJ
SearchPlus, UltraSearch
真面目に答えると単に複雑では的を得ず「何を」「どんな条件で」に依るんじゃないか
2021/09/04(土) 02:20:20.76ID:ejFtuZv2
complex search
compound search
2021/09/04(土) 08:36:31.57ID:6Js5xH+m
Fukuzatsu_na_Kensaku
2021/09/04(土) 09:51:33.08ID:ObocQVW3
RichSearch, DeluxeSearch, GorgeousSearch
2021/09/04(土) 12:40:01.73ID:4KE7eTOK
SuperUltraGreatDeliciousWonderfulSearch
2021/09/04(土) 14:04:21.33ID:ptFG7Yts
SelectAsterFromTable1WhereCostGreaterThan3000Yen
2021/09/04(土) 14:51:26.08ID:g4kDfo3y
守秘義務があるのでボカして言うけどモノは掲示板システムでクエリはこんな感じ

自分が所属してる全グループに所属してる全ユーザー
ユーザーの最新のアクティビティを添える
(アクティビティはログイン、ログアウト、レス投稿、レス編集、レス削除、グループ加入、グループ離脱などシステムイベントのことで種類は多岐に渡る
現行システムではイベントをエンティティとして管理しておらず、多数のテーブルを結合して取得している)
並び順は最新のアクティビティのタイムスタンプ
ページング機能付き
2021/09/04(土) 15:08:38.41ID:gnaQqDHO
GetUsersWithNewestActivity
2021/09/04(土) 15:27:09.51ID:ejFtuZv2
ボカしてるか?w
21デフォルトの名無しさん
垢版 |
2021/09/04(土) 15:42:30.62ID:NqTA6LYj
「自分が所属してる全グループ」
「自分が所属してる全グループに所属してるユーザー」
「自分が所属してる全グループに所属してる全ユーザー 」

この辺の概念に名前をつけることを考えるといい
要件定義時に毎回「自分が所属してる全グループに所属してる全ユーザー」 と連呼してたのかな
2021/09/04(土) 15:48:15.86ID:l5V2kGNZ
引数込みで表現できればいいから極端な話GetUsersとかGetAllUsersで十分な場合もある
類似メソッドの存在次第
2021/09/04(土) 15:59:11.51ID:4KE7eTOK
ページングも含めてクエリがベッタベタに特定画面向けの専用品に成り下がっていて、一切の転用の見込みがないなら、俺ならクエリ名も「○○機能向け一覧取得」みたいなものにする
あとNewestという語はだいたいLastで置き換えたほうが自然になることが多い
2021/09/04(土) 16:44:33.28ID:rOWhEtbM
Latest ?
2021/09/04(土) 16:59:10.50ID:g4kDfo3y
それだとどんな条件でユーザーを絞りこんだのか、並び順がわからないかな
2021/09/04(土) 17:01:40.12ID:g4kDfo3y
>>21
なるほど
>>22
さすがにそれは大雑把すぎるかなぁ
>>23
多数の画面、バッチで使用するので画面専用の命名は困る
2021/09/04(土) 17:25:01.65ID:4KE7eTOK
多数の画面とバッチで使うメジャーなクエリなら逆に、The・アクティビティ付きユーザー一覧取得くらいの名前でもいいかもな
たとえば所属にまつわる話がそのシステムにおける標準の閲覧可能範囲なのだとしたら名前に含めないことを検討する
2021/09/04(土) 17:36:57.74ID:AUnFpeaE
こう考えた方がいいと思うよ。

「その」検索がどんなに複雑だろうが特殊だろうが、
仮に別の検索が存在しないならメソッド名は単にSearchかFind、
せいぜい検索対象(ナニを探しているか?)をくっつけてSearchHogeで何も問題はないはず。

だから「その」検索が他とどう違うか、大事なのはそこでありそこだけだと思うんだけど。
2021/09/04(土) 17:49:16.39ID:r9yQukRc
検索という言葉を使ってるが>>18を読んだ限りでは
SearchやFindでの命名が適切なケースではなさそう
2021/09/05(日) 01:42:12.11ID:QCgHcRl9
全ユーザーのアクティビティから対象ユーザーに関係(所属グループに属するユーザー)しているユーザーのものをフィルタリングって事?
2021/09/05(日) 19:39:16.08ID:norJbQ6j
それは非効率だなぁ
2021/10/14(木) 03:59:56.99ID:BWqWIDHE
puts "緊急事態発生".red.on_yellow
って書ける着色ライブラリがあったとして
カラーコード明示するのがだるいからと
puts "緊急事態発生".error
puts "緊急事態発生".warning
puts "緊急事態発生".e
puts "緊急事態発生".w
とラップしたら意味不明?
2021/10/14(木) 05:55:29.93ID:aWG6n+hY
>>32
目的ベースで命名するのはいいプラクティスだと思う
ただし色を変更していることは分かるように str.error_color とか
もしかしたら色以外の表示もカスタムするかもしれないから例えば str.error_style とか
errorだけだとちょっと情報量がなさすぎるので、自分ならそのくらいは情報持たせるかな
1文字は今どき論外
2021/10/14(木) 08:30:59.91ID:Tx5FDdfu
>>32
loggerを使ってlog levelと出力先によって表示をカスタマイズしたほうがいい
logger.fatal(message)とかlogger.warn(message)にする
設計方面の話なので別の命名スレかRubyのスレで聞くといいかも
2021/10/14(木) 09:50:10.48ID:JcLc7tQv
>>32
他人にはかなり意味不明。
でも、場面や頻度なんかで関係者にはあきらかなら、ナシではないんちゃう。
2021/10/14(木) 20:11:05.85ID:8lu7BSCx
抽象化する箇所が間違ってるよね
つか命名関係ない
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況