X



クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001ネミ子
垢版 |
2017/05/07(日) 18:01:52.03ID:akuyRduv
クラス名、変数名のつけ方に悩んだら書き込むスレです。

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

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/
0490デフォルトの名無しさん
垢版 |
2018/11/11(日) 14:59:23.78ID:KBFxC5Cm
まともな教育を受けてたら
シーケンスを分割する
で通じるからな

まず低学歴知恵遅れはシーケンスの意味がわかってない

ここからも低学歴知恵遅れとは意思疎通が不可能なことが分かる
0491デフォルトの名無しさん
垢版 |
2018/11/11(日) 15:09:45.29ID:pB2BIh4x
間違えてる言葉づかいでも通じるんだからこまけえことは気にすんな
はダメだな

それを読む側にはエラー補正を強いられてることも書く側は気にしろってことだ
0492デフォルトの名無しさん
垢版 |
2018/11/11(日) 15:13:30.82ID:XLcO7FFT
理解力ねぇのか??
シーケンスを分割するが文法的に間違ってて
シーケンスに分割するが文法的にあっててるなんて基本的には言ってないんだよ。逆もしかり。
どっちが誤用してようと、他に単語省略されてようと、仮に文法間違ってても補正して『意味がわかる』って言ってるしだけ。

だから論点がずれてるっていってるの
0494デフォルトの名無しさん
垢版 |
2018/11/11(日) 15:19:47.03ID:XLcO7FFT
でもそんな揚げ足とりで毎回紛糾しててもしょうがないからね。まぁ今まさに紛糾してるが
0495デフォルトの名無しさん
垢版 |
2018/11/11(日) 15:29:54.89ID:XLcO7FFT
これで論点がずれてることの恐ろしさを理解できたかね?

もう一方の主張が>>488>>490の意見が間違ってるなんて言ってない、合ってるとも言うのも目的じゃない。だって基本論点ずれてるんだから
0496デフォルトの名無しさん
垢版 |
2018/11/11(日) 15:36:35.75ID:KBFxC5Cm
な、いまだにシーケンスの意味が分かってない
で、著しく頭悪い低学歴知恵遅れが顔真っ赤にして長文連投してるワケ

コレが低学歴知恵遅れ
0498デフォルトの名無しさん
垢版 |
2018/11/11(日) 15:40:46.66ID:KBFxC5Cm
バカはまずバカの自覚がないからな
だからバカは治らない

バカは根治不可能

ホントなバカの自覚がないバカは救いようがない
0499デフォルトの名無しさん
垢版 |
2018/11/11(日) 15:42:11.40ID:KBFxC5Cm
低学歴知恵遅れの自己評価の高さは異常だからな
それは底辺であるほど顕著に見受けられる傾向といえる
0500デフォルトの名無しさん
垢版 |
2018/11/11(日) 16:31:52.39ID:+sA7BjJF
とりあえず己の能力では連投しまくらないと説明できないことについて
相手の理解が足りないだのと馬鹿にするのは違うだろうな

前提条件をはっきりさせりゃ一行で済む内容なのに
相手を馬鹿にすることに命を燃やしてID真っ赤にしてるだけという
0501デフォルトの名無しさん
垢版 |
2018/11/11(日) 17:42:09.70ID:CQux24vL
>>492
君に何を言っても無駄だと思うが....

そもそも話は>>412から始まっている。

意味がわかると言ってるだけで文法的に正しいなどとは言ってない、だって?

それならそもそも俺に突っかかる理由は最初から何もないはずだ。
俺は何を言ってるのか分からない、などとは言ってないのだから。
言葉の使い方がちょっと変だ、つまり文法的におかしいと言っているだけだ。

論点がずれてる?誰の事だよ。大丈夫かほんと

君に限らないが、壁の向こう側の人種は自分の中に
一貫した主張や論理を持つわけでなく、相手の主張に場当たり的に噛みつくからこうなる
0502デフォルトの名無しさん
垢版 |
2018/11/11(日) 17:52:09.85ID:CQux24vL
しかし、壁の向こう側の人たちはあれかね、バグ出して叱られても
「ロジックが正しくなくても意図は分かるはずだ」って言い訳するのかねw
0503デフォルトの名無しさん
垢版 |
2018/11/11(日) 18:13:44.63ID:CQux24vL
しかし、誰か一人ぐらい>>488に対して

