[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 09/03 03:09 / Filesize : 261 KB / Number-of Response : 1012
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

クラス名・変数名に迷ったら書き込むスレ。Part26



1 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:36:31.74 ID:uXFKqVsm.net]
クラス名、変数名のつけ方に悩んだら書き込むスレです。

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

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part25
peace.2ch.net/test/read.cgi/tech/1416550677/

55 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 12:58:08.04 ID:GEI8yUNi.net]
>>53
逆に、完全じゃないゼロはどういうの?

56 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 13:13:04.54 ID:vM8qOdmX.net]
>>53
言いたいことは分からんでもないけどzeroでいいんじゃないの?
どうしてもというなら、「真の値」はtrue valueみたいだからTrueZeroで。

57 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 13:15:21.15 ID:BLN0lEJK.net]
>>54
単にゼロ、って言ったときは完全じゃないのも含むように聞こえるんですよね(個人的に)
カロリーゼロ、とかいう言葉もありますし
身長180って言ったとき「およそ」の意味をほぼ含んでしまうのと似てて

>>55
わがままボーイですみません
今回は日本語で欲しいんでつ

58 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 13:22:12.91 ID:vM8qOdmX.net]
あ、日本語かw
真の0でいいんじゃない?

っていうか、日本語の文章なら「ここでの0とは誤差を含まない整数の0を意味する」
とか書くだけじゃないの?

59 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 13:27:22.39 ID:jYrWuYtn.net]
>>57
ハイ頂きました!ごっつぁんです!
整数のゼロ、これ完璧ですおそらく!
完全なゼロ、ぴったりゼロ、よりニュアンスが直球で好ましいです
ありがとうございました

60 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 19:37:39.39 ID:tKlWwVHT.net]
水平方向の値と垂直方向の値をまとめて保持する型
ってなんて名前にしたら良いと思いますか?

拡大率とかも表すためPositionやCoordinateは合わない気がしまして…

61 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 19:41:55.87 ID:blGu690e.net]
普通はvectorにするかな
拡大というか変換はだいたいmatrix

62 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 19:42:58.69 ID:1JJQaC4A.net]
>>59
そんな曖昧な情報で名前付けるとか無理でしょ。
何に使うとかどういう意味を持つとかどんなメンバーを持つとかもうちょっと書くことあるんじゃないの?

63 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 19:51:27.65 ID:tKlWwVHT.net]
>>60
using 単位 = double;
struct ○○ {
単位 x;
単位 y;
}

○○: >>59で訊いているもの
こういったのを想定しています



64 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 19:51:57.53 ID:tKlWwVHT.net]
安価ミス、>>60じゃなくて>>61です

65 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 19:53:15.03 ID:tKlWwVHT.net]
>>60vectorだと方向+量ってニュアンスに取られないですかね?

66 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 20:25:09.18 ID:1JJQaC4A.net]
>>62
要するに、座標でも矩形のサイズでもベクトルでも拡大率でも何にでも使える
汎用的なXとYのペアってこと?

そういう型が良いのか悪いのかよく分からんけど(基本的にはあんまり良くないような...)
XYとかXYPairとか?

67 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 20:31:04.32 ID:NepRfp5W.net]
javaだと座標という意味でPointってのがある。
java.awt.Point
ttps://docs.oracle.com/javase/jp/6/api/java/awt/Point.html

68 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 20:31:37.76 ID:tKlWwVHT.net]
そうです、汎用的な型です
そもそもこういう設計にしないほうが良いのでしょうか…
XについてもYについても処理内容が同じなので型として纏めてしまったほうが楽かと思ったのですが

69 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 21:02:37.82 ID:tKlWwVHT.net]
とりあえず、point_tという型にしてみます

70 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 21:05:52.26 ID:blGu690e.net]
いやだからそれはvectorのことだろ

71 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 23:57:58.76 ID:2Gh2bCyH.net]
Vectorだと確かに移動量という印象は少なからずあるが
汎用的な型というなら尚更Vectorかなあと思う。

72 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 00:10:11.76 ID:7AgJNpuj.net]
vectorはいかんでしょ
vector2, vector3, matrixなどが揃って準備されるならともかく
vector単体だとstd::vectorやjava.util.Vectorとモロにカブる

73 名前:59 mailto:sage [2016/01/03(日) 00:50:16.86 ID:PVIm93rS.net]
一応型の接尾辞に_tをつけるので名前被りは大丈夫なんですが、
汎用的なものにする場合はvectorの方が良いのでしょうか
自分の中でベクトルは方向+量ってイメージが強いもので



