クラス名、変数名のつけ方に悩んだら書き込むスレです。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/
クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1ネミ子
2017/05/07(日) 18:01:52.03ID:akuyRduv2ネミ子
2017/05/07(日) 18:03:36.48ID:akuyRduv 無関係スレ
設計・命名スレ
http://echo.2ch.net/test/read.cgi/tech/1477368563/
設計から喧々諤々されたい殿方は別スレがございますので、そちらをご利用ください。
設計・命名スレ
http://echo.2ch.net/test/read.cgi/tech/1477368563/
設計から喧々諤々されたい殿方は別スレがございますので、そちらをご利用ください。
2017/05/07(日) 18:17:56.16ID:/2PQHse0
乙
2017/05/10(水) 02:45:04.00ID:YgxPtTuh
データベース的なものを想像して欲しい。
あるデータ群(オブジェクトの配列)を画面出力するとき、出力イベントをフックして
・「表示/非表示」を切り替える(単純にreturn falseだけで済むような処理ではない)
・「見た目」を切り替える(色変更や予め用意した画像に変更など)
の2つが必要なとき、それぞれどんな単語を使えばいい?
紛らわしくなく、かつ統一感のある関数名にしたい。
上記2つは呼び出すタイミングが微妙に異なるため、一括にはしにくい。
また、出力を切り替えると言っても、実際には個々のオブジェクトに含まれている値やメンバ変数を読み込み、
その設定を適用させるといった内容になる。
あるデータ群(オブジェクトの配列)を画面出力するとき、出力イベントをフックして
・「表示/非表示」を切り替える(単純にreturn falseだけで済むような処理ではない)
・「見た目」を切り替える(色変更や予め用意した画像に変更など)
の2つが必要なとき、それぞれどんな単語を使えばいい?
紛らわしくなく、かつ統一感のある関数名にしたい。
上記2つは呼び出すタイミングが微妙に異なるため、一括にはしにくい。
また、出力を切り替えると言っても、実際には個々のオブジェクトに含まれている値やメンバ変数を読み込み、
その設定を適用させるといった内容になる。
2017/05/10(水) 07:56:10.53ID:oAoKVhQv
visibityとstyle
2017/05/10(水) 08:06:31.31ID:YgxPtTuh
ありがとう、それでいく
出社前にスレ確認できてよかった
出社前にスレ確認できてよかった
2017/05/16(火) 21:12:59.38ID:5gubPtqb
通信やファイルへ書込を伴う処理で
一旦変数に代入(書き込み予約)してから、任意のタイミングで確定させて処理したい
確定処理ってupdate? apply? commit? finalize? save?
それとこの場合の代入ってsetでいい?
一旦変数に代入(書き込み予約)してから、任意のタイミングで確定させて処理したい
確定処理ってupdate? apply? commit? finalize? save?
それとこの場合の代入ってsetでいい?
2017/05/16(火) 21:43:09.50ID:AGzM1pll
もう少し詳しく書かないと何とも状況が分からんね
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をよく使うな…
を確定するの英訳|英辞郎 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をよく使うな…
2017/05/16(火) 22:12:30.84ID:64KrDfHK
stageとcommitかな
でもwriteやsendといった実際の物理的な動作をイメージさせる名前を差し置いてまで強調するようなことだとは俺は思わないけどな
抽象的な名前は基本的に糞
でもwriteやsendといった実際の物理的な動作をイメージさせる名前を差し置いてまで強調するようなことだとは俺は思わないけどな
抽象的な名前は基本的に糞
2017/05/16(火) 23:16:14.08ID:5gubPtqb
2017/05/17(水) 10:22:15.30ID:vwwaD4yq
2017/05/17(水) 10:24:01.10ID:vwwaD4yq
setかどうかはmodelかviewかによるかな
modelならset
modelならset
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();
BufferedFile f;
f.write(data);
f.flush();
BufferedConnection c;
c.write(data); // or c.send(data)
c.flush();
2017/05/18(木) 12:25:59.00ID:xXCtzo0J
Series を列挙する型と、それを格納する変数。
C# だと
enum Series {
A,
B
}
Series Series;
とできなくはないけど、別にしたい。
たいていは列挙の方を複数、変数を単数にするんだけど、複数と単数で変化がないものはどうしたもんか。
C# だと
enum Series {
A,
B
}
Series Series;
とできなくはないけど、別にしたい。
たいていは列挙の方を複数、変数を単数にするんだけど、複数と単数で変化がないものはどうしたもんか。
2017/05/18(木) 12:39:39.31ID:eX+vCwZM
2017/05/18(木) 13:22:41.48ID:nmM7QGeO
>>15
型名は大文字から、変数名は小文字から始めればよい
型名は大文字から、変数名は小文字から始めればよい
2017/05/18(木) 21:24:31.73ID:3g1FRJ8u
十分にスコープが狭いならsでも別にいいや感
2017/05/19(金) 01:40:19.91ID:4aXBqFa1
1年後に1画面に入らないくらいまで広がっててsってなんだっけー
2017/05/19(金) 02:53:52.81ID:mnhKNMJ9
1画面くらいならそこまで問題にならんだろw
2115
2017/05/19(金) 08:38:09.61ID:mmCvLNpl んー、時代遅れか。
C# の例は挙げたけど、できない言語の場合にどうしようかってのもあったんだがな。
大文字小文字の場合も。
これといった案はなさそうだね。
いろいろ意見ありがとう。
C# の例は挙げたけど、できない言語の場合にどうしようかってのもあったんだがな。
大文字小文字の場合も。
これといった案はなさそうだね。
いろいろ意見ありがとう。
2017/05/19(金) 15:07:17.02ID:/r/R+k8J
2017/05/20(土) 03:47:13.80ID:zc92SfK6
最初の質問で「できなくはないけど」と言いつつ
「できない言語の場合」って追記するの、ちょっとずるくない?
「できない言語の場合」って追記するの、ちょっとずるくない?
2017/05/20(土) 09:02:34.55ID:m4galLui
2017/05/20(土) 09:52:00.08ID:I6OViHCS
2017/05/20(土) 09:58:35.64ID:/WJez+wG
言語に関わらず共通のスタイルを使うという発想自体がそもそもの大間違い
郷に入れば郷に従え
C#では型名とプロパティ名に同じ名前を付けることが推奨されていてenumにXXEnumみたいなのは禁止されている
他の言語には違ったルールがある、それに従うだけ
その良し悪しを判断するのはお前でもこのスレでもない
郷に入れば郷に従え
C#では型名とプロパティ名に同じ名前を付けることが推奨されていてenumにXXEnumみたいなのは禁止されている
他の言語には違ったルールがある、それに従うだけ
その良し悪しを判断するのはお前でもこのスレでもない
2017/05/20(土) 10:00:30.34ID:/WJez+wG
あとC#ならenumの型名にs付けていいのはビットフラグの場合だけだ
2017/05/20(土) 15:02:41.50ID:zc92SfK6
>>27
そんな違いあるのか。ちょっと面白い
そんな違いあるのか。ちょっと面白い
2017/05/20(土) 16:07:08.58ID:LUvMfIz7
型の名前は型自身じゃなくてインスタンスの性質を表しているべきだって
発想かもしれんけど、拡張メソッドの入れ物の静的クラスにExtensionsなんてのもあったりして
ちょっと統一感ないね
発想かもしれんけど、拡張メソッドの入れ物の静的クラスにExtensionsなんてのもあったりして
ちょっと統一感ないね
2017/05/22(月) 08:56:31.87ID:zv0b6nGa
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
2017/05/22(月) 23:54:30.25ID:9Hmi5Lo6
確かに、やや低レベルな名前って気はするかな
具体的にどうすればいいかは分からんけど
具体的にどうすればいいかは分からんけど
2017/06/21(水) 16:36:34.47ID:dvfsnCQH
現時点ではスレチだけど、いずれ設定周りの名称に出没しそうなのでご容赦ください。
スタンドアロンのシステムが既に稼働していますが、一部機能をクラウド化して併用する計画があります。
クラウド化してもスタンドアロンの方もそのまま運用を続けます。
いわゆる半クラウド?とでも言うのでしょうか、このようなシステムの場合、
何と呼べばいいでしょうか?
スタンドアロンのシステムが既に稼働していますが、一部機能をクラウド化して併用する計画があります。
クラウド化してもスタンドアロンの方もそのまま運用を続けます。
いわゆる半クラウド?とでも言うのでしょうか、このようなシステムの場合、
何と呼べばいいでしょうか?
2017/06/21(水) 16:54:36.57ID:kzV2so42
2017/06/21(水) 18:34:51.54ID:dvfsnCQH
>>34
ありがとうございます。
色々調べましたが、ハイブリッドクラウドとは
パブリッククラウドとプライベートクラウドなどの複数のインフラ周りを
組み合わせた場合に呼ぶようです。
サーバーデータの保全や負荷分散という説明も見ると、
今回のケースに該当するのかというと、う〜ん。。。
ありがとうございます。
色々調べましたが、ハイブリッドクラウドとは
パブリッククラウドとプライベートクラウドなどの複数のインフラ周りを
組み合わせた場合に呼ぶようです。
サーバーデータの保全や負荷分散という説明も見ると、
今回のケースに該当するのかというと、う〜ん。。。
2017/07/01(土) 12:23:57.34ID:41xGfxtK
単項検証: SingleFieldValidation
相関検証: MultiFieldsValidation
データベースで行と行を比較する検証や表を超えて検証する場合はなんと言いますか?
日本語と英語の両方ともわからない
相関検証: MultiFieldsValidation
データベースで行と行を比較する検証や表を超えて検証する場合はなんと言いますか?
日本語と英語の両方ともわからない
2017/07/08(土) 15:58:43.96ID:FfZt44/H
2017/07/15(土) 09:19:26.23ID:nrvPEg51
ちょっと物事を単純化して話しますが
オブジェクトの有効期間を変数として持たせたいんです
リストの中にぶっこんでいって
リストを触る奴がその値によってリストから削除したりをさせたい
このとき、有効期限をどう表現しますか?
色々考えた結果
long lifetime = now + duration;
と初期化しておいて
if (obj.lifetime < now) list.remove(obj);
というふにしました
もっと名前、初期化、運用に他のやり方があったかなと心配しています
名前は単にtime_to_removeでもよかったかなと思ってます
オブジェクトの有効期間を変数として持たせたいんです
リストの中にぶっこんでいって
リストを触る奴がその値によってリストから削除したりをさせたい
このとき、有効期限をどう表現しますか?
色々考えた結果
long lifetime = now + duration;
と初期化しておいて
if (obj.lifetime < now) list.remove(obj);
というふにしました
もっと名前、初期化、運用に他のやり方があったかなと心配しています
名前は単にtime_to_removeでもよかったかなと思ってます
2017/07/15(土) 10:13:38.40ID:qqsDF0t/
クッキーを参考にしたまえ
2017/07/15(土) 10:41:48.41ID:zuAt7dHe
expire
2017/07/15(土) 13:45:28.74ID:GNjnjteo
>>38
有効期限が本当にそのオブジェクトが管理すべき情報なのか、それともそのオブジェクトを使う側が
管理すべき情報なのか、それだけじゃ分からんけど、前者だとして
CreationTime(作られた時)
LifeSpan(寿命)
TimeToLive(余命 CreationTime + LIfeSpan - now)
IsAlive(TimeToLive > 0)
こんだけの情報を持たせた方が扱いやすいかも
有効期限が本当にそのオブジェクトが管理すべき情報なのか、それともそのオブジェクトを使う側が
管理すべき情報なのか、それだけじゃ分からんけど、前者だとして
CreationTime(作られた時)
LifeSpan(寿命)
TimeToLive(余命 CreationTime + LIfeSpan - now)
IsAlive(TimeToLive > 0)
こんだけの情報を持たせた方が扱いやすいかも
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みたいな煩雑さがチラついてきますんで
この形式にしました
>>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みたいな煩雑さがチラついてきますんで
この形式にしました
2017/07/16(日) 03:26:58.87ID:yo5XpH/o
2017/07/16(日) 12:39:20.68ID:Jr85n6Sz
>>43
ありがとうございます
とても有力な手だと思います
ただ、みなさんも覚えがあるかもしれませんが
こういうコンテナラッパーを気軽に書いても
意外とスッキリしていかねえな、ということです
1) 最初から十分なインタフェースをそろえるのはめんどい(主に指の疲労)
2) だから最初はsize, add, removeくらいで始めるのだが
あとで結局また加筆していくことになる
3) コンテナクラスの理想は中身を知らないこと
でもこういう作りにするとそこに想定が入ることになる
だからと言ってすぐ困りはしないが、そのことに小さい不満が残る
removeExpired()みたいなこともさせたいが、何か不満が残る
それに引数を与えてやりたいが、ここでその引数の名前が難しすぎる
何をどういう基準でremoveしてるかを表現しきるメソッド名も難しい
最後までぐだぐだ申しましてすみません
不満ばかりできりが無いのでこれにて閉じさせてくだしあ
ありがとうございます
とても有力な手だと思います
ただ、みなさんも覚えがあるかもしれませんが
こういうコンテナラッパーを気軽に書いても
意外とスッキリしていかねえな、ということです
1) 最初から十分なインタフェースをそろえるのはめんどい(主に指の疲労)
2) だから最初はsize, add, removeくらいで始めるのだが
あとで結局また加筆していくことになる
3) コンテナクラスの理想は中身を知らないこと
でもこういう作りにするとそこに想定が入ることになる
だからと言ってすぐ困りはしないが、そのことに小さい不満が残る
removeExpired()みたいなこともさせたいが、何か不満が残る
それに引数を与えてやりたいが、ここでその引数の名前が難しすぎる
何をどういう基準でremoveしてるかを表現しきるメソッド名も難しい
最後までぐだぐだ申しましてすみません
不満ばかりできりが無いのでこれにて閉じさせてくだしあ
2017/07/16(日) 16:29:38.83ID:yo5XpH/o
Listのextendできない環境なのか
2017/07/17(月) 08:04:36.40ID:dfDRQ3ag
>>44
remove_if(predicate)
remove_if(predicate)
2017/07/17(月) 10:09:00.03ID:U2FIHXXv
2017/07/18(火) 02:42:58.10ID:tovqy0R7
俺は同じような状況でexpires_onにしたことがある
49デフォルトの名無しさん
2017/08/31(木) 08:14:10.71ID:dCGUN1Rj Optionsみたいに複数形ってクラス名には不適切?
OptionBagか
OptionsBagにすべき?
OptionBagか
OptionsBagにすべき?
2017/08/31(木) 08:48:46.76ID:5u1Eta34
Containerとか
2017/08/31(木) 12:53:15.50ID:+8FXvQ6t
2017/08/31(木) 14:19:34.74ID:PxNjJG10
OptionSetとかOptionListでいいんでない
2017/08/31(木) 14:54:36.74ID:iGMaENMY
2017/08/31(木) 15:58:56.77ID:sCduGK6O
listはともかく、setはちょっときついだろ。
意味が多すぎる。
意味が多すぎる。
2017/08/31(木) 18:00:27.66ID:+8FXvQ6t
2017/08/31(木) 22:46:11.83ID:uNWxwE2R
2017/08/31(木) 22:54:08.86ID:PxNjJG10
>>53
継承したら
継承したら
2017/08/31(木) 23:53:16.30ID:J2aSRpVx
Optionの単数形でも別にいいと思うけどね
各オプションには具体名があるだろうし
責務によってはOptionManager/OptionHandler/OptionContainerみたいなer系も有り
オプションバッグ、オプションセット、オプションリストとかは普段からそういう名前で呼んでも問題ないかどうかに依る
あとは汎用コレクションクラスを使ってList<Option>みたいな選択肢も
各オプションには具体名があるだろうし
責務によってはOptionManager/OptionHandler/OptionContainerみたいなer系も有り
オプションバッグ、オプションセット、オプションリストとかは普段からそういう名前で呼んでも問題ないかどうかに依る
あとは汎用コレクションクラスを使ってList<Option>みたいな選択肢も
2017/09/01(金) 00:29:25.98ID:5FevI1x1
2017/09/01(金) 22:02:43.64ID:bkxV70/L
javaはPropertiesクラスがあるから複数でもいい気が
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★7 [樽悶★]
- 【速報】公然わいせつの疑いで逮捕・送検・略式起訴のAぇ! group 草間リチャード敬太メンバー 脱退を発表 「心の病の療養」に専念 [Ailuropoda melanoleuca★]
- 中国国際航空が日本便を減便へ、春節休みも SNSでは投稿相次ぐ [七波羅探題★]
- 小野田紀美 経済安保相「悪いことをする外国人、日本にいない状況つくる」 [Hitzeschleier★]
- 「二枚舌は許されない」中国外務省 高市総理の発言を批判… [BFU★]
- 【🐼🇨🇳】「高市総理VS中国」で日本からパンダはゼロに? 上野動物園「パンダ返還期限」まであと4カ月…★2 [BFU★]
- 【高市悲報】中国→日本の貨物便、死ぬほど運賃が上昇してる模様。。今後大幅値上げラッシュ来るぞ [467637843]
- 恐ろしい😈のちゅちょちゅちょ・ちぇびるのお🏡
- 【悲報】立憲岡田「間違った答弁をした高市総理に問題がある」→愛国者ブチギレ炎上 [834922174]
- 【高市悲報】日本政府、またウソがバレる。中国「撮影してたのは日本メディア」 [834922174]
- 山上妹 「この人は母親じゃない、母親の形をした統一教会信者だ」 [507895468]
- ジャガイモ好き必見!!!各地のポテト料理を全部紹介するぞ
