◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

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


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1494147712/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1ネミ子2017/05/07(日) 18:01:52.03ID:akuyRduv
クラス名、変数名のつけ方に悩んだら書き込むスレです。

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

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/

2ネミ子2017/05/07(日) 18:03:36.48ID:akuyRduv
無関係スレ
設計・命名スレ
http://echo.2ch.net/test/read.cgi/tech/1477368563/

設計から喧々諤々されたい殿方は別スレがございますので、そちらをご利用ください。

3デフォルトの名無しさん2017/05/07(日) 18:17:56.16ID:/2PQHse0

4デフォルトの名無しさん2017/05/10(水) 02:45:04.00ID:YgxPtTuh
データベース的なものを想像して欲しい。
あるデータ群(オブジェクトの配列)を画面出力するとき、出力イベントをフックして

 ・「表示/非表示」を切り替える(単純にreturn falseだけで済むような処理ではない)
 ・「見た目」を切り替える(色変更や予め用意した画像に変更など)

の2つが必要なとき、それぞれどんな単語を使えばいい?
紛らわしくなく、かつ統一感のある関数名にしたい。

上記2つは呼び出すタイミングが微妙に異なるため、一括にはしにくい。
また、出力を切り替えると言っても、実際には個々のオブジェクトに含まれている値やメンバ変数を読み込み、
その設定を適用させるといった内容になる。

5デフォルトの名無しさん2017/05/10(水) 07:56:10.53ID:oAoKVhQv
visibityとstyle

6デフォルトの名無しさん2017/05/10(水) 08:06:31.31ID:YgxPtTuh
ありがとう、それでいく
出社前にスレ確認できてよかった

7デフォルトの名無しさん2017/05/16(火) 21:12:59.38ID:5gubPtqb
通信やファイルへ書込を伴う処理で
一旦変数に代入(書き込み予約)してから、任意のタイミングで確定させて処理したい

確定処理ってupdate? apply? commit? finalize? save?
それとこの場合の代入ってsetでいい?

8デフォルトの名無しさん2017/05/16(火) 21:43:09.50ID:AGzM1pll
もう少し詳しく書かないと何とも状況が分からんね

9デフォルトの名無しさん2017/05/16(火) 22:08:11.06ID:5HaY8++G
むしろ確定の方をsetにした方がいいような…

を確定するの英訳|英辞郎 on the WEB:アルク
https://eow.alc.co.jp/search?q=%E3%82%92%E7%A2%BA%E5%AE%9A%E3%81%99%E3%82%8B

予約、だと自分はreserveをよく使うな…

10デフォルトの名無しさん2017/05/16(火) 22:12:30.84ID:64KrDfHK
stageとcommitかな
でもwriteやsendといった実際の物理的な動作をイメージさせる名前を差し置いてまで強調するようなことだとは俺は思わないけどな
抽象的な名前は基本的に糞

11デフォルトの名無しさん2017/05/16(火) 23:16:14.08ID:5gubPtqb
ReserveFoo()とかが並ぶのか
代入の接頭詞はset、みたいなイメージあると代入にしろ確定にしろ結構離れる感じね


>>10
一応、write()と同じくらいのレベルでsave()を想定してた

12デフォルトの名無しさん2017/05/17(水) 10:22:15.30ID:vwwaD4yq
>>7
その言語でよく使われているORマッパーとか参考にすると
他の人にも理解してもらえそう

13デフォルトの名無しさん2017/05/17(水) 10:24:01.10ID:vwwaD4yq
setかどうかはmodelかviewかによるかな
modelならset

14デフォルトの名無しさん2017/05/17(水) 11:04:25.83ID:GJ9WSlKV
>>7
BufferedFile f;
f.write(data);
f.flush();

BufferedConnection c;
c.write(data); // or c.send(data)
c.flush();

15デフォルトの名無しさん2017/05/18(木) 12:25:59.00ID:xXCtzo0J
Series を列挙する型と、それを格納する変数。
C# だと

enum Series {
 A,
 B
}
Series Series;

とできなくはないけど、別にしたい。
たいていは列挙の方を複数、変数を単数にするんだけど、複数と単数で変化がないものはどうしたもんか。

16デフォルトの名無しさん2017/05/18(木) 12:39:39.31ID:eX+vCwZM
>>15
靴に足を合わせた方がいいと思うよ

型名と変数名が同じだと気持ち悪いという感覚が時代遅れだから、
名前を小細工するより自分の感覚を修正した方がいいんじゃないかしら