74 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 01:00:44.33 ID:IG9BItze.net]
pointもvectorもどっちもダメに決まってる。
そういう名前の型を拡大率として使ってたら混乱すること必至。

そういう型の機能は言葉で表現したって「XとY(のペア)」としか言いようがないんだから
そういう実態を素直に表す名前をつけるべきだと思うよ。

75 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 01:12:58.47 ID:6IY7C3MM.net]
>>59
HVValues

76 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 01:47:49.66 ID:ttVQnoXX.net]
5分考えて名前がつかないならそれは設計ミス
作り直したほうがいいよ

77 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 02:14:36.42 ID:vUEI8syr.net]
>>75
>>1読め

78 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 07:40:57.32 ID:Q16dHZYf.net]
引数がa,b,cというプリミティブな数値でメソッド内でd,e,fという変数に代入するようなのって
setvalueとsetvaluesどっちになるのかな。

79 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 09:32:45.93 ID:PVIm93rS.net]
>>73-76
ありがとうございました
再設計も視野に入れてみます…

80 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 09:52:33.51 ID:6IY7C3MM.net]
>>77
>>61

81 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 11:50:37.03 ID:CHH3jX6m.net]
>>77
set_d_e_f

82 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 12:53:45.29 ID:uIg+2SWQ.net]
>>77
その二択なら後者

83 名前:デフォルトの名無しさん [2016/01/08(金) 23:51:37.61 ID:7A9pQUPN.net]
証明書と秘密鍵と公開鍵の総称は?
authentication informationはちょっとダサいなと



84 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 00:02:19.89 ID:5ewwDSWG.net]
credential

85 名前:82 mailto:sage [2016/01/09(土) 00:37:04.07 ID:/BDqjX/g.net]
うーん
確かに一般的にはcredentialで鍵を指す場合もあるとは思うのですが、
今AWSを扱っていて、AWSではcredential=証明書, key=鍵 と区別されているようなのです。
で、両方をまとめて入れるフォルダの名前や両方を一緒に扱う関数名などで悩んでいます。

86 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 00:57:56.40 ID:cXr0X9gB.net]
/etc/pki

87 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 01:53:14.93 ID:5ewwDSWG.net]
credentailsで鍵ってよりも、資格情報って意味で使ったんだけどな。
資格情報っていうと、(X.509)証明書(certificate)とその対応する秘密鍵(private key)。

88 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 02:00:35.70 ID:5ewwDSWG.net]
で、一般的に証明書はcertificateが使われてるんじゃねぇかな。
たいていX.509証明書のことだが。
https://msdn.microsoft.com/en-us/library/windows/desktop/aa381975%28v=vs.85%29.aspx
https://docs.oracle.com/javase/jp/6/api/java/security/cert/Certificate.html
windowsだってJavaもcertificateだし。

89 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 02:03:20.62 ID:5ewwDSWG.net]
広義として証明書は資格情報の1つだから、AWSではcredential=証明書としても
問題ないと思うが。めんどくせぇなww

90 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 02:11:21.57 ID:5ewwDSWG.net]
IDとパスワードのペアも資格情報だが、
Windowsの資格情報ダイアログ?
www.atmarkit.co.jp/ait/articles/1406/12/news097_2.html
も英語の名前はcredentialsじゃねぇのか?
https://msdn.microsoft.com/en-us/library/windows/desktop/aa375178%28v=vs.85%29.aspx

91 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 03:51:04.02 ID:4v+EMD6b.net]
Codec = COder/DECoderらしいから
Encrypt/Decrypt = Endecかな。
実際ググってみるとそれらしい用法が見つからないわけでもない。

と言う訳でEndecSetとかEndecInfoとか。

92 名前:84 mailto:sage [2016/01/09(土) 07:30:30.93 ID:/BDqjX/g.net]
すいません、勘違いしてました。
AWSでは、certificate=証明書、key=鍵、で、両方まとめてcredentialsと呼ぶみたいです。
なのでcredentialsで正しいですね。ありがとうございました。

93 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 13:34:33.00 ID:U6qWkuuA.net]
start に対して end なら
? に対して final となりますか?
英語の質問みたいですが。



94 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 13:52:49.12 ID:FA4WzXB+.net]
どういう時に使うfinalかによる

95 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 14:08:02.29 ID:EXCF9uBq.net]
first

96 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 16:31:54.45 ID:uEfWXkZT.net]
>>92 欲しい意味が、最初のということなら initial
途中のということなら temporal, intermediate, transitional とか
余談ながら、start に対しては stop、end に対しては begin、first に対しては last だと思う。

