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:15:18
keijak
この類の問題はエスペラント語にすればすっきり解決するというジョークを推しておく。 github.com
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 とか文脈で切替