クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1ネミ子
垢版 |
2017/05/07(日) 18:01:52.03ID:akuyRduv
クラス名、変数名のつけ方に悩んだら書き込むスレです。

命名規則や設計の善し悪しについて議論するのは基本的に禁止。

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/
2018/02/07(水) 16:59:58.39ID:izr6WB3M
>>151
面白そうだからググってみたけど、その手の単語ってそうは多くないみたいね
http://www1.odn.ne.jp/xenom/gohou.box/gohou1.html

それを集約するオブジェクトがあって複数形が使えた方が都合がいいなら複数形がある別の可算名詞に
置き換える、そうじゃなきゃそのまま使う

まあ、柔軟に対応でいいんじゃないでしょうか
153デフォルトの名無しさん
垢版 |
2018/02/07(水) 21:17:32.06ID:3BT7o9wr
>>152
どうもありがとうございます。柔軟に対応します。
2018/02/16(金) 06:10:05.04ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
2018/04/10(火) 09:53:35.09ID:Kfr8PFFs
指定したプロセスのメモリ使用量を表示する場合名前は何にしますか?
具体的にはタスクマネージャのプロセスタブにあるメモリ (プライベート ワーキング セット)の値をX秒毎に取得してその値を表示するプログラムです
SurveillanceProcessMemory?
CheckProcessMemory?
ViewProcessMemory?
WatchProcessMemory?
etc・・・
2018/04/10(火) 14:04:38.60ID:KG4vxU3v
何の名前?
表示を更新するUIのメソッド名?
それともアプリ自体の名前?
2018/04/10(火) 14:10:33.38ID:RE4Ll6H9
その時点の情報表示 ViewProcessMemory
情報を監視(垂れ流し表示) WatchProcessMemory

なイメージ

checkは抽象的でよく分からない
2018/04/10(火) 21:02:18.73ID:g9DkMx9b
見ることではなく、見せるものであれば、「Show」とか。
2018/04/10(火) 21:31:43.12ID:rwK1ezW+
Monitorじゃねって混乱させたり、
Memoryの中見るんじゃなくて使用量見るんならMemoryUsageとかMemoryUseだよねとつっこんでみたり。
2018/04/10(火) 22:42:37.83ID:xK9q0OHZ
そもそもexeの名前なんだから
俺のメモリー.exe
とかでいいだろ
2018/04/19(木) 02:14:10.85ID:QzBHelKx
先頭が数字で半ば固有名詞扱いになってるものを識別子にしたい場合のお約束ってなんかある?
3D Y/C分離とか3次元ノイズリダクションとか
セットアップレベルの0IREとか7.5IREとかを読みやすさを損なわずに列挙体メンバにしたい
2018/04/19(木) 03:11:55.95ID:II5zdCld
月並みなことしか言えんけど...

■ 先頭が数字の名前の対処法

(1) 先頭にアンダーバーか適当なプリフィクスを付ける
_3DYCSeparation
m3DNoiseReduction

(2) アラビア数字の代わりに英単語で
ThreeDimensionsYcSepartion

■ 小数点
電気屋は小数点をSI接頭辞やRで置き換えるんだった気が...
_7R5Ire
4.7kΩ = _4k7Ohm

自分は小数点をpで置き換えたことがある
_7p5Ire
2018/04/19(木) 18:25:39.74ID:5inohPPn
公開する名前をアンダーバー始まりにするのは認めないぞ。
絶対の絶対だ。
2018/04/19(木) 18:29:45.48ID:5inohPPn
語順を入れ換えて、「NR3D」とか?
165デフォルトの名無しさん
垢版 |
2018/04/23(月) 19:10:14.27ID:A/jct/5p
誘導されて来ました

ネット上のAPIを叩いて、情報を取ってくるメソッドの名前って
どんな感じにつけたらいい?
例えば、どこかのサーバーにアクセスして天気予報データをJSONで
取ってくるケースだと、どういう名前にしたらいいか教えてください
2018/04/23(月) 20:50:16.54ID:lPog2avr
天気予報といえばこのURLだしフォーマットもJSON以外ありえないという前提なら、
FetchWeatherでいいだろ。
もっと大げさに指定したいならFetchWeatherDataFromUrlInJsonとか。
2018/04/24(火) 09:52:50.58ID:eWyRlcS+
>>165-166
やっぱこういうのは fetch >>139-144 がしっくりくるね
2018/04/24(火) 13:22:19.64ID:5gRbnpaG
>>166
>>167

