クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
クラス名、変数名のつけ方に悩んだら書き込むスレです。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/ >>522
複数の値を取るものは引数同士の結び付きと、親との関係性による
SetHoge(春、夏、秋、冬)ならSetHoge(四季)が自然
四季という組み合わせ方がそのクラスの機能の一部として隠蔽されているのはおかしいので専用メソッドは変
Set(しょうゆ、みりん、酒)ならSetHogeFor割り下()もアリかなと思う
レシピを型として用意した方が綺麗だとは思うけど、調理人Interfaceの固有知識と捉えても差し支えなさそうなので なるほど、ありがとう
あと、その語のチョイスに至った言語センスを分けてくれw 永続するデータの変化点を時刻と共に持ち、変化点をまとめてデータの移り変わりを表現したいと思っています。
この場合、変化点に望ましい名前は何がありますでしょうか?
timeSectionなどでしょうか?
何か良いものがあれば教えて下さい。 その前に変化点って日本語が何を意味してるのか全然分かりません。
構造体の中で値が変化したメンバー(の名前)とかそういう意味? 値の変化だとたんにchangeってこともあるし
状態の変化だとtransitionがよかったり。 >>525
素直にChangingPointで良いかと 時系列で持つデータは名前にそのニュアンスを入れないという選択もある
データベースの履歴テーブルとかそう
イチイチChangePointだのTimeSegmentだの付けてるとくどい
集合をhistoryと呼ぶのは慣例的によく使うけど、その個々のエントリーに対してhistoryと呼んでしまったら微妙
versions, revisions, snapshotsあたりもアリかな 点(タイミング)に焦点合わせてるみたいだけど
「データの移り変わりを表現」なんだから流れとして見てログとかじゃダメなん? >>529
素直も糞も、だから変化点でもChangingPointでも何でもいいけど、それって何なんだとw
率直にいって質問者が何を言ってるのかさっぱり分からんけど、
よくこんな意味不明な質問にみんな解答できるよなw 悩ましいネタだからもう少し具体的に書いてくれた方がいい答えが付くのにとは思う
プライバシーを晒したくないなら似た何かに置き換えてくれてもいいし
せめて変化点が4M管理の話なのか実測データのプロットなのか何かの改編履歴なのか…
命名ってデリケートで、一般化して質問されると回答も抽象度が増してズレることが結構ある マジで
> データの変化点を時刻と共に持ち
で何をしたいのかがわからん奴は黙ってて欲しいわ
4M管理とか頓珍漢すぎるし >>535
そういう御託はいいから、本気でそう思うなら変化点とやらが何を意味してるのか説明してみ。
まあ無理しなくていいよ。
この手の輩は物事を深く考えてないだけ。 引っ込みつかなくなってるのか?
Time | Data
00:00| 001
00:01| 001
00:02| 002
00:03| 003
00:04| 003
00:05| 002
00:06| 002
00:07| 002
00:08| 001
00:09| 001
みたいなデータを
Time | Data
00:00| 001
00:02| 002
00:03| 003
00:05| 002
00:08| 001
のようにして管理したいってことだろ 何が引っ込みなんだろうねえ
意味がわからないよ
求められてるのは変化点が何を意味してるかなんですが。
それ、時刻と一緒にデータそのもののスナップショットを保存してるだけじゃないのアホか >>538
> それ、時刻と一緒にデータそのもののスナップショットを保存してるだけ
わざわざ
> データの変化点を時刻と共に持ち
って書いてあるのに… >>540
頭悪そうだけど、>>537で「時刻と共に持」っているのはデータのスナップショット。
マジで大丈夫かおたく はいはい、理解力が壊滅的に無い奴に何言っても無駄だわな w まあこのお馬鹿さん以外の人に言うけど、最初から言ってるように変化点が何を意味してるのか、
それを厳密に定義するとどういうことなのか、深く追求せずに曖昧なままイーメージ的にとらえると
彼みたいな訳の分からん話になる。 ID:ToRrrvnY
あほなのかな。
わからんならだまってればいいのに。
めんどくさ。 >>545
馬鹿はお前だよ
お前が質問者の求めているものの意味が分かるなら黙って解答すればいい。
それもしないで他人に喧嘩うってるじゃねえよ馬鹿が (a) 変化点 = 変更された時刻 + 変更後のデータ
仮にこういう定義なら>>525の「変化点をまとめてデータの移り変わりを表現したい」
と整合性がある。
>>525の質問が謎なのは、その前段が、
>永続するデータの変化点を時刻と共に持ち
ってなってること。
つまり変化点は時刻を含まず、(a)の定義はありえない いや、最初は単純に、
(b) 変化点 = 変更後のデータ
のことを言ってるのかとも思ったが、それだと質問者自身がこれをtimeSection
と仮に命名してることと整合性がない > お前が質問者の求めているものの意味が分かるなら黙って解答すればいい。
> それもしないで他人に喧嘩うってるじゃねえよ馬鹿が
既に>>527-531辺りで回答されてるのに何言ってるんだよww
> それもしないで他人に喧嘩うってるじゃねえよ馬鹿が
こんなわかりやすいブーメラン久々に見たわ 俺はネトウヨじゃないけど、ほとんど韓国人の理屈だなそれw 525です。
色々な解答ありがとうございます。
具体的にと出たので後出しで申し訳ないのですが、どのような物を想定しているかを書かせていただきます。
547さんのa)そのままなのですが、DBを利用し、
変更された時刻と変更後のデータをテーブルに保持します。
上記テーブルから「変更された時刻」から「直後の変更された時刻」までを期間として持つビューを作成し、実際に利用する際はこのビューを利用します。
今回は、a)のテーブルにどのような名前(の要素)を付けたら良いかと思い質問させていただきました。
timeSectionは思い付く単語を並べただけですので無視してください。 やっぱりごくありふれた歴アリのテーブル構造だよな
ならcustomerテーブルやelectric_currentテーブルみたいな簡潔な名前ではダメなん? >>553
心配しなくても誤解してるのは1名だけww
普通はあの書き方で充分わかる >>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 ■ このスレッドは過去ログ倉庫に格納されています