プログラマーを悩ませる、命名の難しさについて
話の発端は
isExistメソッドとか (スコア:1)
by Anonymous Coward on 2014年03月25日 10時54分 (#2568810)
もろに日本人っぽいソースコードで好感が持てる。
あるある過ぎる。個人的にはexists()にすると他のとの統一性が失われる気がするのでも isAvailable とかが好みかな http://t.co/qAQMgXEkPg
2014-03-25 12:34:02@stealthinu exist は動詞なので、isExist という命名はおかしいのです。クラスのメソッドであれば SomeClass.exists()、関数であれば例えば fileExists() とか propertyExists() とすべきですね。
2014-03-25 13:57:35@suno88 ネタ元にもあるんですがis~で揃ってるところに違う表現を入れなくちゃいけないのが気持ち悪くて。これって、コンピュータ言語の文法的に直交性があるほうが気持ち良いのに、自然言語の文法を持ち込むと気持ち悪くなるっていう、SQLとかRailsの単数・複数型の
2014-03-25 14:02:18@stealthinu その視点は自分にはなかったので新鮮です。Ruby なら exists?、Lisp なら exists-p のように統一した表記に落とし込めるのにってことですか。私はメソッド名が isXXX、hasYYY、exists とバラバラでも気になりませんけどね。
2014-03-25 14:07:22英語的に正しいかどうか
@ktz_alias それもおかしい。Foo is existence. は「Foo が存在する」という意味にはなりません。「Foo は(虚構、幻影ではなく)存在である」という意味です。
2014-03-25 14:35:58@ktz_alias そうです。たとえばあるファイルを読み込めるかを見たいということなら fileExists(filename) ではなく isReadable(filename) と逃げることもできますが、ちょっとトリッキーに思えます。
2014-03-25 15:42:39@risunosuke @ktz_alias その発想はなかったwww そんなメソッド名を後輩がつけたら、もっと頭を使う場所があるだろうと一喝します。
2014-03-25 16:39:29関数名に日本語を使う話とか
@stealthinu @suno88 function 不適切な値が存在するか(array){ } ができる言語についてはどうお考えですか?
2014-03-25 14:30:46@risunosuke @stealthinu TDD で有名な和田卓人さんは、テストメソッドは分かりやすさを優先して日本語メソッド名をつけたほうがよいと主張されています。それ以外で日本語メソッドを積極的に使うべきという主張はあまり見ませんね。
2014-03-25 14:43:05@ktz_alias existanceでぐぐったらweblioのページでexistenceのよくあるミススペルだぜ!と言われました。僕もexistanceだと思ってましたわ。
2014-03-25 14:30:27@risunosuke @suno88 お題の意図がわからんかったです。そしてすのさんとりすのすけさんの話が合ってるのを見て orz となってます。
2014-03-25 14:53:06今日のTLで英語とメソッド名の話が続いてたせいで、怖くて新たなメソッド名が付けれなくなったよママン。なんで英語ネイティブに生まれなかったんだろ… ううう…
2014-03-25 16:58:29数日後、もう少し考えてみるの巻
命名でinfoやtempくらいの省略はいいよね?で、元/先を表す時src/dstの省略表記はどう思います?destinationは長えよと感じちゃうんですがやっぱフルで書くべき?
2014-03-28 14:19:18