[表示 : 全て 最新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/

592 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 23:09:45.76 ID:xGaWkelz.net]
hogeが動詞なら、isHogeing とか

593 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 23:12:22.65 ID:X7cHXqnF.net]
(?w?)

594 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:12:07.05 ID:XJ4euwgU.net]
なんでそこでハテナマークなんだw

595 名前:583 mailto:sage [2016/09/18(日) 00:21:44.28 ID:Knp+gLDN.net]
>>586
(?w?)

596 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 07:12:56.82 ID:Wkbj4nCn.net]
>>585
isHogeは「引数がHogeか否かを真偽値で返す関数」と認識される

597 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 08:46:39.89 ID:epT5qit0.net]
Hoge + ingは
Hogingになるのでは

598 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:20:22.19 ID:XJ4euwgU.net]
>>592
Fooesとかもそうだけど、変化させるかどうか迷うんだよな

599 名前:583 mailto:sage [2016/09/18(日) 10:03:56.68 ID:Knp+gLDN.net]
>>591
ありがとうございます
そんな意味になってしまうのですね


何か他にいいのがあればぜひともお願いします
is_executing_hogehage

600 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 10:14:01.89 ID:KgBDTYcp.net]
たいてい関数名は動詞だから、play()ならisPlayingだね。



601 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 11:48:28.70 ID:UHIpCJou.net]
in_running とか in_connect って良く使うんだが英語としては変だったかな

602 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 12:39:46.36 ID:QKIaWHLH.net]
>>594
そもそも、当然スレッドなりタスクなり使ってるんだろうから
そっちの状態を見ればそんな変数なんか必要ないと思うんだけど

まあ、本当に必要なら論理は逆になるけどこっちの方が分かりやすいと思うよ
IsHogeFinished
IsHogeDone
IsHogeComplete

603 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 12:46:50.47 ID:Wkbj4nCn.net]
>>594
この手の変数はインスタンスプロパティで作りたくなるな
Hoge#busy
Hoge#readyState

604 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 13:33:46.81 ID:5laE9Kgu.net]
規約で決められてないのにis名詞+分詞とか動詞にしてるやつはバカにしか見えない

605 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 13:45:26.76 ID:+k6IbFWd.net]
バカに思われようが、そんなことはどうでもいい。

プログラムコードの主な読み手が自分だったなら、
自分が一番分かりやすい名前を付けるべきだと思う。
変数や関数の役割が分かるように、処理の流れが自然に追えるように。

後で読み返してみて意味がくみ取れなくなるなんて本末転倒もいいところ。
それこそバカにしか見えない。

606 名前:デフォルトの名無しさん [2016/09/18(日) 13:55:17.65 ID:l1WAFSLJ.net]
>>600
自分?

607 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:38:07.71 ID:/Q0b75iC.net]
>>601
自分が自分を信じられないなら自分が自分を信じてる自分を信じろ
関西人なら通じる

608 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:44:04.74 ID:+k6IbFWd.net]
>>601
もちろん、主な読み手が自分じゃなきゃ、その人(ら)が一番分かり易いように書く。
例えば、コミュニティーにパッチを提供してるとか。

その場合も、全然関係ない2chの住人にネーミングセンスをあれこれ言われる筋合いはないし、
名付け方のアドバイスを訊くなら、こんなスレじゃなくコミュニティーに直接聞くべき。

609 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:22:58.62 ID:63JI2jED.net]
どうせ1個しか使わねぇなら
runningでいいよ。

610 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:32:15.82 ID:epT5qit0.net]
自分ならこうするとか出さずにケチつけるだけのバカはスルーでいいと思う



611 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:54:53.01 ID:CxVr26OT.net]
なぜ「こんなスレ」に来たのかと

612 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:13:20.39 ID:/Q0b75iC.net]
質問者も回答者も必要としているから来ているのに
全否定するなら来なきゃいいのにね
コミュニティ(プロジェクトチームだよね?)が存在す

613 名前:るなら
規約があるだろうに
[]
[ここ壊れてます]

614 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:17:18.62 ID:lwtBalzC.net]
>>605
私のことを言ってるのなら >>587 で案は出した。

615 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:56:52.19 ID:epT5qit0.net]
>>608>>587以降どれなのか分からないからなんとも言えない

