真偽値を返す関数のネーミング - Qiita
    2017/09/07 11:01:18
  
  
    cucumisin
  
  
     関数名命名について。『頭に if を置いて最もしっくり来る表現が良い』なるほど。
  
    2017/09/07 15:11:54
  
  
    girled
  
  
    慣例的にexistsだったのでそこはしっくりだったけど、英語的な認識はしたことなかったので恥ずかしながら勉強になった。AMG(SNSだったらLF含)が神なのは異議無し。
  
    2017/09/07 18:28:00
  
  
    tsz
  
  
    '-p'か'?'で終わっておけばだいたい大丈夫(LISP脳)
  
    2017/09/07 20:04:04
  
  
    baronhorse
  
  
    hasEmptyName かなー
  
    2017/09/07 21:56:34
  
  
    takapiko0819
  
  
     真偽値を返す関数のネーミング
  
    2017/09/07 22:26:18
  
  
    tomatobune12341
  
  
    なるほろ。大抵isでやってたけど、紹介されてるモノはセンスいい名前だと思った。
  
    2017/09/07 22:51:53
  
  
    love0hate
  
  
    一方rubyはisを廃して?をつけた
  
    2017/09/07 23:35:00
  
  
    hamkatsu
  
  
    “ソフトウェアの世界では、Apple と Microsoft と Google が黒と言ったら黒です。”
  
    2017/09/07 23:50:24
  
  
    snicmakino
  
  
    javaだと、booleanを戻す関数は、三人称単数形を利用する慣習があると思ってる(equals、contains等)
  
    2017/09/07 23:52:55
  
  
    tsutsumi154
  
  
    オフショア開発してるわけじゃないから英語に厳密にするつもりは全くないな。ローマ字はかっこ悪いので使わないけど
  
    2017/09/07 23:57:28
  
  
    snowcrush
  
  
    名前付けの際あんまり英文的な見た目を意識し過ぎないほうがいいと思うけどなー。レシーバーのことを「主語」とか言い出したら末期だと思ってる
  
    2017/09/08 00:13:42
  
  
    delphinus35
  
  
    いきなりdisられるGo言語……>“とりあえず isExist は論外です。”
  
    2017/09/08 00:52:26
  
  
    wow64
  
  
    対象が複数の場合に、areじゃなくてeveryやeachで無理やり単数化するのは面白い
  
    2017/09/08 00:55:48
  
  
    I8D
  
  
    “真偽値を返す関数名は is で始めないと死んでしまう病”
  
    2017/09/08 01:21:18
  
  
    irodori_kotori
  
  
    rubyで?で終わるメソッドの戻り値を真偽値以外にした奴がいて、数名のプログラマを爆死させたことを私は忘れない。
  
    2017/09/08 01:33:21
  
  
    Windymelt
  
  
    exist-p
  
    2017/09/08 01:50:22
  
  
    bottomzlife
  
  
    小学生のころ厨二病にかかったのでマシン語でもBASICでも真偽値とる変数や関数は末尾にpつけてるよ・・・なに英語って・・・
  
    2017/09/08 02:07:07
  
  
    appletriangle
  
  
    面白い。正確な英語表現から逸脱したくないのなら isExisting でいいんじゃない?とは思うけど。
  
    2017/09/08 02:47:05
  
  
    islejp
  
  
    母語が英語じゃない組織やコミュニティで、英語の識別子を無理して付けることは生産性や可読性を下げると思うのだけど。アメリカ人などは皆、母語で命名しているので、日本でも母語で命名できると良いのでは?
  
    2017/09/08 02:48:43
  
  
    ndanah
  
  
    isで文法が成り立たないならexists、contains、hasなど動詞を使う。可能かどうかはcan
  
    2017/09/08 02:57:39
  
  
    lbtmplz
  
  
    “isExistence だと「存在するか?」というより「存在か?」という感じで、意味がわかりません”
  
    2017/09/08 03:40:59
  
  
    kentrino
  
  
    isExistで良い。goの本家で採用されている通り、ネイティブにとっても文法より規約の方が大事なのだ。
  
    2017/09/08 05:40:18
  
  
    leiqunni
  
  
    関係ないけど、オブジェクト指向言語で楽なのは、基本的なメソッドの名前が既定されてるところかな。Length()とかSize()とか。is〜シリーズもかな。
  
    2017/09/08 06:10:13
  
  
    maruware
  
  
    rubyの?素晴らしいのに他に広まらない
  
    2017/09/08 06:30:25
  
  
    kamei_rio
  
  
    英語の文法が大事、AppleとMicrosoftとGoogleが黒といったら黒、関数の関係性の分かりやすさ、と様々。ケースバイケースかしら
  
    2017/09/08 06:49:13
  
  
    deokisikun
  
  
    “「真偽値を返す関数名は is で始めないと死んでしまう病」”で吹いたw なるほどね。existsね
  
    2017/09/08 06:53:22
  
  
    aya_momo
  
  
    1行目からおかしい。/ネイティブじゃなくてもIsExistは気持ち悪すぎ。
  
    2017/09/08 07:06:44
  
  
    abcd0035
  
  
    他人が見てわかりやすいかどうかが英語的に正しいかより大事な気がする
  
    2017/09/08 07:12:43
  
  
    totoronoki
  
  
    Weblioの例文見ると結構載ってるよね。「指定したキーが設定値として存在するかどうかを返します。 Tells whether a given key exists as a config value.Parameter」とか、プログラムにダイレクトな例文もあるし。
  
    2017/09/08 07:31:29
  
  
    yoshihiroueda
  
  
    「Pで終わる」だろ、フツー。ん? Qかな。
  
    2017/09/08 07:32:00
  
  
    kijtra
  
  
    isCanExists()
  
    2017/09/08 07:38:18
  
  
    n314
  
  
    例えば日本語プログラムの場合、「もしアイテムがリストに含まれるなら」より「もし(リスト.含む(アイテム))」の方が良い派なんだけど、英語だと文章の方が良いのかね?
  
    2017/09/08 07:54:48
  
  
    odakaho
  
  
    変数名をexistsにした時にgetterがisExistsになる不幸はどうしたらええねん。。
  
    2017/09/08 08:11:07
  
  
    uturi
  
  
    “関数名の表現に困ったら、世の中の API を参考にすると良いです。” なるほど
  
    2017/09/08 08:18:08
  
  
    cl-gaku
  
  
    "存在か?"
  
    2017/09/08 08:18:53
  
  
    komutan1
  
  
    2017年になってもまだregist見かけるので意味が分かれば間違っててもいいかなと思ってる。
  
    2017/09/08 08:30:23
  
  
    itouhiro
  
  
    「is で始められない関数名の名付け方。exist は動詞なのでisと組み合わせ不可。Apple, Microsoft, Googleはexists()を使う。動詞始まりで真偽値を返す表現(contains, has, needs)。助動詞始まりで真偽値(can, should)AppleのNamingGuidelines」
  
    2017/09/08 08:30:27
  
  
    akulog
  
  
    普通に英語の話
  
    2017/09/08 08:34:14
  
  
    mohno
  
  
    「ソフトウェアの世界では、Apple と Microsoft と Google が黒と言ったら黒です」ww Pre/Post、Before/After の代わりに ing/ed とか。
  
    2017/09/08 08:58:43
  
  
    yfujisawa
  
  
    静的型付き言語を使えれば、こんな悩みはないのだがなぁ。
  
    2017/09/08 09:01:50
  
  
    Rishatang
  
  
    「右舷」を「みぎげん」って呼ぶことに対し「日本語として間違ってる」って言うとそれはクソリプだし、プログラムも同様に「意図が正しく伝わるか」で判断すればいいのでは
  
    2017/09/08 09:12:04
  
  
    shopetan
  
  
    微妙に悩んでたので為になった
  
    2017/09/08 09:25:32
  
  
    peperon_brain
  
  
    isExist否定派だったが、Goの件は知らなかった…
  
    2017/09/08 10:03:14
  
  
    otihateten3510
  
  
    見つけづらいが文法的に正しい名前をつけるか、見つけやすいが文法的に間違った名前をつけるか。これは永遠のなんちゃら
  
    2017/09/08 10:06:54
  
  
    mui03
  
  
    まじか、とかじゃダメなのか。 なお、私はこういうことは門外漢。
  
    2017/09/08 10:07:29
  
  
    jojo800
  
  
    われわれジャパニーズだからわかりやすいのが一番だと思ってる。リーダブルコードに書いてあったget,setはいくない。みたいなのも懐疑的
  
    2017/09/08 10:29:43
  
  
    teruroom
  
  
    プログラミングにおいてネイティブの英語表現なんてわりとどうでも良い。いっそ開き直って日本語にしたら?。「存在するか()」関数とか←。
  
    2017/09/08 10:35:38
  
  
    EGjGu8Ry
  
  
    なるほど
  
    2017/09/08 10:42:34
  
  
    tofu-kun
  
  
    面白い
  
    2017/09/08 10:49:03
  
  
    kenichiice
  
  
     「ということで、Apple の Naming Guidelines オススメです!」
  
    2017/09/08 11:03:09
  
  
    gabill
  
  
    「しゃらくせェ!Personの複数形はPersonsでいいんだよ!」と思ってしまう。
  
    2017/09/08 11:11:55
  
  
    iww
  
  
    『英語的に、is 始まりが難しい場合もあります。』 当の英語圏がそれを大して気にしていないのだから ごちゃごちゃ考えず整合性というか統一感を第一に考えた方がいい
  
    2017/09/08 11:12:53
  
  
    sds-page
  
  
    blnとかintとかを頭につけりゃこんなくだらないことで悩まなくて済む
  
    2017/09/08 11:24:09
  
  
    doroyamada
  
  
    isThereでええんちゃう?
  
    2017/09/08 11:33:23
  
  
    Diomedeidae
  
  
    !is.na()でいいやん?と思うくらいのR脳
  
    2017/09/08 11:44:22
  
  
    sangping
  
  
    日本語でやれ
  
    2017/09/08 11:49:18
  
  
    enemyoffreedom
  
  
    doesは使わないのか / あと複数形が不規則な場合に悩む、特に何らかの自動命名が必要な場合に。まぁGlobish的に何でもかんでもsつけとけばいいやとは思っているが
  
    2017/09/08 11:49:26
  
  
    bangflash
  
  
    exist?って書こうとしたら既にいっぱいあった。アレ画期的だよなぁ
  
    2017/09/08 11:58:24
  
  
    sysop
  
  
    テックリーダーやCTOには一番向かない人種、横串系の部署に配属も数年で部署ごと解体される様がよく観測される/大事なのはメンバーにとって分かりやすい規約であって英語的な正しさではない
  
    2017/09/08 12:02:31
  
  
    el-condor
  
  
    英語文法的にどうよ、というのは、後から来てコードのメンテナンスをする立場からすると、気分良く仕事する上で案外重要。is+動詞の気持ち悪さに配慮できるくらいは欲しい。あとrubyの?は便利。
  
    2017/09/08 12:05:52
  
  
    nabe1121sir
  
  
    ネーミングの是非はともかく、やっぱり多人数で開発するなら静的型付け言語じゃないと苦しいと思う。
  
    2017/09/08 12:24:20
  
  
    honeybe
  
  
    「ソフトウェアの世界では、Apple と Microsoft と Google が黒と言ったら黒です。黙って従いましょう」あ、はい。
  
    2017/09/08 12:29:04
  
  
    saqqu
  
  
    文系プログラミング
  
    2017/09/08 12:29:48
  
  
    deamu
  
  
    「英語的に論外」宗教は原則としてリファラのスペルを見て泡吹いて軒並みショック死してるはずなので、まだ生存していて記事を書くことが可能(isCan)なこの人は英語文法主義を騙ったニセ者ですね(名推理
  
    2017/09/08 12:45:39
  
  
    sgo2
  
  
    つい最近の案件で、あるクラスにそのクラスのメンバXを書き換えるsetXと、メンバXの値を引数で渡した変数にセットするsetXとがあって流石にキレかけた。ネーミングの時には主語を意識して欲しい。
  
    2017/09/08 12:53:19
  
  
    theatrical
  
  
    コンパイラにチェックさせて警告出させるようにすりゃ規約に従うし、それが良いんじゃねぇの。「文法おかしいぞ!」「うっせーお前の言うとおりにするとコンパイラが警告出すんだボケ」で解決
  
    2017/09/08 12:57:40
  
  
    onepiece-framework
  
  
    英語は記号として使え。文法的な正しさを求める奴は賢さが足りないを
  
    2017/09/08 12:59:11
  
  
    prozorec
  
  
    isPresentでよろしかろう
  
    2017/09/08 13:31:55
  
  
    KishikawaKatsumi
  
  
    Go言語のIsExist()は_, err := os.Stat(filename)などの後でos.IsExist(err)のように使って、errの種類がErrExistかどうか( Is the error "Exist"?)を示す関数なので、英語の文法的に間違っているわけではないです。
  
    2017/09/08 13:38:51
  
  
    mikage014
  
  
     ( ´・ω) (´・ω・) (・ω・`) (ω・` )
  
    2017/09/08 14:20:44
  
  
    aquarickn
  
  
    ネーミングルールの闇は深い
  
    2017/09/08 14:23:38
  
  
    shinagaki
  
  
    Plural とかも全部 s つければいいんかな
  
    2017/09/08 14:47:20
  
  
    gnufrfr
  
  
    isExistだけは許してくれ
  
    2017/09/08 14:53:53
  
  
    umai_bow
  
  
    そもそも存在するかチェックするなんてこと少なくない?データならnullでチェックするし、ファイルの有無だったら標準ライブラリとかあるだろ。インスタンス自身がexistsなんてメソッド持つことある?
  
    2017/09/08 15:47:55
  
  
    primedesignworks
  
  
    isNoOdoriko
  
    2017/09/08 16:16:18
  
  
    hisomura
  
  
    qiita側のコメントにあったけどhasEmptyNameのが好き。
  
    2017/09/08 16:47:29
  
  
    rryu
  
  
    日本語だと短い単語なのに英語にすると長い文章になるやつに遭遇しまくっているとだんだん「分かればいいや」という気持ちになってくる。
  
    2017/09/08 17:03:13
  
  
    garage-kid
  
  
    392
  
    2017/09/08 18:24:10
  
  
    n-channel
  
  
    本質はプログラミング 言語であることなので、英語にこだわると逆に直感的な可読性が落ちていく。ということに気づいたので、最近はとりあえず全部isにしている。
  
    2017/09/08 22:19:18
  
  
    gabari
  
  
    isExistは無いわー。逆にisExistingは全然あり。canはそもそも書く機会がない。/golang見たけど、()の中に引数があるから全然違う。確かに、そもそもexistsを自分で書く機会はあまり無い。
  
    2017/09/08 22:44:03
  
  
    kuniku
  
  
    規約でなく慣習だね(ならわし。メソッドの run / exe / exec / execute /start のが違いがわからんで?
  
    2017/09/08 23:45:44
  
  
    Chinosoko
  
  
    Goは全く知らないけど、言葉に疑問を持たないと、IsExist を exists と同じだと勘違いして、「ファイルの存在確認機能」として使ってしまったりする、と巷の使用例を見て良く解った。英語話者っぽい人でも間違えてるのが…
  
    2017/09/09 00:03:08
  
  
    Magicant
  
  
    DDD 的には日本人が英語でプログラム書くのがそもそも間違ってるって感じだが
  
    2017/09/09 08:37:49
  
  
    sonota88
  
  
    Lisp の -p 仕事でも使いたい
  
    2017/09/09 09:34:02
  
  
    pmint
  
  
    真理値だけでなく自分で定義した型のことも考えると「型名を付ける」しか無い。それとプログラミング言語は英語ではない。検索性とパターンを第一に考えないといけない。単語レベルで読みやすくしても無意味。
  
    2017/09/09 12:38:25
  
  
    tick2tack
  
  
    existsみたいなのは覚えちゃってるけど、文法とか理解してないからいろいろやらかしちゃってるだろうなー
  
    2017/09/09 23:37:31
  
  
    fuktommy
  
  
    isExist()は100回見た。 真偽値を返す関数のネーミング on @Qiita
  
    2017/09/09 23:38:34
  
  
    ghostbass
  
  
    foo.exists ってのは fooが存在するか、ってことでfalseを返すなら fooはいったいどこにあるのか、そこに存在しているfooオブジェクトは何者なのか、って疑問がわく。
  
    2017/09/11 10:34:16
  
  
    kenichi_odo
  
  
    本当に難しい
  
    2017/09/11 10:51:51
  
  
    teracy_junk
  
  
    C++タグが付いてるから議論はC++限定の話かもしれないけど、is+動詞気持ち悪い→自動生成getterがなんでもis○○はあるある
  
    2017/09/11 12:29:13
  
  
    tanjoin
  
  
    関数がどんな動きをしているのかわかれば正直なんでもいい / 仕様どおりに動けばいい / 表現にこだわりすぎて理解が難しくなりバグを多発するのはナンセンス
  
    2017/09/11 13:29:11
  
  
    keim_at_Si
  
  
    んー。そもそも「存在するか」を本人確認できること自体矛盾してる派。インスタンスが存在している時点で、その物は存在して無きゃダメなので(OSS原理主義)、 isReady とか isAbailable とか isAlive とか ! isEmpty とか文脈で切替