「いや選択肢はある。それは>>405が書いたシーケンス以外の別のシーケンスだ」

って反論するのを期待してだけど誰もいなかったw
ではそろそろさようなら
0504デフォルトの名無しさん
垢版 |
2018/11/11(日) 19:57:09.94ID:XLcO7FFT
>>501
だから君と重みが違うんだろ。ガチガチの文法の命の男ににもっと、軽いのりの文法とか深く考えずに、意味がわかるからいいんじゃねみたいなノリで。
流れ見直すと、文法が正しいか正しくないしかしかの話に終始してる男にもう一方はどっちかというと、解釈の仕方がメインでこう捉えれば?が話の流れにしか見えない。一方が文法の詳しい話しても、もう一方はめんぐせそうに避けてるし。
多少流れにぶれあるけど、骨格はそう。
0505デフォルトの名無しさん
垢版 |
2018/11/11(日) 20:17:02.08ID:XLcO7FFT
だから元から論点が違う、もっと砕けた言い方すると、興味ある部分、重要視してる部分が違い元から土俵違って、一人相撲がメインだったのに、隣で張り手しただけなのに自分に飛んできたと勘違いして、お互いヒートアップ。
0508デフォルトの名無しさん
垢版 |
2018/11/11(日) 21:13:54.61ID:XLcO7FFT
>>501
うん。だから、そこは謝る部分はある。
誤用してようが、誤用してまいが、「いいたい事分かるしというレベル」で別に「誤用」してないという軽い気持ちで最初に突っ込んだのは事実。
俺の発端はこれ。
だから、>>432>>449で文法深く突っ込んできてもどうでもよかったから、>>455で逃げたのも事実。
こっちからも文法の話絡めてるけど、それは、相手の興味のレベルまで頑張って下げようとして、答えてる部分もあるから、今思うと
無理やりすぐにひねり出して一貫性ないのがある部分も事実。
それはお互い様の部分もある。君は文法の正しさしか興味なかったら、こっちの話は興味まったくなくて、一切、合わせようとしなかった。
0509デフォルトの名無しさん
垢版 |
2018/11/11(日) 21:23:28.44ID:XLcO7FFT
だから、言い訳すると、相手の興味のレベルに合わせることは大変なんだって。
君は文法の正しさしか興味なかったのが一貫してるのは事実で、
>こっちは、誤用してまいが、「いいたい事分かるしというレベル」で別に「誤用」してないという軽い気持ちで最初に突っ込んだのは事実。
と書いたように、元から興味のある部分が違ってから、途中からずれちゃった。だからは、俺は誤用してようが誤用しいまが
それを補正してどう解釈すればいいかみたいな話だけしか興味なかった。。

だから、お互いの興味のある部分、論点が途中からずれてた。

悪かったよw
0511デフォルトの名無しさん
垢版 |
2018/11/12(月) 00:04:00.10ID:tWf5f5+F
>>501
最後に君が一番知りたい話で締めくくらせてもらうと、「シーケンスに分割」は誤用だな。

俺の中じゃ一番初めに「Aというシーケンスに分割」でシーケンスはAの並びだからつまりこの場合、「Aに分割」って言いたいんだろうなって、
本当の文法の正確性を全く考慮しないこんな感じの論点で言いたい事わかるから「誤用」じゃないって速攻で決まってて。

文法のこと内心は本当はどうでもよかったら、君の数々の「文法の正当性」発言を何この主張?意味わからねぇー。めんどくせぇー。で
しっかり考える時間もなかったし、考えたくもなかった。

で、やっと、君の興味のレベルに下りて考えたら君の言いたかった事と途中で論点がずれてるのに気づかない自分とかにも気づいた。

悪かったwすまん。
0513デフォルトの名無しさん
垢版 |
2018/12/05(水) 17:57:49.17ID:TaacW6QE
メンバ変数hogeに対して
null(デフォルト)、定数FOO、BAR、BAZ… の値が指定できる