17デフォルトの名無しさん2017/05/18(木) 13:22:41.48ID:nmM7QGeO
>>15
型名は大文字から、変数名は小文字から始めればよい

18デフォルトの名無しさん2017/05/18(木) 21:24:31.73ID:3g1FRJ8u
十分にスコープが狭いならsでも別にいいや感

19デフォルトの名無しさん2017/05/19(金) 01:40:19.91ID:4aXBqFa1
1年後に1画面に入らないくらいまで広がっててsってなんだっけー

20デフォルトの名無しさん2017/05/19(金) 02:53:52.81ID:mnhKNMJ9
1画面くらいならそこまで問題にならんだろw

21152017/05/19(金) 08:38:09.61ID:mmCvLNpl
んー、時代遅れか。
C# の例は挙げたけど、できない言語の場合にどうしようかってのもあったんだがな。
大文字小文字の場合も。
これといった案はなさそうだね。
いろいろ意見ありがとう。

22デフォルトの名無しさん2017/05/19(金) 15:07:17.02ID:/r/R+k8J
>>21
> できない言語の場合にどうしようかってのもあったんだがな。
> 大文字小文字の場合も。

enum SeruesOption {A, B}
SeriesOption series = A

23デフォルトの名無しさん2017/05/20(土) 03:47:13.80ID:zc92SfK6
最初の質問で「できなくはないけど」と言いつつ
「できない言語の場合」って追記するの、ちょっとずるくない?

24デフォルトの名無しさん2017/05/20(土) 09:02:34.55ID:m4galLui
>>23
やり取りを円滑にするために最初に忘れず言おうな、とは思う。

が、ズルくはないだろ。
それで質問者が何か得したわけでもないし、
君が何か論破された訳でもないんだから。

25デフォルトの名無しさん2017/05/20(土) 09:52:00.08ID:I6OViHCS
まあできない言語なら >>16 みたいな回答はないから初めから書いとけ
って言うのは正しいと思う
でももう終わった話だしいちいち蒸し返す意味ない

26デフォルトの名無しさん2017/05/20(土) 09:58:35.64ID:/WJez+wG
言語に関わらず共通のスタイルを使うという発想自体がそもそもの大間違い
郷に入れば郷に従え
C#では型名とプロパティ名に同じ名前を付けることが推奨されていてenumにXXEnumみたいなのは禁止されている
他の言語には違ったルールがある、それに従うだけ
その良し悪しを判断するのはお前でもこのスレでもない

27デフォルトの名無しさん2017/05/20(土) 10:00:30.34ID:/WJez+wG
あとC#ならenumの型名にs付けていいのはビットフラグの場合だけだ

28デフォルトの名無しさん2017/05/20(土) 15:02:41.50ID:zc92SfK6
>>27
そんな違いあるのか。ちょっと面白い

29デフォルトの名無しさん2017/05/20(土) 16:07:08.58ID:LUvMfIz7
型の名前は型自身じゃなくてインスタンスの性質を表しているべきだって
発想かもしれんけど、拡張メソッドの入れ物の静的クラスにExtensionsなんてのもあったりして
ちょっと統一感ないね

30デフォルトの名無しさん2017/05/22(月) 08:56:31.87ID:zv0b6nGa
>>29
インスタンスの性質は分かるけど、型自身の名前って例えばどんなの?

Extensions だって性質を表してるんじゃない?
詳しく表してるとは言い難いけど。

31デフォルトの名無しさん2017/05/22(月) 10:19:43.12ID:SMVCp6Um
The name of a type should express the charactor of not a type itself, but the instance

32デフォルトの名無しさん2017/05/22(月) 23:54:30.25ID:9Hmi5Lo6
確かに、やや低レベルな名前って気はするかな
具体的にどうすればいいかは分からんけど

33デフォルトの名無しさん2017/06/21(水) 16:36:34.47ID:dvfsnCQH
現時点ではスレチだけど、いずれ設定周りの名称に出没しそうなのでご容赦ください。

スタンドアロンのシステムが既に稼働していますが、一部機能をクラウド化して併用する計画があります。
クラウド化してもスタンドアロンの方もそのまま運用を続けます。
いわゆる半クラウド?とでも言うのでしょうか、このようなシステムの場合、
何と呼べばいいでしょうか?

34デフォルトの名無しさん2017/06/21(水) 16:54:36.57ID:kzV2so42
ぐぐったらこんなのが見つかった
https://www.ibm.com/blogs/solutions/jp-ja/what-is-hybrid-cloud/
なんかベタだねw

