1 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:36:31.74 ID:uXFKqVsm.net] クラス名、変数名のつけ方に悩んだら書き込むスレです。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 前スレ クラス名・変数名に迷ったら書き込むスレ。Part25 peace.2ch.net/test/read.cgi/tech/1416550677/
586 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 22:38:46.58 ID:mVQoCvvP.net] 基数と序数で使い分ければ良い
587 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 13:59:17.14 ID:5TgdInEL.net] なんかstoreの話題に乗り遅れたけど MFCだと CArchive::IsStoring() なんてのがあったよ、とだけメモ。 その反対は CArchive::IsLoading()
588 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 21:27:08.25 ID:X7cHXqnF.net] 処理の長いhoge関数が実行中かどうか分かるように 変数でフラグ立てようと思ってるのですが 定番の名前とかあったりします?
589 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 22:03:54.99 ID:jitSjVRZ.net] is_executing
590 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 22:15:37.93 ID:X7cHXqnF.net] >>584 関数名を入れるとexecutingは長いので isHogeで行こうと思います ありがとうございました
591 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 22:38:42.90 ID:FSvwZ9Ge.net] 待って、色々と待ってw
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 を説明するなら普通に可能だけど。