・hogeに引数で指定した任意の値を代入:SetHoge(arg)
・hogeをデフォルトに戻す:InitHoge()
が既にあるとして
・hogeに決め打ちでfooを代入(引数なし)
・hogeに別処理で選ばれた値を代入(引数なし)
を加えるならどうする?

SetHogeToFoo()とApplyHoge()とか?
0514デフォルトの名無しさん
垢版 |
2018/12/05(水) 18:10:38.09ID:UePR8ZmJ
hogeって変数の存在が表に出すぎじゃね?
もっと裏の意図がわかる名前がよかったりしない?
0517デフォルトの名無しさん
垢版 |
2018/12/05(水) 23:34:30.85ID:qhm35JGJ
定数FOOを決めうちでセットさせたいときは素直にsetHoge(FOO)でしょう
静的型付け言語ならFOOをタイプセーフな定数として宣言すると収まりがいい
いちいちsetHogeFoo()等をとりうる値全てに用意するのはナシ
値FOOにだけ専用メソッドが欲しいと感じるなら特定の関係性があることを示唆しているはずで
その関係に相応しい動詞や名詞を探すとしっくりくるかも
0518デフォルトの名無しさん
垢版 |
2018/12/06(木) 00:49:51.41ID:7gLmvWFH
>>517に同意
hogeを保持するオブジェクトにおけるその決め打ちとは何ぞや?って考えてみたら良いんじゃね
あとInitHoge()みたいなのは正直いらないというか、表に出すようなものじゃない
0519デフォルトの名無しさん
垢版 |
2018/12/06(木) 12:27:56.03ID:gL69SzmY
レイヤを曖昧にしたままで名付けようたするから
回答側も無意識に想定しとるレイヤで自由気ままに答えるわなそらw
0521デフォルトの名無しさん
垢版 |
2018/12/06(木) 20:05:04.82ID:VHVkoIH2
>>517には同意

>>518
> あとInitHoge()みたいなのは正直いらないというか、表に出すようなものじゃない
意味わからん
既定値に戻したいことってそれなりにあると思うが
まあ俺ならSetDefaultHoge( )とかResetHoge( )とかにするけど
0522デフォルトの名無しさん
垢版 |
2018/12/08(土) 05:26:15.95ID:dxVV+Spa


>>517
FOOだけならいいけど、実際には
SetHoge(VeryLong.VeryLongLong.VeryVeryLongLong.BAR) だったり
SetHoge(ARG_BAZ1,ARG_BAZ2,ARG_BAZ3) でワンセットだったりするんだよな

前者のパターンはともかく(いくらでも短縮する方法があるので)
後者に関しては、専用の関数を作っちゃうのが楽かな?って発想だった
0523デフォルトの名無しさん
垢版 |
2018/12/08(土) 08:40:44.79ID:cU1wwKjA
>>522
複数の値を取るものは引数同士の結び付きと、親との関係性による
SetHoge(春、夏、秋、冬)ならSetHoge(四季)が自然
四季という組み合わせ方がそのクラスの機能の一部として隠蔽されているのはおかしいので専用メソッドは変
Set(しょうゆ、みりん、酒)ならSetHogeFor割り下()もアリかなと思う
レシピを型として用意した方が綺麗だとは思うけど、調理人Interfaceの固有知識と捉えても差し支えなさそうなので
0524デフォルトの名無しさん
垢版 |
2018/12/08(土) 10:06:57.89ID:dxVV+Spa
なるほど、ありがとう
あと、その語のチョイスに至った言語センスを分けてくれw
0525デフォルトの名無しさん
垢版 |
2019/01/15(火) 01:03:43.65ID:SGxt71Ww
永続するデータの変化点を時刻と共に持ち、変化点をまとめてデータの移り変わりを表現したいと思っています。

この場合、変化点に望ましい名前は何がありますでしょうか?

timeSectionなどでしょうか?

