クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
クラス名、変数名のつけ方に悩んだら書き込むスレです。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/ >>552
くどくて済まんけど、要するにsnapshotだよねそれ。
差分とかじゃなくて変更後のベタなデータなんでしょ? >>547
aだってよ?w
おまえいがいはそうぞうがついてたが。
これからは、わからんかったらだまってるようにな! >>556
snapshotは違う気がするな。
スナップショットはあんまり連続させないし、ふつうは対象が変化自体ではないからか。
上にも似たようなのがあったけど、ValueChangeくらいでいいんじゃないの? >>557
>そうぞうがついてた
頭悪いね。
問題にしているのは質問文から「変化点」の意味を正確に読み取れるかどうか。
質問者自身が認めているようにそれは明らかにNoだ。
俺が想像したのと大体同じ、だから俺の勝ち、これガキの論理。
>>558
https://wa3.i-3-i.info/word14388.html あとどうでもいいけど、>>552を読む限り質問者さんの言う変更点って
>>548に書いた(b)なんじゃないの? >>559
もういちどいってあげるけど、ひとりいがいはよみとれてたよ?
しつもんしゃのけんそんをこんきょにするなんて、あほのうえに、ずうずうしいぞ。 525です。
皆様色々なご解答ありがとうございました。単語の意味などを調べつつ適切な物を選びたいと思います。
自分の質問が悪かったのですが、
変化点=変更後のデータ
欲しかったもの=変更時の時刻と変更後のデータを表す命名(の要素)
となります。誤解を招く質問で申し訳ありませんでした。 >>554さん
実際のデータ(の表現)はviewで、変化した時点のデータのみをテーブルで保持したいので、提案いただいたものはviewにつけたいと思っています。
>>556さん
リンクも見させていただきましたが、snapshotとは少し違うかと感じてしまいました。
自分が抱いているイメージとしては、
金太郎飴(ストリーム)と切断面(時刻と変更後のデータ)になります。
今回は切断面の名称だったので。
長々と失礼しました。 んーよー分からんw
ゲームのコントローラーの入力状態の履歴みたいなイメージなんだろうか。
それならsnapshotは違うというのもちょっとわからんでもないけど...
しかし、状態変化直後の状態の写し(スナップショット)の記録に違いはないと思うんだけどな 質問のポイントは、金太郎飴な等間隔時系列データ(VIEW)と、変化点だけに圧縮した時系列データ(TABLE)の2つのオブジェクトをDBに作るから、それぞれを識別できるように名付けたいということだな
しかも集合と要素のどちらも呼び分けたいという思いがあると 要素には別々の名前をつける意味はないと思う
そのTABLEはVIEWの部分集合に他ならないから、集合だけに個別の名前を与えるのが妥当
集合の名前については、繰り返しになってしまうけど、永続化するときに変化点だけに圧縮するのは最も一般的な時系列データの持ち方だから、俺なら等間隔に展開した冗長な(奇異な)VIEWの側に説明的な名前をつけて欲しいわ
前か後ろにequal_intervalを付けるとか
そもそもその奇異なVIEWの存在意義が
気になる
速度もメモリ量も性能悪そう
ツリー構造の索引を持つデータとしてメモリ内に読み出しておいて、任意時点のデータを取るメソッドを付けて、必要ならflyweightパターンにしたい
もちろん事情があるならそのままでいい 525です
>>565さん
自分がスナップショットの意味を取り違えていると思いますので、意味を調べ直してきます。
>>566さん
今想定しているのは時間は等間隔ではありません。状態やデータが変化した時のみ保持し、不規則なデータの移り変わりを表現したいと考えています。
>>567さん
今のところは、主体をview、変化点(と言ってしまいますが)は要素として考えています。
この考え方は自分の知識が弱いこともあると思いますので、改めて考え直してみます。
金太郎飴の例が悪かったですね。
今後は伝わりやすい例を考慮してから質問させていただきます。 Change Update
Log History
ここらへん組み合わせればいいんでないの >>567
まだ言ってるのかよ…
> そもそもその奇異なVIEWの存在意義が気になる
> 速度もメモリ量も性能悪そう
>> 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 >>521
今更だけど
オブジェクトそのもの(あるいは一部)を初期化するメンバ関数は基本的にPublicになることはないかなって話
例えば、init()、update()、final()ってメンバ関数があったとして
init()→update()→final()の一連の流れをオブジェクト利用者に約束事として強要しちゃうわけよ
final()で一旦終えた後に、init()せずにupdate()しちゃったらオブジェクト内部がおかしな状態になるかも知れない
じゃあ、final()の中でinit()しちゃえばいいよねってなるけど、final()(init実行)→init()って無駄なことをされてしまう
そうするとinit()が邪魔になり、コンストラクタ内でinit()を呼んで、利用者に好きなだけupdate()させて
final()(init含む)で結果を受け取ってもらった方が分かりやすいよね
利用者が「この処理やーめた」って出来るようにオブジェクトそのものを初期状態へ戻すreset()のメンバ関数を
増やすのなら分かるけど、利用者からしたらいちいち処理の最初に呼び出すinit()は要らんよね
同様に一部のメンバ変数へのSetter(再代入、初期化)は極力排除するべきだと思うよ
オブジェクト内部で処理される絶えず変化するメンバ変数なんて外部からSetするようなものじゃないし
逆に処理に利用される外部から能動的に値を変えない限り定数状態になっているようなメンバ変数なら
オブジェクト構築時に初期化するようにして、それらの値を変えたいなら新しくオブジェクトを構築したら良いと思うよ >>571
> じゃあ、final()の中でinit()しちゃえばいいよねってなるけど
なりません
コンストラクタ/デストラクタを持ってる言語なら init() はコンストラクタで、final() はデストラクタで呼び出せば良い
再利用したいなら削除して再度生成すべき
コンストラクタ/デストラクタを持ってない言語ならinit()→update()→final()を強要するんだからfinal()した後で再利用したいならinit()から強要すべき
中途半端にfinal()の中でinit()なんて呼び出すべきじゃない
そもそも再利用しないならそのinit()は無駄だし >>568
いや、「スナップショット」についてのその感覚は正しいと思う。
再確認するのはいいけど、言われたことにあんまりこだわらないようにね。
って、もう来ないかな?
オレとしてはいろいろ出ていたchange系の名前がよさそうだと思ってたけど、気に入らない理由を聞きたかった。 語感の問題なんだろうけど、スナップショットは任意のある時点って感じで、変化時点って意味は含まなさそう。 >>572
>final()はデストラクタで呼び出せば良い
ああごめん、それらのメンバはオブジェクトを構築破棄する意味合いが強いものじゃなく
そのオブジェクトの目的を処理する意味でのinit()とfinal()
例えば、ハッシュ関数、データを繰り返しupdate()してその処理を終わらせるfinal()
final()はハッシュ値を返すみたいな
>コンストラクタ/デストラクタを持ってない言語なら~
そりゃそうだ
>そもそも再利用しないならそのinit()は無駄だし
その対比として再利用するreset()メンバ関数を例に出したんだけどね
init()は少なくともコンストラクタとreset()の中でコールされるよ
で、オブジェクトの初期化と処理の初期化を1つにして
もし処理を初期化するinit()メンバ関数を設けるなら、publicにはしないよって話だよ >>574
スナップショットって「ここで記録を残したい!」って、それを取り扱う側の任意が強いよね
変化したポイントを必ずしも残したいとは限らないからちょっと違うイメージだな >>576
それは確実に違うw
https://wa3.i-3-i.info/word14388.html
↑の人が簡潔に書いてるように、「何か」のある瞬間の丸ごとの写し、という含意しかない
人が意志を持って作ろうが、一定の間隔で機械的に作成されるものであろうが、それは関係がない 完全に蛇足だけど、VirtualBoxみたいに
完全な写しではなくてもある瞬間の状態が再現可能なデータのことを
スナップショットと呼ぶケースもあるとは思う >>574
変化直後の値であることを名前で明示する必要があるかは微妙だと思う
だって例えば一定間隔でサンプリングされたデータだったらいちいちそんな名前付けんでしょう。 >>525はデータ自体の持ち方より変化した時のみ記録すると言う事を言いたい
って言うのは1名を除いてみんなわかってる話
なのでスナップショットの議論をしてもあまり意味がないと思う >>575
> そのオブジェクトの目的を処理する意味でのinit()とfinal()
> 例えば、ハッシュ関数、データを繰り返しupdate()してその処理を終わらせるfinal()
> final()はハッシュ値を返すみたいな
それならそんな変な名前をつけるべきじゃない
普通にget_result()とかでいいだろ
> init()は少なくともコンストラクタとreset()の中でコールされるよ
>>521が言ってるのはreset()の話な
> まあ俺ならSetDefaultHoge( )とかResetHoge( )とかにするけど
って書いてるあるから普通理解できると思うが >>577
あるにきまってんだろ。
それに、「スナップショット」は、IT用語のスナップショットの意味も強すぎる。 >>580
だから、そんな必要はないだろうと言ってる。
タイムスタンプとデータの写しが保存されていれば、常識的にそれは変化の先頭を
記録したものだと分かる。
それは繰り返しになるが、データの羅列(とサンプリング間隔)を見たら
いちいち一定間隔でサンプリングしたデータだなんて言わなくても分かるのと同じ
そんなことよりそれがナニであるかの方が余程重要な情報だ。
まあ仮にどうしても必要でも、例えばsnapshotOnChangedとかすればいいだけの話だけど
>>582
ないから。
あるというならそう言ってる人の記事の一つでも出してみ。
君が勝手に狭義に思い込んでるだけ。 しかし、すぐに喧嘩ごしで物を言ってくる馬鹿がいるな。
しかも言ってる内容がほんとしょうもない >>583
「スナップショット」は普通に使う言葉なんだが。w
狭義といえばそうだが実際にそうだから。
喧嘩腰に相手される理由を自省しろ。 >>581
そのレスを否定も何もしていないよ
同じことを言っているだけなんだけど、initやinitializeって名称のメンバ関数を表に出すことはなく
初期化は利用者が能動的に使う名称にした方が良いねって説明しただけだよ
で、後半にメンバ変数を個別に初期化するような処理を持たせるにも条件が有るよねって書いたのよ >>583
全体的にほぼ同意
タイムスタンプのフィールド名がただの時刻じゃなく有効期間開始時刻みたいなニュアンスでキーになっているテーブルならもう誤解する人いないレベル
妥協案としてのsnapshotOnChangedもいいな
changeが原形で出てくるとどうも動詞っぽくて座りが悪し >>583
> タイムスタンプとデータの写しが保存されていれば、常識的にそれは変化の先頭を記録したものだと分かる。
等間隔でタイムスタンプとデータを記録することなんて普通にある
> そんなことよりそれがナニであるかの方が余程重要な情報だ。
だからそんなことを思ってるのはお前だけ emploee_with_mail_addressとか
emploee_with_optimistic_lockingみたいなテーブル名が冗長なのと同じ理由で
emploee_snapshot_on_changedなんて説明的な名前になるのだとしたら
本来こっちがemployeeだよなあとは思う ここまで読んだが、スナップショットの定義論争する意味ある?
使ってもいいし使わなくてはならないこともないレベル >>586
> 初期化は利用者が能動的に使う名称にした方が良いねって説明しただけだよ
だから
>> まあ俺ならSetDefaultHoge( )とかResetHoge( )とかにするけど
って書いてあるのに、バカなの? >>590
> ここまで読んだが、スナップショットの定義論争する意味ある?
ない
最初にスナップショットって言い出した>>538が一人でしつこく食い下がってるだけ >>591
書いてあるから何なの?
そのレスの人は自分はそうするって書いているだけで何故かを書いていないでしょ
それをこっちは説明しただけじゃん、何で突っかかってくるの?
まあ、その例に対しても>>571の後半でこっちの意見が書いてあるけどね
この場合はそのレスの人とは意見が異なるよ そう言えば普通に理解できる人じゃなかったんだな…
1ヶ月以上も前のレスに粘着するような人だと言うことを忘れてたよ w 常に差分だけを記録するって
あんまり得策とは言えないからな… 変数名はよく迷うんだけど、
最近、本当に迷っているのは変数名自体じゃなくて、
日本語の英訳だと気付いた。
ググっても、いまいちしっくりこないんだよな。
状況的にこの訳でいいの?って。 たしかに迷ったら書き込むスレだが、そんな日記かポエムはいらん >>597
>>596はええ事ゆうとるやん
おまえのがいらんわw 絶対自分しか読まないなら、そうするけどな。
Dim ななこSOS As Long とか。 Const くりいむレモン As String = "亜美" マス目の中央に十字に線引いて、左上、左下、右上、右下と「田」の字型に4分割していることをイメージさせたい時、
どう短い英単語で表現したらわかりやすいでしょうか? >>611
イメージ的にはライフルのスコープのあれ?
reticleと言うらしい
後は素直に4分割でquarteringぐらいか キューブ4とかスクウェア4とか、そんなんしか思い浮かばん。 >>611
その形が重要なの?目的っぽい名前にはできないの? >>612-616
調べたところ象限という表現が近いと思います(多分
いちばんパッと見て馴染みやすそうなquadrantにしようかと思います
ありがとうございました >>617
形と言うか
中央を基準に左上・左下・右上・右下の4つに分類したいと言った感じでしょうか >>618
象限っていうのは普通は四つに分けた一つのことなんですよw
第〇象限って高1で習ったでしょ。
数学の言葉を使うなら╋は直交座標とかデカルト座標とか言う
でも冗長だと思う SWOT分析みたいな分割図の区画を描くようなイメージなら象限とquadrantでいいんじゃない 象限て久しぶりに思い出したわ
たまには為になるなおまえらもw 2×2であることが自明なんだったらgridでもよさげ そろそろ positioning map でググれ ポジショニングマップって…
さすがに的ハズレすぎだろ quadrantで画像検索するとそれっぽいのが出てくるからこれでイメージ合ってりゃquadrantでいいんじゃね
各領域の呼び方も決まってるぽいし
https://www.google.com/search?q=quadrant 同時に処理できる最大数(制限値)を示す、短い変数名をお願いします >>633
結局さ、「処理」っていうのが抽象的過ぎるから命名に困るんだと思うけどねたぶん。 短くしたいなら漠然とした一般的な部分は削除候補になるので
max_parallel 外部からこの処理やってねって頼まれる場合なら
AcceptLimit? >>636
parallelはちょっと読みすぎやろ。 え?proc_maxも最大プロセス数みたいな感じじゃないの
バッチ処理やバッファリングのサイズ上限みたいなイメージってこと?
むしろRunLimitあたり「魔法のランプは3回まで」みたいな回数限度で、同時であるニュアンスが落ちすぎだと思ってたわ
まあいくつか挙がった内から近いものがあれば選べばいいとは思うが ボタンをn回押すと実行されるイベントがあります。
(回数nは別途指定します)
n回押されたとき、その時刻を設定ファイルに記録するのですが
そこに使うキーとなる文字列をお願いします
foo: 1970-01-01T09:00:00
みたいな感じです >>642
> foo: 1970-01-01T09:00:00
> みたいな感じです
それでなんの問題があるんだ?
あとスレ違いだし ありがとう
特定回数という意味はあえて入れないということかしら >>645
ボタンn回押すのが何かのコマンドか何かであるなら、それを名前に使った方がいいね。
そういうのじゃなく、本当に純粋にボタンがn回押されたタイミングを記録したいだけだとすると
なかなか適切なのが思いつかんなあ >>646
具体的なイベントもコールバックで指定されるんで
なにかが起こるとしか言えない感じ >>647
そういう漠然としたものに名前を与えろっていうのも無理筋な気がするw
まあOnEveryNthClickとか? あーなるほど
n回ってのをそのまま名前にしちゃうという手があったか
いちいち特定回数みたいな日本語に直して考えてたわ Goldfish.AzureGoldfishIsMany() //アジュール色の金魚が多いときに真
のように、形容詞 + クラス名と同じ名詞 + is + 形容詞 という命名の関数があったとして
クラスと関数でGoldfishがダブってるわけだけどどうしてる?
たとえば関数名のほうを消して Goldfish.AzureIsMany() にできるか?みたいな AzureColorIsManyじゃダメなん?
あと多いってのがアバウトじゃね?いいの? このダブってしまうケースに合うとしばらく思考停止してしまう このケースだからそう思うのかもしれないけど、
IsManyを判定できる関数がこのクラスに居るのが違和感
Goldfishの集まりを持っているクラスが他にあって(水槽とか)
FishTank.ContainsManyAzureGoldfishes()
みたいな感じで定義したい
Goldfishクラスには
Goldfish.IsAzure()
関数があればよいはず
まあ単に X.IsAandB() みたいな命名でよいケースもあるような気もする
>>650
「多い」の実装がどうであるかは呼び出し側は気にしたくないんだろう多分 金魚が「Goldfish」なことに違和感。w
直訳?
誰や、んな訳語をつくったんは! >>650
まあ既に指摘されてるけど、集まりを評価する関数を要素のクラスに持たせるのが
そもそも変だねw
何か事情があるにしても、HasManyAzureとかIsRateOfAzureHighでいいんじゃないか。
むしろいちいちGoldfishと断る意味が分からん ■ このスレッドは過去ログ倉庫に格納されています