616 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 09:39:55.22 ID:RiFwOng1.net]
自分なら「その関数の下に付随するもの」を明確にするために
Hoge::IsRunning() とか Hoge_IsRunning() みたいな名前にしたいな

617 名前:598 mailto:sage [2016/09/19(月) 12:29:50.12 ID:+qZcElwT.net]
>>610
isRunningでは「runningとは」という意味になってしまう

finction Hoge_isRunning (arg) {
return arg === HogeRunning;
}

>>599も似たようなことを指摘してるが、何でもisを付ければ良いというのは短絡的だと思う
is****は****と同一性評価する為に使うものでステータスを確認するものではない

あなたの意見の延長で考えるなら HogeRunning が妥当だろう

618 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:37:45.35 ID:dWsrNIgM.net]
>>611
さすがに何を言ってるのか意味が分からないw

isRunningは主語が欠けているがかろうじて英語になっているけど、
HogeRunningは英語にすらなってないw

文脈によっては(つまり何がRunningかが自明であれば)isRunningは選択肢に入るが、
HogeRunningじゃ何のことだかまったく分からないよw

619 名前:598 mailto:sage [2016/09/19(月) 12:44:41.25 ID:+qZcElwT.net]
ちなみに>>598はそれぞれ下記を意図している

> Hoge#busy
Hogeは動作中であり、二重起動を許さない
排他的動作を望むならこれ

> Hoge#readyState
document.readyStateのように複数の動作ステータスを定数で管理する
「動作中」というより「動作可能な状態」を見る名前なので>>583の意図とは少し違ったかもしれない

後はHTMLMediaElementのプロパティ名が参考になると思う
https://developer.mozilla.org/ja/docs/Web/API/HTMLMediaElement
素直に考えるなら executing か running だろうな

最も、>>585を見てると hoge, hogeExecuting, hogeFoo のように接頭辞を付けて名前を並べている印象で設計上の問題も感じられるが
(PHPのような命名規則は全く美しくないと思う)

620 名前:598 mailto:sage [2016/09/19(月) 12:46:44.68 ID:+qZcElwT.net]
>>612
改めて読んだが、Hoge_isRunning は Hoge === Running の等価性を評価しているように見える



621 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:56:37.47 ID:dWsrNIgM.net]
>>614
何が言いたいのかよくわからんけど、あえてそんな変な語順を採用する理由なんか何もない。
普通に英語通りisHogeRunningでいい。

あなたは
Is light red?

light(信号)と赤の等価性を尋ねているとか思うのかな?w

622 名前:610 mailto:sage [2016/09/19(月) 13:41:43.01 ID:RiFwOng1.net]
>>611
英語はそれこそ中学英語レベルしか自信ないけど
X is running で「Xは走ってる」(この場合は実行中だが)にはならんってこと?

623 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:07:58.75 ID:dWsrNIgM.net]
>>616
なるから変なんでしょ。
「Xが実行中かどうか」を表す変数の名前が肯定文だったらおかしいでしょ。

その変数が表すべきなのは「Xが実行中かどうか」なのであって、
「Xが実行中である」という定言が正しいか間違ってるかじゃないんだよw

624 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:24:01.60 ID:FalA4T6t.net]
肯定文で別におかしいとは思えん
メソッドなら疑問文にするけど

625 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:32:21.32 ID:oMXaxPTM.net]
変数名なら明確にするためにHogeを入れる可能性もあるけど
それなら見りゃわかるしisなんてつけないし限定できるならrunningだけで済む
メソッド名だったらこんな名前がつく時点で設計がおかしい

626 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:35:34.44 ID:RiFwOng1.net]
>>617
ああ、そういうことか。

IsFoo()は疑問文だよ派と、疑問文じゃないよ派があるじゃん?
そこですれ違いが起きてたんだな。

627 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:41:14.57 ID:nr8fG4n4.net]
>>620
IsX() Xですか?
IsFoo() Fooですか?
疑問文じゃなかったらどういう意味にとらえるん?
主語どこいったん

628 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 15:04:21.27 ID:P5Fkfkju.net]
これはXですか?
あなたは誰ですか?
誰ってなんですか?

アスペ乙

629 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 15:05:13.81 ID:W9V/RaHi.net]
ざっとググったが。