35デフォルトの名無しさん2017/06/21(水) 18:34:51.54ID:dvfsnCQH
>>34
ありがとうございます。
色々調べましたが、ハイブリッドクラウドとは
パブリッククラウドとプライベートクラウドなどの複数のインフラ周りを
組み合わせた場合に呼ぶようです。
サーバーデータの保全や負荷分散という説明も見ると、
今回のケースに該当するのかというと、う〜ん。。。

36デフォルトの名無しさん2017/07/01(土) 12:23:57.34ID:41xGfxtK
単項検証: SingleFieldValidation
相関検証: MultiFieldsValidation

データベースで行と行を比較する検証や表を超えて検証する場合はなんと言いますか?
日本語と英語の両方ともわからない

37デフォルトの名無しさん2017/07/08(土) 15:58:43.96ID:FfZt44/H
>>36
相関 correlated
行 row または record
表 table

38デフォルトの名無しさん2017/07/15(土) 09:19:26.23ID:nrvPEg51
ちょっと物事を単純化して話しますが
オブジェクトの有効期間を変数として持たせたいんです
リストの中にぶっこんでいって
リストを触る奴がその値によってリストから削除したりをさせたい

このとき、有効期限をどう表現しますか?

色々考えた結果
long lifetime = now + duration;
と初期化しておいて
if (obj.lifetime < now) list.remove(obj);
というふにしました

もっと名前、初期化、運用に他のやり方があったかなと心配しています
名前は単にtime_to_removeでもよかったかなと思ってます

39デフォルトの名無しさん2017/07/15(土) 10:13:38.40ID:qqsDF0t/
クッキーを参考にしたまえ

40デフォルトの名無しさん2017/07/15(土) 10:41:48.41ID:zuAt7dHe
expire

41デフォルトの名無しさん2017/07/15(土) 13:45:28.74ID:GNjnjteo
>>38
有効期限が本当にそのオブジェクトが管理すべき情報なのか、それともそのオブジェクトを使う側が
管理すべき情報なのか、それだけじゃ分からんけど、前者だとして

CreationTime(作られた時)
LifeSpan(寿命)
TimeToLive(余命 CreationTime + LIfeSpan - now)
IsAlive(TimeToLive > 0)

こんだけの情報を持たせた方が扱いやすいかも

42デフォルトの名無しさん2017/07/15(土) 14:31:14.53ID:nrvPEg51
>>39 ありがとうございます見てみます
>>40 expireは既に別のとこで使っておりまして

>>41 もう少し正確にお話すると
class WithLifetime<T> {
public final T org;
public final long lifetime;
WithLifetime(T org, long duration) {
this.org = org;this.lifetime = System.currentTimeMillis() + duration;
}
}
こういうのを
list.add(new WithLifetime<Foo>(foo, TimeUnit.HOURS.toMillis(5)));
こう使ってますね
あくまでlistありきで
list中の生存期間を、listを使う側の都合で勝手に決めてるという
List<Foo> listのままで、Map<Foo, Long> lifetimeみたいなのを併用
っていうのも最初は考えたりもしたんですが、それでいくと
list0, map0, list1, map1, list2, map2みたいな煩雑さがチラついてきますんで
この形式にしました

43デフォルトの名無しさん2017/07/16(日) 03:26:58.87ID:yo5XpH/o
>>42
そのlistを拡張した方がいいんじゃないの
管理対象のobjectは何も知らない方がいい
listを使う側も同期とか以外は知らなくていいくらいに
そしたら汎用でも使える

44デフォルトの名無しさん2017/07/16(日) 12:39:20.68ID:Jr85n6Sz
>>43
ありがとうございます
とても有力な手だと思います

ただ、みなさんも覚えがあるかもしれませんが
こういうコンテナラッパーを気軽に書いても
意外とスッキリしていかねえな、ということです

1) 最初から十分なインタフェースをそろえるのはめんどい(主に指の疲労)
2) だから最初はsize, add, removeくらいで始めるのだが
あとで結局また加筆していくことになる
3) コンテナクラスの理想は中身を知らないこと
でもこういう作りにするとそこに想定が入ることになる
だからと言ってすぐ困りはしないが、そのことに小さい不満が残る
removeExpired()みたいなこともさせたいが、何か不満が残る
それに引数を与えてやりたいが、ここでその引数の名前が難しすぎる
何をどういう基準でremoveしてるかを表現しきるメソッド名も難しい

最後までぐだぐだ申しましてすみません
不満ばかりできりが無いのでこれにて閉じさせてくだしあ

45デフォルトの名無しさん2017/07/16(日) 16:29:38.83ID:yo5XpH/o
Listのextendできない環境なのか