何か良いものがあれば教えて下さい。
0526デフォルトの名無しさん
垢版 |
2019/01/15(火) 01:27:26.64ID:DUfu4s9f
その前に変化点って日本語が何を意味してるのか全然分かりません。
構造体の中で値が変化したメンバー(の名前)とかそういう意味?
0528デフォルトの名無しさん
垢版 |
2019/01/15(火) 07:19:25.94ID:MVbWnd0w
値の変化だとたんにchangeってこともあるし
状態の変化だとtransitionがよかったり。
0530デフォルトの名無しさん
垢版 |
2019/01/15(火) 08:53:32.68ID:UmHwNds4
時系列で持つデータは名前にそのニュアンスを入れないという選択もある
データベースの履歴テーブルとかそう
イチイチChangePointだのTimeSegmentだの付けてるとくどい
集合をhistoryと呼ぶのは慣例的によく使うけど、その個々のエントリーに対してhistoryと呼んでしまったら微妙
versions, revisions, snapshotsあたりもアリかな
0531デフォルトの名無しさん
垢版 |
2019/01/15(火) 09:03:36.69ID:P8gJFdAf
点(タイミング)に焦点合わせてるみたいだけど
「データの移り変わりを表現」なんだから流れとして見てログとかじゃダメなん?
0532デフォルトの名無しさん
垢版 |
2019/01/15(火) 13:00:12.01ID:ToRrrvnY
>>529
素直も糞も、だから変化点でもChangingPointでも何でもいいけど、それって何なんだとw

率直にいって質問者が何を言ってるのかさっぱり分からんけど、
よくこんな意味不明な質問にみんな解答できるよなw
0534デフォルトの名無しさん
垢版 |
2019/01/15(火) 14:32:55.01ID:eyAI2VNQ
悩ましいネタだからもう少し具体的に書いてくれた方がいい答えが付くのにとは思う
プライバシーを晒したくないなら似た何かに置き換えてくれてもいいし
せめて変化点が4M管理の話なのか実測データのプロットなのか何かの改編履歴なのか…
命名ってデリケートで、一般化して質問されると回答も抽象度が増してズレることが結構ある
0535デフォルトの名無しさん
垢版 |
2019/01/15(火) 17:49:37.98ID:a+40Cmk8
マジで
> データの変化点を時刻と共に持ち
で何をしたいのかがわからん奴は黙ってて欲しいわ
4M管理とか頓珍漢すぎるし
0536デフォルトの名無しさん
垢版 |
2019/01/15(火) 18:21:03.25ID:ToRrrvnY
>>535
そういう御託はいいから、本気でそう思うなら変化点とやらが何を意味してるのか説明してみ。
まあ無理しなくていいよ。
この手の輩は物事を深く考えてないだけ。
0537デフォルトの名無しさん
垢版 |
2019/01/15(火) 18:52:44.24ID:iQtSxldH
引っ込みつかなくなってるのか?
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
のようにして管理したいってことだろ
0538デフォルトの名無しさん
垢版 |
2019/01/15(火) 20:21:00.20ID:ToRrrvnY
何が引っ込みなんだろうねえ
意味がわからないよ

求められてるのは変化点が何を意味してるかなんですが。
それ、時刻と一緒にデータそのもののスナップショットを保存してるだけじゃないのアホか
0540デフォルトの名無しさん
垢版 |
2019/01/15(火) 21:10:08.07ID:iQtSxldH
>>538
> それ、時刻と一緒にデータそのもののスナップショットを保存してるだけ
わざわざ
> データの変化点を時刻と共に持ち
って書いてあるのに…
0543デフォルトの名無しさん
垢版 |
2019/01/15(火) 21:35:55.69ID:ToRrrvnY
まあこのお馬鹿さん以外の人に言うけど、最初から言ってるように変化点が何を意味してるのか、
それを厳密に定義するとどういうことなのか、深く追求せずに曖昧なままイーメージ的にとらえると
彼みたいな訳の分からん話になる。
0545デフォルトの名無しさん
垢版 |
2019/01/15(火) 22:49:25.11ID:sS85uSF2
ID:ToRrrvnY
あほなのかな。
わからんならだまってればいいのに。
めんどくさ。
0546デフォルトの名無しさん
垢版 |
2019/01/15(火) 23:05:48.19ID:ToRrrvnY
>>545
馬鹿はお前だよ
お前が質問者の求めているものの意味が分かるなら黙って解答すればいい。
それもしないで他人に喧嘩うってるじゃねえよ馬鹿が
0547デフォルトの名無しさん
垢版 |
2019/01/15(火) 23:15:15.49ID:ToRrrvnY
(a) 変化点 = 変更された時刻 + 変更後のデータ