MS
IVsaEngine.IsRunning プロパティ
スクリプト エンジンが現在実行モードかどうかを報告する Boolean 値を取得します。

Apple
isExecuting
A Boolean value indicating whether the operation is currently executing

Android
MediaPlayer.isPlayingメソッドを使い再生しているかチェックすることが出来る。
if(gameBgm.isPlaying()) {
 gameBgm.pause();
}

あとこれ
stackoverflow.com/questions/6950841/is-using-is-to-name-boolean-variables-bad-practice

630 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 15:14:09.76 ID:RiFwOng1.net]
>>621
元はオブジェクト指向が組み込まれてる言語での命名規約だと思うけど

 Bar.IsFoo() → BarはFooである(ときに真になる)

という考え方がある



631 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 15:45:36.28 ID:KoK4joax.net]
>>624
Bar.IsFoo() → Bool

戻り値みたら意味が分かるからね、IF文に入れると美しいよ
メソッド名ばかりに囚われずに引数や戻り値の型を情報にしないとな

632 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 16:14:29.05 ID:nr8fG4n4.net]
>>624
それ>>610と同じ事言ってるから>>611以降ループするような

個人的には>>620でクラス省略してたんか納得なんだけどな

633 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 16:25:38.99 ID:RiFwOng1.net]
>>626
わざと肯定文にしてるってだけの話なので
話題がループすると言われたらそうかもねw

634 名前:583 mailto:sage [2016/09/19(月) 18:38:45.41 ID:yO6KMXAM.net]
皆様ありがとうございます
完全に我流でやってきたので変数名に関してはさっぱり分からないので
議論を含めて勉強になります
φ(。_。*)メモメモ

635 名前:デフォルトの名無しさん [2016/09/19(月) 18:46:53.72 ID:HiH7SQ7t.net]
自分の状態を返すメソッドを作らないといけないJava。

いまとなっては欠点。

636 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:11:09.78 ID:W9V/RaHi.net]
それは言語使用じゃなく設計・実装の問題。
べつに、状態をaskせずにがんがんtellする作りでも構わない。
つかOOPではtell don’t ask(なるべく)と言われてる。
まスレチだけど。

637 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:25:10.20 ID:W9V/RaHi.net]
あーもしかしてアクセサの自動生成の事かな。
それは欠点かも。開発環境によってはできるようだが。

638 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 02:10:10.44 ID:e0L1bcAS.net]
>>620
「IsFoo()は疑問文だよ派」って日本人にしか居ないんじゃね?って思ってる。
https://stackoverflow.com/questions/1566745/boolean-method-naming-readability

639 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 02:59:04.85 ID:Cm1yXv5P.net]
>>632
それは冗長さを避けるための妥協だと思うよむしろw
あとisと違ってdoesの場合は主語の省略が許されないっていう英語の構文の都合もあると思う。

640 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 05:53:47.12 ID:OvbuO/pb.net]
>>632
ブール値を返す関数やプロパティってIF文での使用が前提なのだから
疑問文じゃおかしいんだよなあ



641 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 10:43:46.67 ID:I6O94rhW.net]
>>634
代入や比較、条件演算子もあるよw

642 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 10:50:27.61 ID:w3uYhEGb.net]
通常会話の ? と同じ意味でなくてもよいだろう。

0 or 1 = bool?
動的にどちらかが返されるので "bool?"

別にブールかどうかを聞いてるわけではなくて、boolと言う型の名称を指してるわけでもなくて。

643 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 10:54:48.35 ID:KnjyA1F8.net]
>>634

if( これはペンですか? )

「これはペンですか?」が真「かどうか」は無理?

644 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 11:14:21.36 ID:pL9mhHAw.net]
日本語からやりなおせよもう

645 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 11:24:20.84 ID:KnjyA1F8.net]
関数名の流れだからな
「これはペンですか?」を関数名としてみたらいい
その答え(戻り値)が真「かどうか」って説明のがよかったな

646 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 11:45:19.36 ID:w3uYhEGb.net]
ペンか否か? → ペン?
なんら問題を感じない

647 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:15:34.35 ID:or4BStYo.net]
これはペンであるという命題があって真であるか偽であるかという議論ができる
これがさすものはこの場合オブジェクトなので
英文はThis object is a penとなる
プログラム言語の構文による制約を加えるとobj.IsPenが正解となる

648 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:22:19.81 ID:zA4ozj3G.net]
だからそれは違うってw
変数の値やメソッドの返り値が表しているのはyes/noであってright/wrongじゃないw

649 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:47:00.75 ID:or4BStYo.net]
まあ人間は考えるだけなら自由だからいいけど

650 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:48:30.22 ID:EJ4QdJ/o.net]
違う。
True / false
何が真であるかは仕様によるので暗記するかそのつど調べてください。
プログラム言語における "?" は戻りが不明瞭な場合に、それをプログラマに対して明示的に伝える役目を果たします。



651 名前:デフォルトの名無しさん [2016/09/20(火) 21:51:57.12 ID:+3HpdUPY.net]
いいえ。それはパンです。

652 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:12:38.89 ID:zA4ozj3G.net]
話の通じないお方。

例えば与えられた自然数が素数ならtrueを返すメソッドがある時、
普通のプログラマはその戻り値は「xが素数であるかどうか」(yes/no)を表していると考えるでしょ?

「xが素数である」という命題が正しいかどうか(right/wrong)を表しているって考える人いる?
まずいないでしょ。

前者は、別の言い方をしたら「xは素数ですか?」っていう質問に対する答えだよね。

653 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:21:59.98 ID:qJ9FA8Jd.net]
もしもxが素数であるかどうかなら〜
こりゃ不自然すぎて引くわ

もしもxが素数であるなら〜
うん自然でわかりやすいね

xが素数であるかどうかでない
ひええ

xが素数でない
イイね

xが素数であるかどうかかつyが偶数かどうか
もう意味わからん

xが素数であるかつyが偶数である
excellent!

654 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:23:08.40 ID:zf/Fc8Vs.net]
すまんが、そんな日常言語のような解釈はしていない

655 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:29:53.66 ID:OvbuO/pb.net]
>>646
厳密に言うと
if x is prime number then Yes otherwise No.
真偽判定の結果がyes/noなの
x.isPrimeNumber()とあった場合、xに問うているのではなく
xの状態を確かめているの
で、その状態をIf文で審議して、yes/noを出力するの

656 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:38:27.08 ID:OvbuO/pb.net]
>>646
もう少し分かり易い話をすると
君が目の前にペンを見せられて「これはペンですか?」と尋ねられたら
君は頭なの中で「これはペンの形をしている」や「これはペンの機能を有している」と
ペンがペンであるかの状態を審議して「Yes」と答えるわけだ

657 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:20:55.50 ID:zA4ozj3G.net]
何を言ってるのか意味が分かりませんw

658 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:25:54.74 ID:zA4ozj3G.net]
っていうか、命名の話をしてるんだけど分かってるのかな?w

変数の名前はその値が何を意味しているかを表しているべきだし、
メソッドについても、少なくともboolを返すメソッドについては、普通はメソッド名は
戻り値が何を意味しているかを表しているべきだ。

さて>>646に戻って、「与えられた自然数が素数ならtrueを返すメソッド」の戻り値は
何を意味しているでしょうか。

659 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:31:02.93 ID:zf/Fc8Vs.net]
さてはtrueだな!

660 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:52:16.14 ID:OvbuO/pb.net]
>>652
オブジェクトは状態を維持するの

君はペンに「君はペンですか?」って尋ねるの?
ペンは尋ねられたら自分が何者か答える機能がついているの?
それがペンであるかの判断は、ペンの状態を見た君の判断であって
ペンが自分が何者かを答えるわけではないの

>っていうか、命名の話をしてるんだけど分かってるのかな?w
だから、ブール値を返すメソッドやプロパティはその状態を返しているの
Bar.isFoo()なら「BarはFooである」って意味なの
決して「BarはFooですか?」にならないの



661 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:07:28.58 ID:Rtj0ivpx.net]
>>654
何が言いたいのかよくわからんけど、君の例で言ったら、
Bar.isFoo()がfalseを返す時、その値は「BarはFooである」を意味してないことは分かりますか?

違うよね。
それは「BarはFooではない」ことを意味している。

662 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:09:08.73 ID:/kyzsMvg.net]
オブジェクト指向じゃない言語での命名ってどんな感じなん?

663 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:15:44.88 ID:Rtj0ivpx.net]
っていうか、>>654みたいなboolを返すメソッドがある時、
その戻り値が「BarはFooである」っていう命題の正誤を表すと考えるプログラマはいないよ、
ってそんな難しい話かな?w

>>654はどうだか知らないけど、普通の人は、戻り値は「BarはFooであるかどうか」を表していると考えるんだよ。
別の表現をすれば、それは「BarはFooですか?」という質問に対する回答を表していると考える。

664 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:28:08.62 ID:43fglGIp.net]
>>655
「BarはFooである」に偽が返ったら否定しているって分かるでしょ

IF文が判断をするのであって、その条件式に入れるオブジェクトが判断しないの
例え話の君の部分がIF文、条件式に入るオブジェクトがペンなの
君はペンであるかどうかをIF文でペンの状態を見ながら判断するけど
ペンに「君はペンですか?」って尋ねながら判断しないでしょ
だから
if x is pen then Yes, otherwise No.
が成り立つの、メソッド名は疑問文にならないの

665 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:28:14.35 ID:3n4gTsBt.net]
>>657
なんで疑問文にしちゃうかなwwwだっせえwww

666 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:36:41.32 ID:43fglGIp.net]
>>657
いい加減、なの言葉が嫌になってきた
論理学の勉強をしてくれ

667 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:36:49.61 ID:Rtj0ivpx.net]
だめだ何回繰り返しても人の話が頭に入らないタイプっぽいw

boolを返すメソッドの名前は、その戻り値が何を意味しているかを表しているべきである、
ってそんなに難しい話かなw

オブジェクトが判断とか何のことやらw

668 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:39:24.66 ID:atzPe4+g.net]
ifで始まる英文は疑問文ではない。

669 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:53:15.14 ID:/kyzsMvg.net]
AはBである、BはCである、だからAはDである、
みたいな、途中までは納得できるのに最後ですれ違う違和感というかなんというか

670 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:57:48.41 ID:43fglGIp.net]
>>661
メソッド名を関係演算子に置き換えてみな
これもブール値を返す

(x > y) → Bool

>演算子はxとyの関係を表す
x is greater than y
何故、「関係」演算子って呼ばれているか?
その関係の状態を(断定して)表し、その真偽を得る演算子だから
決して疑問文ではない
真偽を表すメソッドなら命名に例外はありえない



671 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:01:38.90 ID:/kyzsMvg.net]
この流れで「ありえない」って言葉は、熟慮してから使ったほうがいいんじゃないかなって

672 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:01:45.26 ID:wWPv3Jxl.net]
>>661
> boolを返すメソッドの名前は、その戻り値が何を意味しているかを表しているべきである、
ここにはあんまり異論は無いと思う。

わからないのは、 >>646 の「別の言い方をしたら」とか >>657 の「別の表現をすれば」とか、
なんでわざわざそんな言い替え(読み替え)をしないといけないのか、というところ。

"if Bar is Foo, ..." っていう意味のコードは当然 "if (Bar_isFoo()) ..." となっていたほうが
読みやすい。あなたはこれを "if (isBarFoo()) ..." と書けと言うのか?そうだとしたら、なぜ?
何がうれしいの?

673 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:03:04.24 ID:Rtj0ivpx.net]
>>664
何が言いたいのかさっぱり分からないけど、
一度でいいからこちらの質問に正面から答えて見たら?

bool b = x > y;

このbの値が何を表しているのか、日本語で表現してみて。

674 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:08:54.68 ID:43fglGIp.net]
>>663
ペンにはインクの残量がある
ペンが書けるかどうか判断する時、残量を見るだろ
Max100の内、残量が20だとしたら、そのペンは書けると判断出来る
でも、残量が30を切ったらインクを補充したい
その判断をIF文で書いてみ
それらの条件式は断定した形になり、その真偽を問うことになる
決してペンがそれらを判断しない
インクの残量が20を切ったら補充したいなんてペンは知らないのだから

675 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:10:02.18 ID:Rtj0ivpx.net]
>>666
「xが素数かどうかを表す値」は「xが素数ですか?という質問に対する答えを表す値」と同じだから。
同じであれば、より簡素に表現できる方法を採用するのは当たり前。
前者は簡単な英語にならないよね?

後半はそんなこと言ってないよ。