ニュアンス的にはfetchがあってそう
サンキュー
2018/04/24(火) 19:12:36.34ID:ZKUvPQBu
つか、メソッド名はクラス設計とも関係してて、
主語のクラス名も明確にしてくれないとどのメソッド名(動詞)が一番しっくりくるか変わるし。

俺は、例えば、天気予報情報を提供するREST API経由のXXXサービスがあるとすると、
クラスとしてXXXWeatherClientクラスみたいの用意して、
メソッド名にGetWeatherInfoでGetで十分だわ。

クラス名がどこから取得するか物語ってる事になるし。ローカルキャッシュされたものを取得するなら
適当に、LocalCacheWeatherClientとか。
だから、俺はこんな設計に大抵するからGetで十分だな。
2018/04/24(火) 19:17:38.91ID:ZKUvPQBu
抽象化してもしなくてもいいが、例えば
interface IWeatherClient
 GetWeatherInfoAsync():
用意して、
class XXXWeatherClient : IWeatheerClient
class YYYWeatherClient : IWeatherClient
class LocalCacheWeatherClient : IWeatherClient
だから、クラス名の方がどっから取ってくるか物語るのでメソッド名は汎用的・抽象的なGetで十分かな。
こういう設計する場合は。
2018/04/24(火) 19:23:33.68ID:ZKUvPQBu
API呼ぶの1か所だけだし、抽象化もいらねぇしとかなら
class WeatherUtillity
 static FetchWeatherInfoAsync
でstaticメソッドあたりにしてこれなら名前はFetchでいいかなとは思うけど。
2018/04/24(火) 19:25:00.97ID:fm62Hv3K
getの話はさんざんされてるけど、言語の慣用によっては、
属性のゲッター的軽い処理と見誤られることがあるので注意すべき。
2018/04/24(火) 19:31:36.38ID:ZKUvPQBu
まぁ、長々書いたけど、
Twitter APIとかDropbox APIとかいろんなREST APIのラッパーライブラリ
を見ると、Fetchを使ってるのはほぼ見ないかな。ほとんどGetだと思う。
2018/04/24(火) 20:13:15.61ID:DxRUWE0G
まあ、混在がない(FetchXxxだけでGetXxxがない)かつ、
全部をGetXxxにしてもそれが何を意味するか文脈的に自明なら全部Getでも問題ないねたぶん

でもpublicなメソッドは全部FetchXxxでも非publicなGetXxxメソッドが
存在するような場合は、使う人は良くても書いたり保守するのは混乱するかもね
2018/04/24(火) 21:51:29.46ID:UZrLd4N8
そんなん気にしてるのおまえらだけやぞw
しかも他人は絶対使わんやんおまえらのコードw
2018/04/24(火) 23:24:04.71ID:RWNhMG6P
REST APIの仕様であれば、Getばかりなのはそういうものなので、あたりまえ。
今回の質問者にふさわしいとは限らない。

プログラム全体と天気予報情報の関係によるだろ。
ほかのところはふつうにプロパティ参照みたいになってるのに、天気予報情報だけがサーバーに取得しにいくとかなら、それだけを特別にfetchと名付けるのは妥当。

つーか、質問者はもうfetchがいいって言ってるんだっつーの。w
2018/04/25(水) 03:41:22.81ID:gCQtLPGy
weather.api() か weatherAPI() だな
2018/04/25(水) 07:24:54.62ID:8OWy2krh
それ呼んで天気が取得できそうに見えない
2018/04/25(水) 12:50:16.95ID:YpxvDKQH
接頭語は規約で縛りたいね
2018/04/25(水) 12:55:24.71ID:Ftk8gYl/
やめろそんなくだらん思いつきw
2018/04/25(水) 15:06:08.92ID:/DJF/vp7
ついでに型名とか軽量単位あたりも接頭辞で表すようにしてみるか
2018/04/25(水) 17:55:49.84ID:7+xZ9HVo
>>177
天候制御APIなのか。
2018/04/25(水) 22:04:30.35ID:TrWCKrBY
fetch()、sketch()、oneTouch()メソッドを持つHentaiクラス
2018/04/26(木) 21:22:57.77ID:gC2FApkc
文字型としてはchar32_tのみ、文字列型としてはUTF-8 stringを使う体系の名前
なんか格好いいのないですか
2018/04/26(木) 22:14:30.62ID:EmRzHR04
>>184
回答じゃなくてすまんが、
それ、文字列中の文字を一つずつ処理したいときどうすんの?
2018/04/26(木) 22:25:32.99ID:gC2FApkc
>>185
文字列をコードポイント単位で切り出して処理します
2018/04/26(木) 22:59:38.60ID:bkKH84l+
Utf32backedUtf8String
2018/04/26(木) 23:55:24.03ID:VXYRbyyQ
>>184
体系ってのがなんともアバウトだよねw
2018/04/27(金) 00:35:20.48ID:7vAN1kr9
StringUTF8_CharUCS4