97 名前:デフォルトの名無しさん [2016/01/30(土) 15:04:00.47 ID:7zAnuu73.net]
setterやgetterでもないのにsetやgetを頭にかくのはどうおもいます?
やってることは変数にセットをしてるのですがそれが引数によるものではありません
例えばsetterにはsetXXXとつけるという命名規則があったとして
こういうのもsetter扱いしていいのでしょうか?

98 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 15:07:55.37 ID:VvvbELMN.net]
それがsetterなら中でフィールドの値を変えてるメソッド全部set〇〇になるだろ

99 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 15:25:59.95 ID:2/HlHMjK.net]
ビジネスモデル上でその振る舞いに付けられた名前をそのまま書くだけ
それが仮に set value だったら中でなにしてようがメソッド名は setValue 以外にはありえない
コーディングレベルのくだらない命名規則に縛られる必要はない
逆にモデルでは set value となっているのにコーディング規約を優先して別の名前(例えば changeValue)にせよと主張するメンバーがいるなら
コーディング規約をビジネスモデルより優先させるために納得できる理由を公開しないとダメ

100 名前:デフォルトの名無しさん [2016/01/30(土) 15:56:42.51 ID:3I6z0tLu.net]
引数無しだと代入する値の出処をメソッド名に書き含める事が多いかなぁ。

101 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 18:00:13.70 ID:iHfGKIWM.net]
>ビジネスモデル

そこはビジネス要らんだろ

102 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 18:54:09.23 ID:lGgUibWd.net]
ビジネスモデルって言いたいお年頃なんだろ

103 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 19:22:43.13 ID:pm/bpSoz.net]
持論で突っ走る奴が居ると、品質低下の一因になるんだよなあ。
ちゃんと規約守れや。



104 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 19:47:48.93 ID:63EuC0b2.net]
>>100
なに言ってんだ最重要と言っていいほど必要だろ
各ステークホルダー合意した命名を末端のコーダー如きが勝手に変えていいわけがない
どうしても変えたいなら関係者を集めて理由を説明して合意を得なければならない

105 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 19:50:14.38 ID:63EuC0b2.net]
>>102
規約そのものが低品質化を招いているなら従う理由はない
それがコーダーの間だけで決定された規約ならなおさら守る意味はない

106 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 20:04:12.59 ID:xES4tsnw.net]
ビジネスロジックとモデリングが混同してるんだ
名前付けのスレで許されないミス

107 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 20:19:04.19 ID:63EuC0b2.net]
ビジネスロジックとモデルは分離できない
モデルとコードは一対一で一致する
これが基本

108 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 20:29:55.90 ID:ls0iH86j.net]
分離できないからってくっつけるなw

109 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 20:31:44.85 ID:ls0iH86j.net]
ビジネスモデル(business model)とは、利益を生み出す製品やサービスに関する事業戦略と収益構造を示す用語であ〜る。

110 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 21:45:29.91 ID:63EuC0b2.net]
というかモデリングが下手くそなやつほどビジネスで使う用語と下流で使われる用語が剥離していく
達人モデリストは顧客とも下流とも同じ用語を使って会話ができる
というかできるようにモデルを練り上げていく
ビジネスとモデリングは剥離するものだという認識を持っているなら自分が無能である事を早く自覚したほうがいい
顧客も下流も君の使い物にならないモデルに迷惑しているからね

111 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 21:51:27.10 ID:ls0iH86j.net]
それは言える。翻訳したらダメだね。

112 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 21:59:50.44 ID:G1bZkggH.net]
ビジネスモデルつったら収益を上げるためのモデルそのものやでw
何仕入れて何をどこで売ってどう決済させてっていう、会社経営の話やでw

113 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 22:05:27.43 ID:63EuC0b2.net]
それをモデリングするんだろ



114 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 22:10:02.75 ID:ls0iH86j.net]
いや、既存の定着した用語を違う概念で使うからおかしいって事だろ。

115 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 22:38:11.24 ID:63EuC0b2.net]
定着した概念なんてほとんど存在しないんだよ
何をやるにも常にカスタムされたモデルを作っていくしかない

116 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 02:28:34.11 ID:wbBrgvcH.net]
苦し紛れだなぁw

117 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 06:15:50.81 ID:qWcHYD0J.net]
ビジネスモデルを構築することをモデリングと呼ぶのは構わんが、およそこの板でいうモデリングとは別だな。

