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

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

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

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

104デフォルトの名無しさん2017/09/23(土) 12:32:48.16ID:/JXVbO7c
>>103
あれ、変だな。訂正

× ratioの場合は
○ rateの場合は

105デフォルトの名無しさん2017/09/23(土) 15:08:25.17ID:xCJjTQ1w
>>103
質問者は結論を出したようなので、もうどうでもいいが、わかるかどうかについてはもっとどうでもいい。
用語定義や文脈などでわかれば充分なので。

たとえば実際、消費税率はconsumption tax rateというが、これについてもとの値がとか増加分がとかいうバカはいまい。

あんたは言っていいよ。w

106デフォルトの名無しさん2017/09/23(土) 15:09:07.73ID:PFKg/P6i
>>103
>これを見て[Fooの増加分]/[Fooの元の値]のことだと分かるのかどうかはっきりしてくれ。

分かるも何も、君の「質量率」以外にそういう使い方してるやついないから
攻撃力上昇率と攻撃力上昇倍率をrateとmultiplierで区別してるだけ
ここでのFooは攻撃力上昇であって攻撃力ではない
君の定義だと、攻撃力率になるけど誰もそんなこと言ってないよ

>"magnification rate"で普通に検索に引っかかるよw
それ間違えてる例だからww
調べるならちゃんと調べよう

もう面倒くさいから上の説明で理解できんならあとは好きにやってくれ

107デフォルトの名無しさん2017/09/23(土) 15:27:01.93ID:/JXVbO7c
>>105
何を言ってるのか意味不明

>>106
そういうのみっともないよ。
よっしゃ今日はこのぐらいにしといたるわ、ってか。

日本語でも同じこと

攻撃力上昇率
攻撃力上昇倍率

この2つを見て

攻撃力上昇率 = [攻撃力の増分]/[元の攻撃力]
攻撃力上昇倍率 = [増加後の攻撃力]/[元の攻撃力]

だと分かる人間がいるのか。いるわけないでしょ。
率も倍率もどちらも本質的に同じだからだ。
君の世界では競争率と競争倍率は違う意味なのか?

108デフォルトの名無しさん2017/09/23(土) 17:19:51.41ID:/JXVbO7c
しかし、すごいね

「rateとmultiplierでは何が違うのか読み取れない」>>79
「FooRateのrateは意味不明だ」>>81
っていう当たり前の事実にこれだけの説明が必要か?

っていうか、これだけ説明されてもたぶんまだよく理解してないんじゃないの?w

109デフォルトの名無しさん2017/09/23(土) 18:32:33.32ID:nAanI8EG
説明した気になってるバカの長文ウザイ

110デフォルトの名無しさん2017/09/24(日) 01:32:45.36ID:lCQ1Dr2N
incrementValue_percent とかでもいいんだけど、
一番多用するメソッドにつける名前としてはちょっと長いのよねぇ

111デフォルトの名無しさん2017/09/24(日) 01:46:40.37ID:ezgJnviS
valueではないよね

112デフォルトの名無しさん2017/09/24(日) 02:55:51.17ID:lCQ1Dr2N
まあそうなんだけど
倍率の方をmultiplierなりrateなりにして、
もう一方を、少し遠めの言葉から選んでみたつもり。

絶対値みたいな言葉もあるし、
あとは自分みたいな英語さっぱり勢でも困らない単語ということで。

113デフォルトの名無しさん2017/09/24(日) 03:39:54.52ID:uS0xIQvj
パーセントの値は計算時じゃなく表示時に使いたいんだろうから
数字のフォーマッティングをするクラスに任せたほうがいいかと

atk_increase = new Effect()
atk_increase.rate.to_percent()

114デフォルトの名無しさん2017/09/24(日) 10:18:34.03ID:BVMVs4QW
>>113
>>78

処理自体を関数にしたいんだとよ。
戦闘ルーチンをシステマチックに組み上げるためなんだろう。

115デフォルトの名無しさん2017/09/24(日) 15:03:53.37ID:uS0xIQvj
>>114
もしそれが避けられないならEnum的なもので
decimalかpercentを引数として渡すようにするかな

atk_increase.rate(:persent)

でも表示用に数字をフォーマットする処理は
別途書いてるんだろうから二度手間だと思うわ

116デフォルトの名無しさん2017/09/24(日) 15:31:27.46ID:U4nAGnPY
設計の話はNGって水を差すいつもの人が出てこない時は
その人自身がそれをやってる時だったりするのかなw

まあ俺ならRatioクラスを作るね。

117デフォルトの名無しさん2017/09/24(日) 16:01:39.95ID:J5jaZAG3
設計の話はちゃんと別スレがありますのでな

118デフォルトの名無しさん2017/09/24(日) 16:07:11.25ID:uS0xIQvj
命名がうまくできないのは設計がうまくいってない結果の場合もかなりあるのに
それを無視して設計の話はNGで命名だけってのは意味がないよね

119デフォルトの名無しさん2017/09/24(日) 16:14:45.42ID:gFeQddMX
>>118
そう思うなら別スレたててやればいい

120デフォルトの名無しさん2017/09/24(日) 16:31:31.90ID:U4nAGnPY
>>118
一般論としてはそう思うけど今回は微妙だね

まあ、どっちにしろこんな過疎スレでくだらないことに目くじら立てる奴の方が
確実にどうかしてるけどねw

121デフォルトの名無しさん2017/09/24(日) 16:32:09.42ID:J5jaZAG3
だからそういう奴のためのスレがあるっつってんだろ。
どうぞ正論に同意されている方々でやってください。無能なんですか?

設計・命名スレ
http://echo.2ch.net/test/read.cgi/tech/1477368563/

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

122デフォルトの名無しさん2017/09/24(日) 16:53:26.87ID:BVMVs4QW
>>115
質問者の現実のコードを想像できてないだろう。

そんな状態で、設計を非難し改めさせようとはおこがましいとは思わんかね?

123デフォルトの名無しさん2017/09/24(日) 17:03:46.44ID:uS0xIQvj
>>122
↓ここの一つ目の答えに書いてるようなやり方をしてると想定してるよ
https://gamedev.stackexchange.com/questions/29982/whats-a-way-to-implement-a-flexible-buff-debuff-system

バフ管理はそれ自体が難しいし
やり方もいろいろあるから実際のコードはわからんけどね

124デフォルトの名無しさん2017/10/03(火) 21:21:41.83ID:3+KZIdY7
仕方ない事だけどNormalizedってよく使うのに長すぎ
どっか偉い団体が頻出単語は標準的な省略形を定めてくれればいいのに

125デフォルトの名無しさん2017/10/24(火) 05:35:26.82ID:LmIfeDhI
megante

126デフォルトの名無しさん2017/11/02(木) 01:36:36.25ID:qgjuzQPR
ファイルの拡張子ごとに処理するクラスがあるんですが、そのクラスの静的メソッドとして、
処理できる拡張子かどうかを判定する静的メソッドを追加したいのですが
その名前をお願いします。

127デフォルトの名無しさん2017/11/02(木) 01:56:42.44ID:aYOFaFkK
「処理する」の内容とあと言語のクラスメソッドの文法に依るけど、例えば
Class.canHandle(".xxx")

128デフォルトの名無しさん2017/11/02(木) 02:01:05.56ID:qgjuzQPR
>>127
なるほど。処理するの内容が何気に重要でしたね。すみません。
言語はC#で、アーカイブファイルを開くクラスですね。zipとか、それが拡張子ごとにある感じです。
そうすると「開く」??かなぁ・・?

129デフォルトの名無しさん2017/11/02(木) 02:51:26.89ID:oBTHYZXz
CanHandle、いいと思うけどな
あとはIsKnown(Extension)とか

静的メソッドだと

if (Hoge.CanHandle(ext))
...
else if (Hage.CanHandle(ext))
...
else if (Foo.CanHandle(ext))
...

ってなるのは必定で何だか泥臭いなとは思うけど、そこはスレ的に突っ込んじゃダメかね

130デフォルトの名無しさん2017/11/02(木) 06:52:45.58ID:AeE8oNtK
>>129
クラスクラスのインスタンスからクラスメソッド呼べないような言語あるの?

結局、サポートするコンテントタイプのリストを返すメソッドが欲しくなると思うけど

131デフォルトの名無しさん2017/11/02(木) 23:09:34.30ID:ttIahPlC
オレなら、単純にisAcceptかなぁー

関係ないけど、静的関数を足すよりfactoryのクラス作って静的なインスタンス返すほうがいいとおもうんだ。
ステートフルパターンな感じに。。。

132デフォルトの名無しさん2017/11/03(金) 00:16:58.35ID:Ro85MhDs
>>131
そこはせめてCanAcceptで

133デフォルトの名無しさん2017/11/03(金) 01:55:49.56ID:zDTNiuBK
ありがとうございます。
Handle,Acceptのどちらかにしようと思います。

134デフォルトの名無しさん2017/12/27(水) 20:43:15.51ID:V1EFdajr
5chの板のスレ一覧のクラス(例えばThreadList)と各スレのクラス(Thread)があって、
・スレ一覧を更新するメソッド(各スレのログはダウンロードしない)
・スレッドを差分ダウンロードして新着レスを得る(最新状態に更新する)メソッド
にそれぞれ何という名前を付けますか?どっちもupdate()にしてるんですけど、同じ名前なのにやってることがだいぶ違ってなんかいまいちに感じます

135デフォルトの名無しさん2017/12/27(水) 21:37:23.78ID:q4iOOx1e
その専ブラがどのプラットホーム向けでいつリリースされるのかのほうが気になる。

136デフォルトの名無しさん2017/12/27(水) 23:05:30.53ID:xrH4goD9
>>134
updateはユーザーから見た動作であって実際のオブジェクトの動作はdownloadじゃないのかな?
知らんけど

と言う訳で
Download
DownloadUpdatedOnly ⇔ DownloadFull

137デフォルトの名無しさん2017/12/28(木) 01:24:24.92ID:GDDWlLSR
>>134
後者はrefreshとかどうか
ブラウザでページ更新して最新を取得するっていうときによく使われてる気がする

138デフォルトの名無しさん2017/12/28(木) 06:28:17.27ID:iIC53K2J
>>136-137
参考になりました、ありがとうございます
ペーペーなので他にもユーザ目線の命名が多そう…見直します

>>135
すみませんただの練習用なんです><5chブラウザ腐るほどあるだろうし…

139デフォルトの名無しさん2017/12/28(木) 08:20:19.96ID:sX9pr0im
get とfetchってどう使い分けたら良いですか?

140デフォルトの名無しさん2017/12/28(木) 20:33:30.12ID:tdhK3u9G
>>139
ググれ。
英語がらみでいっぱい見つかるから。

141デフォルトの名無しさん2017/12/28(木) 21:13:26.38ID:P1qp1D/S
途中からめんどくなってもう全部get…

142デフォルトの名無しさん2017/12/28(木) 22:22:06.88ID:/lEDrM81
fetchなんて仰々しい言葉プログラミングではあんまり使わないと思うw

143デフォルトの名無しさん2017/12/28(木) 23:07:16.13ID:Qj6V/Knj
ただ取るんじゃなくて「行って取ってくる」のが fetch だとググって知った。
ワンコがフリスビーとってくわえて戻ってくる感じ。
FreeBSD だと wget のかわりに fetch っていうコマンドを使うし
プログラミングではDBとのやりとりの時に使うことがあるね。

どうやって使い分けるのかっていうとうーん・・・