仮にこういう定義なら>>525の「変化点をまとめてデータの移り変わりを表現したい」
と整合性がある。

>>525の質問が謎なのは、その前段が、
>永続するデータの変化点を時刻と共に持ち
ってなってること。

つまり変化点は時刻を含まず、(a)の定義はありえない
0548デフォルトの名無しさん
垢版 |
2019/01/15(火) 23:22:50.99ID:ToRrrvnY
いや、最初は単純に、

(b) 変化点 = 変更後のデータ

のことを言ってるのかとも思ったが、それだと質問者自身がこれをtimeSection
と仮に命名してることと整合性がない
0549デフォルトの名無しさん
垢版 |
2019/01/15(火) 23:26:50.99ID:t/5nbUR/
> お前が質問者の求めているものの意味が分かるなら黙って解答すればいい。
> それもしないで他人に喧嘩うってるじゃねえよ馬鹿が
既に>>527-531辺りで回答されてるのに何言ってるんだよww

> それもしないで他人に喧嘩うってるじゃねえよ馬鹿が
こんなわかりやすいブーメラン久々に見たわ
0552デフォルトの名無しさん
垢版 |
2019/01/16(水) 01:13:44.29ID:j0mN8L0/
525です。
色々な解答ありがとうございます。
具体的にと出たので後出しで申し訳ないのですが、どのような物を想定しているかを書かせていただきます。

547さんのa)そのままなのですが、DBを利用し、
変更された時刻と変更後のデータをテーブルに保持します。
上記テーブルから「変更された時刻」から「直後の変更された時刻」までを期間として持つビューを作成し、実際に利用する際はこのビューを利用します。

今回は、a)のテーブルにどのような名前(の要素)を付けたら良いかと思い質問させていただきました。

timeSectionは思い付く単語を並べただけですので無視してください。
0554デフォルトの名無しさん
垢版 |
2019/01/16(水) 02:35:29.82ID:5OqP3lb1
やっぱりごくありふれた歴アリのテーブル構造だよな
ならcustomerテーブルやelectric_currentテーブルみたいな簡潔な名前ではダメなん?
0556デフォルトの名無しさん
垢版 |
2019/01/16(水) 18:49:45.18ID:V+R6JUG+
>>552
くどくて済まんけど、要するにsnapshotだよねそれ。
差分とかじゃなくて変更後のベタなデータなんでしょ?
0557デフォルトの名無しさん
垢版 |
2019/01/16(水) 18:59:59.07ID:V6eCyENB
>>547
aだってよ?w
おまえいがいはそうぞうがついてたが。

これからは、わからんかったらだまってるようにな!
0558デフォルトの名無しさん
垢版 |
2019/01/16(水) 19:05:47.57ID:V6eCyENB
>>556
snapshotは違う気がするな。
スナップショットはあんまり連続させないし、ふつうは対象が変化自体ではないからか。

上にも似たようなのがあったけど、ValueChangeくらいでいいんじゃないの?
0559デフォルトの名無しさん
垢版 |
2019/01/16(水) 19:11:47.45ID:V+R6JUG+
>>557
>そうぞうがついてた
頭悪いね。
問題にしているのは質問文から「変化点」の意味を正確に読み取れるかどうか。
質問者自身が認めているようにそれは明らかにNoだ。

俺が想像したのと大体同じ、だから俺の勝ち、これガキの論理。