プログラムとは関係ない世界の話だから、用語が一対一になるわけがない。

118 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 08:14:48.51 ID:Lk2teTuL.net]
コンテキストも理解してない二流ばかりなのかここは

119 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 08:18:52.81 ID:/mHEoggP.net]
コンテキスト?し、しってるよ
右クリ禁止とかのあれだよね、うん・・・

120 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 08:20:49.10 ID:Lk2teTuL.net]
お前わざとやってるだろ
くだらない小学生みたいなみっともない真似はやめろ

121 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 08:52:03.95 ID:Vno/qq2m.net]
本日のNGID:Lk2teTuL

122 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 09:00:16.00 ID:8ho3GqS4.net]
対象か対象外かを複数の要素で判定する関数名てどんなんがよい?

123 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 09:04:45.04 ID:tGXLUpNj.net]
煽りにボケで返されて激おこな小学生w



124 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 11:07:16.42 ID:Lk2teTuL.net]
>>120
事実上の敗北宣言だな

125 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 11:09:46.95 ID:0VTupv6x.net]
>>121
「複数の要素」を強調する必要あるの?

126 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 12:01:25.40 ID:NpOcZ181.net]
>>121
そんなことはどうでもいい
何をどう判定するの?
その目的は?
着目するべきはそっち

127 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 07:19:54.57 ID:CQ0imr8z.net]
回答した上でケチつけるならわかるけど難癖だけつけて回答しないヤツってなんなんだろうな
こういうスレって必ずいるよねこういうクソムシみたいなの

128 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 07:34:31.55 ID:SxLAi0bW.net]
ブーメラン好きなのもな

129 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 10:46:20.06 ID:fQVKkYTP.net]
ブーメランが何かも知らないらしい

130 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 12:00:03.12 ID:uAQYy5Bg.net]
>>121
実装は関係ないかな。
その判定が持つ意味を名前にしたらいいよ。

131 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 16:36:01.63 ID:8wZDAtqH.net]
ランダム関数から受け取ったランダムな値どうすればいい
randomはランダムクラスのインスタンス名に使っちゃった

132 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 18:17:57.72 ID:uAQYy5Bg.net]
「受け取ったランダムな値」

133 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 19:05:19.56 ID:il1BjxQM.net]
r



134 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 20:18:04.36 ID:GOaJKp1z.net]
random_value

135 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 22:44:23.92 ID:Wm3Oha5g.net]
>>130
ある変数がランダムな値がほしいから受け取るんでしょ?
その変数が何を表すのか決まっていないの?

136 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 23:40:34.96 ID:Y0ekGZiq.net]
素敵なサムシングとかでいいよ
プログラム いも詩的な表現を認めるべきだ

137 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 01:42:30.42 ID:8bzgDTVK.net]
皆変数名付けるときって、
その用途や目的を名前にする?
それとも、その値やオブジェクト自体の性質を名前にする?

138 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 07:59:59.64 ID:UwgeLdGn.net]
>>136
後者だとすると、int1とかdouble2とかつけるの?

139 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 08:41:44.70 ID:DkDaZ+yJ.net]
>>137
それだとシステムハンガリアンになってしまうので、

例えば、型はどっちもintでも
前者:returnValue←目的が明確
後者:randomValue←性質が明確

後者はアプリケーションハンガリアンにって事になるのかな。

140 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 09:26:20.05 ID:w2WbMkCd.net]
>returnValue←目的が明確
には、
Q「その関数の戻り値は何?」
A「はい、戻り値です」
みたいな間抜けさを感じる

141 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 09:42:07.33 ID:w2WbMkCd.net]
>>138
「この変数は戻り値にするんだ」というシルシを付ける必要性を感じないけど、
どうしてもってんなら「戻り値には一貫して rc(とかrvとか何か短い接頭辞)を付ける」
ということにでもして、rcRandom とか命名しとけばいいんじゃないかな

142 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 12:14:12.08 ID:J86avcNA.net]
CaluculateUnko()
returnValue = 0
foreach(...)
returnValue += i
return returnValue

CaluculateUnko
unko = 0
...

CaluculateUnko
result = 0
....

う〜ん真ん中かな
fowler先生はresultがお好きらしいが

143 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 09:07:30.44 ID:51uirxbB.net]
>>141
fowler先生に倣っている訳じゃないけど、オレもresultをよく使うな
メンバー変数と同じで関数内のローカル変数は
関数名->ローカル変数って感じでアクセス演算子があるように考えている
その例なら、calculateUnko->resultってな感じで
うんこ計算の結果だなって分かり易い