144デフォルトの名無しさん2017/12/28(木) 23:26:05.43ID:/lEDrM81
まあ、比較的高価だったり重かったり間に通信が入ったりする処理であることを
意識させる必要がある時ぐらいかね。

CPUがコアの外側のメモリから命令を拾ってくるのをフェッチっていうのも
そういうニュアンスなんだろうたぶん

145デフォルトの名無しさん2018/02/03(土) 02:30:03.15ID:1Zb7vqEQ
あるDLLをロードしたとき、そのDLL内部で使う情報を色々初期設定するために
InitializeDllって関数を作ったとき、それに対する終了処理としてつかう関数名は、
FinalizeDll?TerminationDll?どっちの名前を採用しますか?
もしくはもっと別の名前?

146デフォルトの名無しさん2018/02/03(土) 13:33:45.89ID:dgAq2hsG
>>145
finalizeに一票。
terminateは、後始末というよりも、本当に終了させる感が強すぎない?

147デフォルトの名無しさん2018/02/03(土) 15:38:15.49ID:DDYrw5D6
CleanupDll なんてどう?

148デフォルトの名無しさん2018/02/03(土) 18:01:48.28ID:Rh9ysymE
>>145
どっちでもいいでしょw
どぢらでも意味は分かるし誤解のしようもない。

ついでに変なサフィックスもいらない
Initialize/Finalizeで十分では?

名前異空間が使えなくてバッティングを避ける目的ならHOGE_Initialize
みたいにプリフィクスでやるのが普通じゃない?

149デフォルトの名無しさん2018/02/03(土) 18:38:27.91ID:1Zb7vqEQ
補足しますと、元々DLLがロード・アンロードされるときに呼ばれるDllMainに渡される引数
DLL_PROCESS_ATTACHとDLL_PROCESS_DETACHで初期化処理終了処理を
突っ込んでたんですが、調子に乗って色々やり過ぎて不具合起こしたので
改めて明示的にEXE側から呼び出す初期化終了関数を作ったのでした。
(MSDNにも注意点として書かれれた)

そこで名称に疑問符が。

>>146
同感なのですが、後々DLLのアンロード時(アプリ終了時)に実行することを考えると
terminateもアリなのか?と思ってしまいました。

>>147
Initializeのイメージと被る感じがします・・・

>>148
まあどっちでもいいかもですがw
サフィックスはもうちょっとちゃんと考えますね。


finalizeで行こうと思います。
皆さんありがとうございました。

150デフォルトの名無しさん2018/02/04(日) 13:51:18.18ID:Bky4hvL+
>>149
>後々DLLのアンロード時(アプリ終了時)に実行することを考えると

それは使う側の都合じゃね?
>>146でいいと思うよ

151デフォルトの名無しさん2018/02/07(水) 15:10:28.31ID:BclnE8u9
goodsとかnewsと言った単数にしない単語をモデル名に使いたいとき、皆様はどのようになさるのでしょうか。productやarticle, postと言った別の単語で置き換えるのでしょうか。
置き換えると意味的に微妙に違和感が出るケースでしたので質問させていただきました。

参考
goodsが使われるケースがないか探している中で、ZOZOTOWNのAPIがgoodsを使っているのを見つけました。モデル名はどうしているのでしょうね...。

152デフォルトの名無しさん2018/02/07(水) 16:59:58.39ID:izr6WB3M
>>151
面白そうだからググってみたけど、その手の単語ってそうは多くないみたいね
http://www1.odn.ne.jp/xenom/gohou.box/gohou1.html

それを集約するオブジェクトがあって複数形が使えた方が都合がいいなら複数形がある別の可算名詞に
置き換える、そうじゃなきゃそのまま使う

まあ、柔軟に対応でいいんじゃないでしょうか

153デフォルトの名無しさん2018/02/07(水) 21:17:32.06ID:3BT7o9wr
>>152
どうもありがとうございます。柔軟に対応します。

154デフォルトの名無しさん2018/02/16(金) 06:10:05.04ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

新着レスの表示
レスを投稿する