かっこよくはないけど、字面のわかりやすさ重視で。

ほかのところ(Enum型名とか)でだいたいわかるのであれば、String_Char.UTF8_UCS4とかでも。
2018/04/27(金) 00:41:27.78ID:6Bhz5Awv
体系って言ってるんだからクラス名とかじゃないんでしょ
そもそもクラス名なら、内部でどういう符号化してるかなんて普通はどうでもいいはずw
2018/04/27(金) 00:51:53.60ID:W2h8WuA6
>>188 >>190
アバウトでごめん
例えばD言語のforeachだとUTF-8が入ったchar[]をdchar(char32_t)単位でループできるんだけど
そういうルールに従っていることを示せる、名前空間やプレフィクス等に使える名前みたいな……
2018/04/27(金) 01:01:21.64ID:W2h8WuA6
ずばりUCSにしてしまおうかとも考えましたがUnicode一般と区別がつかないですし
>>189で提案していただいたUTF_UCSみたいなのは"UTF"がそもそもそういう意味なので
格好悪いなあ、と
2018/04/27(金) 02:05:45.35ID:m8rmfrp+
振る舞わせたいことが決まってるならForeachableStrとか?
>>190も言ってるように「何で実装されてるか」を名前にするのはあんまり筋がよくない気がする
2018/04/27(金) 02:23:34.45ID:W2h8WuA6
>>193
クラス名ではなく、イテレート検索置換set/mapその他文字列関数やそれを用いる処理群に付ける名前で
既存のchar/string、wchar_t/wstring等のペアと区別するためのもの、と思っていただければ
2018/04/27(金) 02:47:42.29ID:6Bhz5Awv
正直そっちの世界よく知らんけど、単純に文字・文字列の順でそれぞれを
表すプリフィクスをくっつけちゃうとか。つまり、Uu8
2018/04/27(金) 04:09:55.93ID:W2h8WuA6
>>195
簡潔で良いですね。格好は……悩んでても仕方ないのでそうします
ありがとうございます
2018/04/27(金) 08:57:17.46ID:ZX4OPUdX
その効率悪そうな実装をするココロは?
2018/04/27(金) 11:26:33.92ID:3DjLi910
多重起動できる数を制限するのはなんて言う?
1つしか許さない場合もあれば2つまでは可能な場合もある
LimitMultiBoot、RestrictMultiBoot、他
2018/04/27(金) 11:35:52.00ID:Lc4wIlfn
>>198
MaxInstances
2018/04/27(金) 12:22:21.74ID:BpdbHlVm
そもそも数なら数ってわかる名前にしろよw
基本がアカンのに凝るとこ間違っとるでw
2018/04/27(金) 12:36:51.38ID:3DjLi910
>>199
多重起動できる数を制限するのに
Instancesで違和感無い?

>>200
間違ってない例お願い
2018/04/27(金) 13:11:57.11ID:+sB9m2tC
>>198
クラスなの?メソッドなの?変数なの?
そういう情報なしに命名なんかできるか。
2018/04/27(金) 13:27:06.30ID:Lc4wIlfn
>>201
実行ファイルを起動してできるプロセス = Instance

だったらMaxProcessesでもよさそうだけど、それだとまるで別のバイナリも含めた
実行可能なプロセスの数のような感じになっちゃう

そもそも質問文が曖昧に感じるけど、
プログラムが起動を許す自分の実体の最大値を表す数ならMaxInstancesでいいと思う
2018/04/27(金) 13:48:39.01ID:3DjLi910
>>202
多重起動できる数を制限する変数っておかしくない?
変数が何かするわけでもないし