クラスが何をするのか明確な場合
Unkoクラスがcalculate()ってメンバー関数を持っていたとすると
ローカル変数にUnkoって付けれないから別の命名方法になってしまう
その点、resultなら一貫して使える
Unko->calculate->resultって感じで考えてね

組む前にルールを作っておけば良いね



144 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 14:52:21.08 ID:8cicktaC.net]
ブリブリ

145 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 20:25:37.89 ID:FsylYHeL.net]
ふと思ったんだが・・・

[オブジェクト名].[メソッド名] という書き方のプログラム言語において、
メソッド名の付け方として、そのオブジェクトを主語にした動詞を当てる、
という考え方があるよね。

しかし、それでいくとゲッターの主語って何なんだろうな。

target = enemy.getAttackTarget()

146 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土 ]
[ここ壊れてます]

147 名前:) 20:51:04.66 ID:VLo29AwR.net mailto: 命令形だろ

Hey Bob. Do Something!

bob.DoSomething();

例題だと
おい敵。攻撃対象を取得してこい
って事だな
特に違和感はない
動作の主体は敵オブジェクトだし
命令の結果も敵オブジェクト次第だ
[]
[ここ壊れてます]

148 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 20:58:33.71 ID:SEwPFy4e.net]
メソッドは基本的に命令形。

オブジェクトはその命令形の文では通常文面に現れない隠れた主語(要するに命令される対象)
である場合が多いと思うけど、ゲッター/セッターの場合は命令の対象はプログラムで
オブジェクトは取得や設定の対象を表していると考えるべきなんじゃないのかね。

要するにその例を英語に対応させると

Get attack target from the enemy(, dear my program) !

って感じ?

149 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 22:13:47.86 ID:FsylYHeL.net]
>>145
その理屈だと、enemy に対して何かを get せよと命じているのなら、
その結果で何かを所有することになるのは enemy 自身だから、
その何かが戻り値としてこちらに返ってくるのはおかしいよ。

むしろ、enemy がリストを持っていて、
それに何かが新しい要素として追加される感じだ。

enemy に対して give me とか tell me と命令してるのなら、
それが返ってくるのは分かるが。


>>146
つまり、命令する対象について一貫性がないということね。
プログラムであったりオブジェクトであったり。
それなら分かる。

理屈は分かるけど、なんかモヤモヤするな。


まぁ、どうでもいいと言えばどうでもいい些末な事だから、
これ以上は深く追求しないでおくよ。
2人ともありがと。

150 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 22:57:16.65 ID:EMjDXdMV.net]
getter/setterはメッセージではなくオブジェクトの属性だよ
命令じゃなくてハンガリアンの一種だ

151 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 23:15:09.59 ID:5RbRdfcr.net]
何かに対する命令なのだとしたら計算機に対する命令だと思う
命令の内容がオブジェクトに対する命令になっていると、意味上の主語になるという認識

enemy.Die();
tell computer to let enemy die

enemy.GetAttackTarget();
tell computer to get attack target of enemy

152 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 23:51:01.09 ID:VLo29AwR.net]
メモリやストレージから何かを持ってこい(持ってきたモノを返せ)
この()の中が暗黙に省略されてるんだろうな
CaluculateUnkoメソッドを見て
計算をしろという命令だから計算をするんだろう
しかし計算結果を返せとは書いてないから計算をするだけで返り値はないはずだ
と考えるプログラマは少数派だ
何かを取ってこいというメソッド名とメソッドのシグネチャ(戻りの型)を見れば
ああこれは何かを取ってきて返すメソッドなんだなとわかる
逆にこれがVoidだったら取ってきて内部に保持するのかなと思うかもしれないな

153 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 19:32:25.29 ID:rc/qOTMD.net]
>>148
だね

プロパティ持っていない言語だと関数でGetterとSetterを実装するわけだけど
他の関数との差別化をする為に敢えてGetやSetを付けないってこともあるね
enemy.TargetToAttack()とか、enemy.Target()とか
この場合、enemyのTargetって読めばいい



154 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 19:50:30.30 ID:71W/Axt9.net]
昔から言われてるけどそもそも最初にその辺を明確にしなかったアホが悪い
getterとsetterひっくり返ってるやつとかほんと気持ち悪い

155 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 05:58:16.57 ID:Y2R/v65U.net]
>>152
getter(int)
int setter()
てことか?

クラスが変数の値をget
クラスが変数にsetって思ってるんじゃね?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<261KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef