クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
クラス名、変数名のつけ方に悩んだら書き込むスレです。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/ 指定したプロセスのメモリ使用量を表示する場合名前は何にしますか?
具体的にはタスクマネージャのプロセスタブにあるメモリ (プライベート ワーキング セット)の値をX秒毎に取得してその値を表示するプログラムです
SurveillanceProcessMemory?
CheckProcessMemory?
ViewProcessMemory?
WatchProcessMemory?
etc・・・ 何の名前?
表示を更新するUIのメソッド名?
それともアプリ自体の名前? その時点の情報表示 ViewProcessMemory
情報を監視(垂れ流し表示) WatchProcessMemory
なイメージ
checkは抽象的でよく分からない 見ることではなく、見せるものであれば、「Show」とか。 Monitorじゃねって混乱させたり、
Memoryの中見るんじゃなくて使用量見るんならMemoryUsageとかMemoryUseだよねとつっこんでみたり。 そもそもexeの名前なんだから
俺のメモリー.exe
とかでいいだろ 先頭が数字で半ば固有名詞扱いになってるものを識別子にしたい場合のお約束ってなんかある?
3D Y/C分離とか3次元ノイズリダクションとか
セットアップレベルの0IREとか7.5IREとかを読みやすさを損なわずに列挙体メンバにしたい 月並みなことしか言えんけど...
■ 先頭が数字の名前の対処法
(1) 先頭にアンダーバーか適当なプリフィクスを付ける
_3DYCSeparation
m3DNoiseReduction
(2) アラビア数字の代わりに英単語で
ThreeDimensionsYcSepartion
■ 小数点
電気屋は小数点をSI接頭辞やRで置き換えるんだった気が...
_7R5Ire
4.7kΩ = _4k7Ohm
自分は小数点をpで置き換えたことがある
_7p5Ire 公開する名前をアンダーバー始まりにするのは認めないぞ。
絶対の絶対だ。 誘導されて来ました
ネット上のAPIを叩いて、情報を取ってくるメソッドの名前って
どんな感じにつけたらいい?
例えば、どこかのサーバーにアクセスして天気予報データをJSONで
取ってくるケースだと、どういう名前にしたらいいか教えてください 天気予報といえばこのURLだしフォーマットもJSON以外ありえないという前提なら、
FetchWeatherでいいだろ。
もっと大げさに指定したいならFetchWeatherDataFromUrlInJsonとか。 >>165-166
やっぱこういうのは fetch >>139-144 がしっくりくるね >>166
>>167
ニュアンス的にはfetchがあってそう
サンキュー つか、メソッド名はクラス設計とも関係してて、
主語のクラス名も明確にしてくれないとどのメソッド名(動詞)が一番しっくりくるか変わるし。
俺は、例えば、天気予報情報を提供するREST API経由のXXXサービスがあるとすると、
クラスとしてXXXWeatherClientクラスみたいの用意して、
メソッド名にGetWeatherInfoでGetで十分だわ。
クラス名がどこから取得するか物語ってる事になるし。ローカルキャッシュされたものを取得するなら
適当に、LocalCacheWeatherClientとか。
だから、俺はこんな設計に大抵するからGetで十分だな。 抽象化してもしなくてもいいが、例えば
interface IWeatherClient
GetWeatherInfoAsync():
用意して、
class XXXWeatherClient : IWeatheerClient
class YYYWeatherClient : IWeatherClient
class LocalCacheWeatherClient : IWeatherClient
だから、クラス名の方がどっから取ってくるか物語るのでメソッド名は汎用的・抽象的なGetで十分かな。
こういう設計する場合は。 API呼ぶの1か所だけだし、抽象化もいらねぇしとかなら
class WeatherUtillity
static FetchWeatherInfoAsync
でstaticメソッドあたりにしてこれなら名前はFetchでいいかなとは思うけど。 getの話はさんざんされてるけど、言語の慣用によっては、
属性のゲッター的軽い処理と見誤られることがあるので注意すべき。 まぁ、長々書いたけど、
Twitter APIとかDropbox APIとかいろんなREST APIのラッパーライブラリ
を見ると、Fetchを使ってるのはほぼ見ないかな。ほとんどGetだと思う。 まあ、混在がない(FetchXxxだけでGetXxxがない)かつ、
全部をGetXxxにしてもそれが何を意味するか文脈的に自明なら全部Getでも問題ないねたぶん
でもpublicなメソッドは全部FetchXxxでも非publicなGetXxxメソッドが
存在するような場合は、使う人は良くても書いたり保守するのは混乱するかもね そんなん気にしてるのおまえらだけやぞw
しかも他人は絶対使わんやんおまえらのコードw REST APIの仕様であれば、Getばかりなのはそういうものなので、あたりまえ。
今回の質問者にふさわしいとは限らない。
プログラム全体と天気予報情報の関係によるだろ。
ほかのところはふつうにプロパティ参照みたいになってるのに、天気予報情報だけがサーバーに取得しにいくとかなら、それだけを特別にfetchと名付けるのは妥当。
つーか、質問者はもうfetchがいいって言ってるんだっつーの。w weather.api() か weatherAPI() だな ついでに型名とか軽量単位あたりも接頭辞で表すようにしてみるか fetch()、sketch()、oneTouch()メソッドを持つHentaiクラス 文字型としてはchar32_tのみ、文字列型としてはUTF-8 stringを使う体系の名前
なんか格好いいのないですか >>184
回答じゃなくてすまんが、
それ、文字列中の文字を一つずつ処理したいときどうすんの? >>185
文字列をコードポイント単位で切り出して処理します StringUTF8_CharUCS4
かっこよくはないけど、字面のわかりやすさ重視で。
ほかのところ(Enum型名とか)でだいたいわかるのであれば、String_Char.UTF8_UCS4とかでも。 体系って言ってるんだからクラス名とかじゃないんでしょ
そもそもクラス名なら、内部でどういう符号化してるかなんて普通はどうでもいいはずw >>188 >>190
アバウトでごめん
例えばD言語のforeachだとUTF-8が入ったchar[]をdchar(char32_t)単位でループできるんだけど
そういうルールに従っていることを示せる、名前空間やプレフィクス等に使える名前みたいな…… ずばりUCSにしてしまおうかとも考えましたがUnicode一般と区別がつかないですし
>>189で提案していただいたUTF_UCSみたいなのは"UTF"がそもそもそういう意味なので
格好悪いなあ、と 振る舞わせたいことが決まってるならForeachableStrとか?
>>190も言ってるように「何で実装されてるか」を名前にするのはあんまり筋がよくない気がする >>193
クラス名ではなく、イテレート検索置換set/mapその他文字列関数やそれを用いる処理群に付ける名前で
既存のchar/string、wchar_t/wstring等のペアと区別するためのもの、と思っていただければ 正直そっちの世界よく知らんけど、単純に文字・文字列の順でそれぞれを
表すプリフィクスをくっつけちゃうとか。つまり、Uu8 >>195
簡潔で良いですね。格好は……悩んでても仕方ないのでそうします
ありがとうございます 多重起動できる数を制限するのはなんて言う?
1つしか許さない場合もあれば2つまでは可能な場合もある
LimitMultiBoot、RestrictMultiBoot、他 そもそも数なら数ってわかる名前にしろよw
基本がアカンのに凝るとこ間違っとるでw >>199
多重起動できる数を制限するのに
Instancesで違和感無い?
>>200
間違ってない例お願い >>198
クラスなの?メソッドなの?変数なの?
そういう情報なしに命名なんかできるか。 >>201
実行ファイルを起動してできるプロセス = Instance
だったらMaxProcessesでもよさそうだけど、それだとまるで別のバイナリも含めた
実行可能なプロセスの数のような感じになっちゃう
そもそも質問文が曖昧に感じるけど、
プログラムが起動を許す自分の実体の最大値を表す数ならMaxInstancesでいいと思う >>202
多重起動できる数を制限する変数っておかしくない?
変数が何かするわけでもないし
>>203
プロセスもInstanceなんだありがとう
MaxInstancesだと「数」が格納されてそう
改めて言うと
自プロセスが多重起動できる数を「制限する」関数だから
動詞からはじめたい >>204
制限する個数を入れておく変数なら十分あり得るだろ
ていうか、MaxHogeっていうのはそういう変数や定数の名前にしかならんよ >>204
じゃあLimitInstanceCountとか?
だけど、
if (getCurrentInstanceCount() >= MaxInstances) プログラム終了;
の方が分かりやすいと思うけどw >>205
変数を訊きたいなら「多重起動できる数はなんて言う?」になるのでは?
> 多重起動できる数を制限するのはなんて言う?
既に元の質問でこうなんだから変数はありえないとわかるし
そもそも例も動詞から始まってるんだから関数だとわかると思ったけど
それとも動詞から始まる変数もありなん? >>206
あぁごめん
そっちも変数だと思ってたのね
かみ合わないなと思ったらそういう事か
Limitにするよありがとう invokeの意味はcallに近いからメソッドの呼び出しには相応しいけどプロセス起動には違和感ある
bootだとOSが起動しそう
start、launchあたりでいいんじゃないかな
プロセスであることに特段の意識を向けないならrunもイイと思う callというより、summonだよ。
すごいやつを召喚する感じ。
commandの起動にはinvokeが一番ぴったりだよ。 ぴったりなのはsummonやんけw何言っとんやコイツw
バカの考え恐るべしw ソースにsummonとか出てきたら笑ってまうやろな。w
ファンタジーなのか、中二なのかと。 SummonWizard とか SummonDaemon したい デーモン"クロン"を召喚
スーパーユーザの名において命ずる
時の守護者よ預言を現実と為せ auto daemon = Necromancy.Summon(); >>219
auto slave = necromancer.summon(new demon()); 核となる動詞の目的語と付随する前置詞の目的語の区別がつかないんよ>他人のコード でも、自動詞と他動詞が並んだときに、すべて前置詞なしで統一したい気持ちもわかる。
確認もめんどくさいしね。。。 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
RUCPE Lookfor みたいに1語としてしまう方法もあるかな
自分も含めて英語が苦手な人間だと、確認が大変なのは同意する とある制御用プログラムの話です
例えるならスクリーンショットのように、ある瞬間の現場の状態を記録する処理をCaptureと命名しています
今回悩んでいるのはその逆で、記録されたキャプチャデータから可能な限り現場を再現する処理の命名に悩んでいます
何か名案ありますか? >>228
restore?
decapture?
まあ、話が抽象的過ぎw
再現する対象によるんじゃないかと
絵画ならreadrawだろうしボードゲームならreplayだろうし構造物を再建するならrebuildだろうし
そもそも再現というニュアンスが本当に必要かもよくわからん
キャプチャーされたデータだろうとゼロベースで作ったデータだろうとdrawはdrawだろうって考え方もありうるかと >>229
工作機械の制御プログラムなので構造物が近いです
rebuildにしようと思います
ありがとうございました captureだと一般的すぎるのでsnapshotをご提案。 もし工作機械というのが削る系なら、rebuildには超違和感。。。
組み立て系なら超納得だけど。 "restore a snapshot" は割と使われる表現みたいね
あとはimport/export とかも思いついたけど、
captureよりはもうちょっと上の処理のイメージになっちゃうかな 純粋なデータを保存するわけではなく、実物の加工品(加工途中?)をスキャンして再現を試みる…と言う話みたいだから、save/loadやexport/importは違和感があるかなあ
それだと100%同じものが復元されるイメージがある snapshotみたいな名詞らしい語を処理名(関数名)にするのには躊躇いを感じる
動詞用法あるけど基本はtake a snapshotだしこれチェキるみたいなくだけた表現だよな
SnapshotクラスやStateHistoryクラスのreplayやrestoreメソッドなら好き 毎日データを作成して保存しているのですが、x日間保存・残しておくという仕様です。(現状5日)
このx日をdefineで名前を付けておきたいのですが、この名前をお願いします。 なるほど、TTLというのがありましたね。
それで行きます。
どうもありがとうございました。 expireを使うならDAYS_TO_EXPIRYだな スレ立てるまでもない質問のスレ見てて、ここでもたまに同じ話になるが
このスレタイや>1だと、クラス名と変数名以外の質問はできないと勘違いしちゃう人も多いのかね SQLのテーブル名やら実行ファイル名なんかも
過去にはありましたけどね メソッド名・関数名は変数名の一種でしょ(高階関数脳) ■ このスレッドは過去ログ倉庫に格納されています