>>203
プロセスもInstanceなんだありがとう
MaxInstancesだと「数」が格納されてそう

改めて言うと
自プロセスが多重起動できる数を「制限する」関数だから
動詞からはじめたい
2018/04/27(金) 13:51:21.38ID:+sB9m2tC
>>204
制限する個数を入れておく変数なら十分あり得るだろ
ていうか、MaxHogeっていうのはそういう変数や定数の名前にしかならんよ
2018/04/27(金) 14:04:49.98ID:Lc4wIlfn
>>204
じゃあLimitInstanceCountとか?

だけど、
if (getCurrentInstanceCount() >= MaxInstances) プログラム終了;
の方が分かりやすいと思うけどw
2018/04/27(金) 14:10:56.76ID:3DjLi910
>>205
変数を訊きたいなら「多重起動できる数はなんて言う?」になるのでは?

> 多重起動できる数を制限するのはなんて言う?
既に元の質問でこうなんだから変数はありえないとわかるし
そもそも例も動詞から始まってるんだから関数だとわかると思ったけど
それとも動詞から始まる変数もありなん?
2018/04/27(金) 14:16:37.58ID:3DjLi910
>>206
あぁごめん
そっちも変数だと思ってたのね
かみ合わないなと思ったらそういう事か

Limitにするよありがとう
2018/04/27(金) 14:17:16.59ID:uWI4DiNj
LimitRunningCount
2018/04/27(金) 22:17:00.33ID:+ocy8bIv
あーあ、limitにしちゃったか
2018/04/28(土) 07:16:54.26ID:1vsIQmRo
>>200
お前は基本の前に読解力が必要だなw
2018/04/28(土) 09:06:15.09ID:74OzkJQW
「起動」には invoke をよく使ってる
2018/05/01(火) 17:59:48.31ID:csuC8ljm
invokeの意味はcallに近いからメソッドの呼び出しには相応しいけどプロセス起動には違和感ある
bootだとOSが起動しそう
start、launchあたりでいいんじゃないかな
プロセスであることに特段の意識を向けないならrunもイイと思う
2018/05/01(火) 18:32:13.66ID:IZMmswHj
callというより、summonだよ。
すごいやつを召喚する感じ。
commandの起動にはinvokeが一番ぴったりだよ。
215デフォルトの名無しさん
垢版 |
2018/05/01(火) 19:46:41.20ID:oyZWZ8lH
ぴったりなのはsummonやんけw何言っとんやコイツw
バカの考え恐るべしw
2018/05/01(火) 21:31:54.87ID:J+iCny9E
ソースにsummonとか出てきたら笑ってまうやろな。w
ファンタジーなのか、中二なのかと。
2018/05/02(水) 00:29:57.07ID:mp5av7vO
SummonWizard とか SummonDaemon したい
2018/05/02(水) 03:43:35.29ID:iZCbTs+2
デーモン"クロン"を召喚
スーパーユーザの名において命ずる
時の守護者よ預言を現実と為せ
2018/05/02(水) 07:26:32.24ID:GbcXK+Pf
auto daemon = Necromancy.Summon();
2018/05/02(水) 09:21:15.45ID:j9UHzewR
すぐにけせ
2018/05/02(水) 11:04:17.15ID:Ul+rrzaM
>>219
auto slave = necromancer.summon(new demon());
2018/05/16(水) 16:05:57.30ID:+m6OL90c
とりあえず前置詞省略するのやめてほしい
2018/05/16(水) 16:07:06.11ID:+m6OL90c
核となる動詞の目的語と付随する前置詞の目的語の区別がつかないんよ>他人のコード
2018/05/16(水) 20:32:46.91ID:5FKSCtlR
でも、自動詞と他動詞が並んだときに、すべて前置詞なしで統一したい気持ちもわかる。

確認もめんどくさいしね。。。
225デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:36:24.40ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

RUCPE
2018/05/24(木) 10:49:40.87ID:cPlRxlDn
RUCPE
2018/05/28(月) 06:35:00.86ID:kyqpWJOZ
Lookfor みたいに1語としてしまう方法もあるかな
自分も含めて英語が苦手な人間だと、確認が大変なのは同意する
2018/06/05(火) 16:29:36.05ID:rxd5N2KO
とある制御用プログラムの話です
例えるならスクリーンショットのように、ある瞬間の現場の状態を記録する処理をCaptureと命名しています

今回悩んでいるのはその逆で、記録されたキャプチャデータから可能な限り現場を再現する処理の命名に悩んでいます
何か名案ありますか?
2018/06/05(火) 17:35:39.82ID:vCTdp4Eh
>>228
restore?
decapture?

まあ、話が抽象的過ぎw
再現する対象によるんじゃないかと
絵画ならreadrawだろうしボードゲームならreplayだろうし構造物を再建するならrebuildだろうし

そもそも再現というニュアンスが本当に必要かもよくわからん
キャプチャーされたデータだろうとゼロベースで作ったデータだろうとdrawはdrawだろうって考え方もありうるかと
2018/06/05(火) 18:21:11.57ID:PRfwVQI5
saveとloadでもよさそう。
2018/06/05(火) 20:03:29.48ID:dW5AuQ9S
replay
2018/06/05(火) 20:44:13.65ID:rxd5N2KO
>>229
工作機械の制御プログラムなので構造物が近いです
rebuildにしようと思います
ありがとうございました
2018/06/05(火) 21:36:57.01ID:0hgxeSu3
captureだと一般的すぎるのでsnapshotをご提案。
2018/06/05(火) 22:49:02.18ID:m8mVVRTq
もし工作機械というのが削る系なら、rebuildには超違和感。。。
組み立て系なら超納得だけど。
2018/06/05(火) 23:39:15.31ID:yC4OyvIK
"restore a snapshot" は割と使われる表現みたいね
あとはimport/export とかも思いついたけど、
captureよりはもうちょっと上の処理のイメージになっちゃうかな
2018/06/06(水) 00:06:11.59ID:QCe3vYvo
純粋なデータを保存するわけではなく、実物の加工品(加工途中?)をスキャンして再現を試みる…と言う話みたいだから、save/loadやexport/importは違和感があるかなあ
それだと100%同じものが復元されるイメージがある
2018/06/06(水) 07:59:52.74ID:AFggJmmf
snapshotみたいな名詞らしい語を処理名(関数名)にするのには躊躇いを感じる
動詞用法あるけど基本はtake a snapshotだしこれチェキるみたいなくだけた表現だよな
SnapshotクラスやStateHistoryクラスのreplayやrestoreメソッドなら好き
2018/06/06(水) 19:12:54.42ID:unmQcZLl
playback
239デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:31:14.31ID:gFgZc5FG
IKD
2018/07/05(木) 16:54:41.07ID:AeL6VB/V
IKD
2018/07/31(火) 18:16:10.08ID:BaQoKVST
毎日データを作成して保存しているのですが、x日間保存・残しておくという仕様です。(現状5日)
このx日をdefineで名前を付けておきたいのですが、この名前をお願いします。
2018/07/31(火) 18:34:43.95ID:C5jUYukD
TIME_TO_LIVE
http://e-words.jp/w/TTL-1.html
2018/07/31(火) 18:38:08.53ID:C5jUYukD
DAYS_TO_LIVEの方がいいかも
2018/07/31(火) 18:54:31.67ID:BaQoKVST
なるほど、TTLというのがありましたね。
それで行きます。
どうもありがとうございました。
2018/08/01(水) 19:25:31.53ID:L56+Ekrg
expire
2018/08/02(木) 00:40:08.75ID:Jsv6wlPl
expireを使うならDAYS_TO_EXPIRYだな
2018/08/11(土) 11:27:51.21ID:D0St3L3h
スレ立てるまでもない質問のスレ見てて、ここでもたまに同じ話になるが
このスレタイや>1だと、クラス名と変数名以外の質問はできないと勘違いしちゃう人も多いのかね
2018/08/11(土) 18:28:01.97ID:edehoOie
できないぞ。仕様。
2018/08/11(土) 18:43:58.24ID:WNr/dTgn
メソッド名とかは? w
ってか常識で判断しろよ
2018/08/11(土) 18:45:00.14ID:D0St3L3h
SQLのテーブル名やら実行ファイル名なんかも
過去にはありましたけどね
2018/08/11(土) 21:00:34.49ID:xD5kHdtf
メソッド名・関数名は変数名の一種でしょ(高階関数脳)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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