>>558
https://wa3.i-3-i.info/word14388.html
0562デフォルトの名無しさん
垢版 |
2019/01/16(水) 20:34:51.10ID:CoXAL/Bw
>>559
もういちどいってあげるけど、ひとりいがいはよみとれてたよ?
しつもんしゃのけんそんをこんきょにするなんて、あほのうえに、ずうずうしいぞ。
0563デフォルトの名無しさん
垢版 |
2019/01/17(木) 02:22:34.82ID:PFDsT50a
525です。
皆様色々なご解答ありがとうございました。単語の意味などを調べつつ適切な物を選びたいと思います。

自分の質問が悪かったのですが、
変化点=変更後のデータ
欲しかったもの=変更時の時刻と変更後のデータを表す命名(の要素)

となります。誤解を招く質問で申し訳ありませんでした。
0564デフォルトの名無しさん
垢版 |
2019/01/17(木) 02:27:35.15ID:PFDsT50a
>>554さん
実際のデータ(の表現)はviewで、変化した時点のデータのみをテーブルで保持したいので、提案いただいたものはviewにつけたいと思っています。

>>556さん
リンクも見させていただきましたが、snapshotとは少し違うかと感じてしまいました。

自分が抱いているイメージとしては、
金太郎飴(ストリーム)と切断面(時刻と変更後のデータ)になります。
今回は切断面の名称だったので。

長々と失礼しました。
0565デフォルトの名無しさん
垢版 |
2019/01/17(木) 03:29:03.79ID:vfGlmNuh
んーよー分からんw
ゲームのコントローラーの入力状態の履歴みたいなイメージなんだろうか。
それならsnapshotは違うというのもちょっとわからんでもないけど...

しかし、状態変化直後の状態の写し(スナップショット)の記録に違いはないと思うんだけどな
0566デフォルトの名無しさん
垢版 |
2019/01/17(木) 07:42:56.78ID:Mk9NqJjw
質問のポイントは、金太郎飴な等間隔時系列データ(VIEW)と、変化点だけに圧縮した時系列データ(TABLE)の2つのオブジェクトをDBに作るから、それぞれを識別できるように名付けたいということだな
しかも集合と要素のどちらも呼び分けたいという思いがあると
0567デフォルトの名無しさん
垢版 |
2019/01/17(木) 07:47:10.89ID:Mk9NqJjw
要素には別々の名前をつける意味はないと思う
そのTABLEはVIEWの部分集合に他ならないから、集合だけに個別の名前を与えるのが妥当

集合の名前については、繰り返しになってしまうけど、永続化するときに変化点だけに圧縮するのは最も一般的な時系列データの持ち方だから、俺なら等間隔に展開した冗長な(奇異な)VIEWの側に説明的な名前をつけて欲しいわ
前か後ろにequal_intervalを付けるとか

そもそもその奇異なVIEWの存在意義が
気になる
速度もメモリ量も性能悪そう
ツリー構造の索引を持つデータとしてメモリ内に読み出しておいて、任意時点のデータを取るメソッドを付けて、必要ならflyweightパターンにしたい
もちろん事情があるならそのままでいい
0568デフォルトの名無しさん
垢版 |
2019/01/17(木) 09:58:31.61ID:nLgHX1a9
525です

>>565さん
自分がスナップショットの意味を取り違えていると思いますので、意味を調べ直してきます。

>>566さん
今想定しているのは時間は等間隔ではありません。状態やデータが変化した時のみ保持し、不規則なデータの移り変わりを表現したいと考えています。

>>567さん
今のところは、主体をview、変化点(と言ってしまいますが)は要素として考えています。

この考え方は自分の知識が弱いこともあると思いますので、改めて考え直してみます。

金太郎飴の例が悪かったですね。
今後は伝わりやすい例を考慮してから質問させていただきます。
0570デフォルトの名無しさん
垢版 |
2019/01/17(木) 11:50:07.39ID:CnuSa2VM
>>567
まだ言ってるのかよ…

> そもそもその奇異なVIEWの存在意義が気になる
> 速度もメモリ量も性能悪そう