46デフォルトの名無しさん2017/07/17(月) 08:04:36.40ID:dfDRQ3ag
>>44
remove_if(predicate)

47デフォルトの名無しさん2017/07/17(月) 10:09:00.03ID:U2FIHXXv
>>45
もしくはその知恵がないかやりたくない理由があるんだろ
>>44の文章見るとなにか異様にこだわりあるみたいだし

48デフォルトの名無しさん2017/07/18(火) 02:42:58.10ID:tovqy0R7
俺は同じような状況でexpires_onにしたことがある


lud20170818204332
このスレへの固定リンク: http://5chb.net/r/tech/1494147712/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net->画像>4枚 」を見た人も見ています:
クラス名・変数名に迷ったら書き込むスレ。Part27 [無断転載禁止]©2ch.net
クラス名・変数名に迷ったら書き込むスレ。Part29
【強化】強化するか迷ったら書き込むスレ Lv.2
なんか切なくなったら書き込むスレ 139[無断転載禁止] [無断転載禁止]&#169;3ch.net [無断転載禁止]
泣きたくなったら書き込むスレ Part.5
泣きたくなったら書き込むスレ Part.4
泣きたくなったら書き込むスレ Part.3
たまごが孵化したら書き込むスレ 実質 part20
【C帯からA帯まで限定】スプラトゥーン2イラついたら書き込むスレPART1000【X行きたい】
なんか切なくなったら書き込むスレ172
残金が一万を切ったら書き込むスレ 2
なんか切なくなったら書き込むスレ 142 [無断転載禁止]
【PSO2NGS】戦闘中などにラグ、時が止まったら書き込むスレ
たまごが孵化したら書き込むスレ 実質 part13 [無断転載禁止]
寂しくなったら書き込むスレ
切なくなったら書き込むスレ199
残金が一万を切ったら書き込むスレ4
ゲームで酔ったら書き込むスレ
なんか切なくなったら書き込むスレ171
泣きたくなったら書き込むスレ
なんか切なくなったら書き込むスレ176
なんか切なくなったら書き込むスレ170
なんか切なくなったら書き込むスレ173
なんか切なくなったら書き込むスレ175
死にたいと思ったら書き込むスレ
死にたいと思ったら書き込むスレ6
なんか切なくなったら書き込むスレ165
なんか切なくなったら書き込むスレ164
なんか切なくなったら書き込むスレ 133
残金が一万を切ったら書き込むスレ その8
★嬉しいことがあったら書き込むスレ★
眠剤飲んで奇行してしまったら書き込むスレ
新型コロナ 陰性になったら書き込むスレ
「第二波来た!」と思ったら書き込むスレ
演奏会が中止・延期になったら書き込むスレ
筋肉痛になったら書き込むスレ [無断転載禁止]
残金が一万を切ったら書き込むスレ [無断転載禁止]
ポケgo で嫌なことがあったら書き込むスレ
陸上競技関連の本、記事があったら書き込むスレ
新型コロナ 感染したと思ったら書き込むスレ
 愛妻と寄席に行ったら書き込むスレ [無断転載禁止]
残金が5000円をきったら書き込むスレ [無断転載禁止]
なんか切なくなったら書き込むスレ 135 [無断転載禁止]
新型コロナ 感染したと思ったら書き込むスレ 7
なんか切なくなったら書き込むスレ 131 [無断転載禁止]
新型コロナ 感染したと思ったら書き込むスレ 7
新型コロナ 感染したと思ったら書き込むスレ 8
新型コロナ 感染したと思ったら書き込むスレ 8
お見合い、婚活で、相手を振ったら書き込むスレ
残金が一万を切ったら書き込むスレ その6 [無断転載禁止]
新型コロナ 感染したと思ったら書き込むスレ 9
残金が5000円を切ったら書き込むスレッドNo.2
なんか切なくなったら書き込むスレ 134 [無断転載禁止]
新型コロナ 感染したと思ったら書き込むスレ 9
新型コロナ 感染したと思ったら書き込むスレ 5
エクセレントスローを50回投げるが終わったら書き込むスレ
スレに居座る等質がいらないと思ったら書き込むスレ
アプデしたらポケGO起動しなくなったら書き込むスレ
あと1球でスロータスク達成なのに外しちゃったら書き込むスレ
何か積み上げたら書き込むスレ
オナニーしたら書き込むスレ
タバコを開封したら書き込むスレ
22:04:25 up 18 days, 8:28, 1 user, load average: 7.37, 9.07, 9.42

in 0.020503997802734 sec @0.020503997802734@0b7 on 123012