676 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:12:47.04 ID:/kyzsMvg.net]
>>669
日本語でコメントを付けるなら前者のほうが収まり良さそう
あ、いや、言いたいことは分かるんだけども

677 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:14:16.97 ID:43fglGIp.net]
>>667
ブール値

678 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:16:12.11 ID:Rtj0ivpx.net]
>>671
みっともないよそういうの。

679 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:17:59.20 ID:wWPv3Jxl.net]
>>669
え?
x is a prime number → x_is_prime_number でいいんじゃないの?
「簡単な英語にならない」ってどういうこと?英語にしたらどうなると思ってるのか教えて。

680 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:18:35.19 ID:43fglGIp.net]
>>672
xはyより大きいと断定した場合の真偽値



681 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:42:16.86 ID:43fglGIp.net]
>>672
ちゃんと答えたのに終わり?

682 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 03:16:56.97 ID:Rtj0ivpx.net]
>>673
何度も書いてるけどさ、それは日本語で言えば「Xは素数である」っていう定言命題だよね。>>646

「(Xが)素数かどうか」はwhether (X is) a prime number or not
これをメソッド名に直訳したらGetWhetherPrimeNumberOrNot
ってとこだろうけど、こんな冗長な名前は使えないよね。

>>669に書いたことを認めるのであれば、これをIsPrimeNumberに「意訳」できる。

683 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 04:03:47.54 ID:wWPv3Jxl.net]
>>676
その定言命題(「Xは素数である」=「xが素数」(>>669))で済むところをなぜ意訳して
疑問文にしなければならないのか、したいのか、というところを問うているのです。

684 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 04:13:30.84 ID:wWPv3Jxl.net]
正直、「日本語で言えば」とか直訳とか意訳とかいうのがどうでもいい。
if, while, assert などに続けて自然な英語で読みくだせるように名前を考えてほしい。

685 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 05:42:58.72 ID:OU/LK8hF.net]
いい加減うぜーから消えろよゴミ

686 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 07:29:53.44 ID:ICiqip2R.net]
そもそも自然言語の [A or B] は
[Aですか?もしくはBですか?どっちですか?] だけど、

プログラム(スクリプト)の場合は、
Aを実行してその結果が気に入らなければ、Bを実行して、Bの実行結果を戻りとして採用するが、
Aを実行した副次的変動、及び実行コストについては問われることとなる。

これは、オニオンスープですか?それとも中華スープですか?
と聞かれたとき、両方のスープを飲んだあとに 「中華スープです!」と答えるようなもの。
でも彼はオニオンスープの代金(コスト)は払っているし、腹の中にもしっかりスープは入っている。
そしてもし彼が「オニオンスープです!」と答えたときは、中華スープは飲んでいないのだ。
不思議だね。


なにが言いたいかと言うと、単語や名称ならともかく、
"?" や "or" のような道理の組み立てを必要とするものを自然言語でそのまま当てはめようとするのは自然じゃないと思う。
長い文章で AorB を説明するなら普通に可能だけど。

687 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 08:32:12.71 ID:zyB6ba4K.net]
>>680
> Aを実行してその結果が気に入らなければ、Bを実行して、Bの実行結果を戻りとして採用するが、

知ったかは黙ってろ

688 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 09:05:06.11 ID:3bSG8ND0.net]
これをどう表現するかの派閥争いって事でいいの?
if( x < y ) A else B

1, 「もし」xがyより小さいならA, 違えばB
2, xyが(x < y)「かどうか」判断して正しければA, 違えばB

こんな感じ?

689 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 09:51:40.02 ID:atzPe4+g.net]
どうでもいい領域に入ってるなw

690 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 11:53:00.58 ID:ObWHCjaA.net]
>>677
その答えは>>646に既に書いてある

あなたに逆に聞くけど、あなたはxが素数ならtrueを返すメソッドがある時、
そのメソッドの戻り値は、

(1) xが素数であるかどうか

を表していると考えるのか、それとも

(2) 「xは素数である」という命題が正しいかどうか

を表していると考えるのか。
(1)であるならそんな命名はありえない



691 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 14:03:45.22 ID:EAULLchH.net]
我流japlishの典型だな
ちょっと英語でレスしてみろよおまえ
楽しい英文が見れそうだ

692 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 14:05:23.37 ID:atzPe4+g.net]
the truth is out there..






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

前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