>> 命名規則や設計の善し悪しについて議論するのは基本的に禁止。
0571デフォルトの名無しさん
垢版 |
2019/01/17(木) 15:59:55.65ID:LP4V/wDK
>>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するようなものじゃないし
逆に処理に利用される外部から能動的に値を変えない限り定数状態になっているようなメンバ変数なら
オブジェクト構築時に初期化するようにして、それらの値を変えたいなら新しくオブジェクトを構築したら良いと思うよ
0572デフォルトの名無しさん
垢版 |
2019/01/17(木) 19:44:55.80ID:PY4oP9Xp
>>571
> じゃあ、final()の中でinit()しちゃえばいいよねってなるけど
なりません

コンストラクタ/デストラクタを持ってる言語なら init() はコンストラクタで、final() はデストラクタで呼び出せば良い
再利用したいなら削除して再度生成すべき
コンストラクタ/デストラクタを持ってない言語ならinit()→update()→final()を強要するんだからfinal()した後で再利用したいならinit()から強要すべき
中途半端にfinal()の中でinit()なんて呼び出すべきじゃない
そもそも再利用しないならそのinit()は無駄だし
0573デフォルトの名無しさん
垢版 |
2019/01/17(木) 20:02:41.35ID:nhRmKYsV
>>568
いや、「スナップショット」についてのその感覚は正しいと思う。
再確認するのはいいけど、言われたことにあんまりこだわらないようにね。

って、もう来ないかな?

オレとしてはいろいろ出ていたchange系の名前がよさそうだと思ってたけど、気に入らない理由を聞きたかった。
0574デフォルトの名無しさん
垢版 |
2019/01/17(木) 21:11:21.86ID:/APrNkEA
語感の問題なんだろうけど、スナップショットは任意のある時点って感じで、変化時点って意味は含まなさそう。
0575デフォルトの名無しさん
垢版 |
2019/01/17(木) 21:36:53.38ID:LP4V/wDK
>>572
>final()はデストラクタで呼び出せば良い
ああごめん、それらのメンバはオブジェクトを構築破棄する意味合いが強いものじゃなく
そのオブジェクトの目的を処理する意味でのinit()とfinal()
例えば、ハッシュ関数、データを繰り返しupdate()してその処理を終わらせるfinal()
final()はハッシュ値を返すみたいな

>コンストラクタ/デストラクタを持ってない言語なら~
そりゃそうだ

>そもそも再利用しないならそのinit()は無駄だし
その対比として再利用するreset()メンバ関数を例に出したんだけどね
init()は少なくともコンストラクタとreset()の中でコールされるよ

で、オブジェクトの初期化と処理の初期化を1つにして
もし処理を初期化するinit()メンバ関数を設けるなら、publicにはしないよって話だよ
0576デフォルトの名無しさん
垢版 |
2019/01/17(木) 21:46:08.66ID:LP4V/wDK
>>574
スナップショットって「ここで記録を残したい!」って、それを取り扱う側の任意が強いよね
変化したポイントを必ずしも残したいとは限らないからちょっと違うイメージだな
0577デフォルトの名無しさん
垢版 |
2019/01/17(木) 22:05:06.73ID:1ADJk1Ta
>>576
それは確実に違うw
https://wa3.i-3-i.info/word14388.html
↑の人が簡潔に書いてるように、「何か」のある瞬間の丸ごとの写し、という含意しかない
人が意志を持って作ろうが、一定の間隔で機械的に作成されるものであろうが、それは関係がない
0578デフォルトの名無しさん
垢版 |
2019/01/17(木) 22:11:14.58ID:1ADJk1Ta
完全に蛇足だけど、VirtualBoxみたいに
完全な写しではなくてもある瞬間の状態が再現可能なデータのことを
スナップショットと呼ぶケースもあるとは思う
0579デフォルトの名無しさん
垢版 |
2019/01/17(木) 22:17:04.64ID:1ADJk1Ta
>>574
変化直後の値であることを名前で明示する必要があるかは微妙だと思う
だって例えば一定間隔でサンプリングされたデータだったらいちいちそんな名前付けんでしょう。
0580デフォルトの名無しさん
垢版 |
2019/01/17(木) 22:27:55.19ID:1X2RnAg+
>>525はデータ自体の持ち方より変化した時のみ記録すると言う事を言いたい
って言うのは1名を除いてみんなわかってる話
なのでスナップショットの議論をしてもあまり意味がないと思う
0581デフォルトの名無しさん
垢版 |
2019/01/17(木) 22:44:49.84ID:3livcPKT
>>575
> そのオブジェクトの目的を処理する意味でのinit()とfinal()
> 例えば、ハッシュ関数、データを繰り返しupdate()してその処理を終わらせるfinal()
> final()はハッシュ値を返すみたいな
それならそんな変な名前をつけるべきじゃない
普通にget_result()とかでいいだろ

> init()は少なくともコンストラクタとreset()の中でコールされるよ
>>521が言ってるのはreset()の話な
> まあ俺ならSetDefaultHoge( )とかResetHoge( )とかにするけど
って書いてるあるから普通理解できると思うが
0582デフォルトの名無しさん
垢版 |
2019/01/17(木) 22:52:28.78ID:nhRmKYsV
>>577
あるにきまってんだろ。

それに、「スナップショット」は、IT用語のスナップショットの意味も強すぎる。
0583デフォルトの名無しさん
垢版 |
2019/01/17(木) 23:19:06.78ID:1ADJk1Ta
>>580
だから、そんな必要はないだろうと言ってる。
タイムスタンプとデータの写しが保存されていれば、常識的にそれは変化の先頭を
記録したものだと分かる。

それは繰り返しになるが、データの羅列(とサンプリング間隔)を見たら
いちいち一定間隔でサンプリングしたデータだなんて言わなくても分かるのと同じ

そんなことよりそれがナニであるかの方が余程重要な情報だ。

まあ仮にどうしても必要でも、例えばsnapshotOnChangedとかすればいいだけの話だけど


>>582
ないから。
あるというならそう言ってる人の記事の一つでも出してみ。
君が勝手に狭義に思い込んでるだけ。
0584デフォルトの名無しさん
垢版 |
2019/01/17(木) 23:19:56.06ID:1ADJk1Ta
しかし、すぐに喧嘩ごしで物を言ってくる馬鹿がいるな。
しかも言ってる内容がほんとしょうもない
0585デフォルトの名無しさん
垢版 |
2019/01/17(木) 23:31:16.65ID:TwUEGMBG
>>583
「スナップショット」は普通に使う言葉なんだが。w
狭義といえばそうだが実際にそうだから。

喧嘩腰に相手される理由を自省しろ。
0586デフォルトの名無しさん
垢版 |
2019/01/18(金) 05:15:11.78ID:SF688hqs
>>581
そのレスを否定も何もしていないよ
同じことを言っているだけなんだけど、initやinitializeって名称のメンバ関数を表に出すことはなく
初期化は利用者が能動的に使う名称にした方が良いねって説明しただけだよ
で、後半にメンバ変数を個別に初期化するような処理を持たせるにも条件が有るよねって書いたのよ
0587デフォルトの名無しさん
垢版 |
2019/01/18(金) 07:03:04.62ID:QqlHmxfI
>>583
全体的にほぼ同意
タイムスタンプのフィールド名がただの時刻じゃなく有効期間開始時刻みたいなニュアンスでキーになっているテーブルならもう誤解する人いないレベル
妥協案としてのsnapshotOnChangedもいいな
changeが原形で出てくるとどうも動詞っぽくて座りが悪し
0588デフォルトの名無しさん
垢版 |
2019/01/18(金) 07:16:09.93ID:dGgLcYHd
>>583
> タイムスタンプとデータの写しが保存されていれば、常識的にそれは変化の先頭を記録したものだと分かる。
等間隔でタイムスタンプとデータを記録することなんて普通にある

> そんなことよりそれがナニであるかの方が余程重要な情報だ。
だからそんなことを思ってるのはお前だけ
0589デフォルトの名無しさん
垢版 |
2019/01/18(金) 07:17:54.96ID:QqlHmxfI
emploee_with_mail_addressとか
emploee_with_optimistic_lockingみたいなテーブル名が冗長なのと同じ理由で
emploee_snapshot_on_changedなんて説明的な名前になるのだとしたら
本来こっちがemployeeだよなあとは思う
■ このスレッドは過去ログ倉庫に格納されています

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