クラス名・変数名に迷ったら書き込むスレ。Part26 at TECH
[2ch|▼Menu]
[前50を表示]
950:デフォルトの名無しさん
16/10/15 03:55:43.21 1pU/EGzr.net
>>922
英語の質問なのになぜ日本語で考えるの?

951:デフォルトの名無しさん
16/10/15 04:42:46.06 V7L1rVP7.net
>>940
ウソ言うなw

952:デフォルトの名無しさん
16/10/15 06:08:55.39 Jo0nNvE9.net
チンボジ

953:デフォルトの名無しさん
16/10/15 06:31:39.21 IlwVeyJA.net
>>941
同種の問題だから

954:デフォルトの名無しさん
16/10/15 07:19:46.85 WNhvdafw.net
最近だと英語で名前考える必要性もなくなってきた。

Creature->Amphibian->Frog
日本語だと単に漢字で「蛙」。
日常会話で蛙は生物で両生類で、なんて言ってるやついない。
無機質なアルファベットと漢字では根本的に言語としてのレベルが違う。

それに英語圏の命名過程と、このスレを見比べると、
明らかにこのスレ頭悪いんだよね。
自称英語出来る人が、おかしな論点のまま平然と書き込みをしている。
もう日本語つかっとけ。

ちょっと前にアホな騒動の引き金となった>>830とかも、
整理券 = 出前(品名);
商品 = 到着(整理券);
みたいにすぐ思いつく適当な単語にすれば良い。
setとgetて(笑)そんなこと質問するやつも答えるやつもいねぇよ。
setが普通とかも、英語圏でそんなん主張するやつもいねぇよ。

言語には文化性もつきまとう。
アメリカに行けば、一言一言にアメリカ文化を知っていて当然の比喩などが混ぜられて言語として発せられる。
どんな単語にも分化に由来した強いニュアンスが付きまとう。英語では日本語以上に。
アメリカ人はそれによって自然と命名する。
俺はいちいち検索しなければならない。ハリケーンに女の名前をつけるほどの文化だ。(さすがにプログラムでそこまではやらんけど)。
だからアメリカ人がつくったソースは、イギリス人にはしっくり来ないことも多い。

逆にヨーロッパ人は、神の名前をつける事が多い。
ほんのちょっとしたGUIの内部管理クラス名がアトラスってどんなだよって思う。(アトラスは地図や地形、世界の形を現すことが出来る神)。
彼らは日常的に神を認識してるらしい。俺はいちいち検索しなければならない。

君たちが知ってる文化はおそらく日本だけ。日本語使っとけ。

955:デフォルトの名無しさん
16/10/15 08:37:34.99 IlwVeyJA.net
迷ったら既存の命名を参考にすると良い
URLリンク(developer.mozilla.org)
touchstartは「タッチを開始する」の意
positionstartを同じ流れで考えれば、「位置を開始する」となり、意味が通らなくなる
>>921のいうように英単語レベルの問題でもあるが

956:デフォルトの名無しさん
16/10/15 08:43:18.15 SdiUVG36.net
>>940
java.awt.Component
Point getMousePosition()
Component がマウスポインタの直下にある場合、
この Component の座標空間のマウスポインタの位置を返します。

java.awt.event.MouseEvent
Point getLocationOnScreen()
イベントの絶対 x、y 座標を返します。
Point getPoint()
発生元のコンポーネントを基準とする、
イベントの相対 x、y 座標値を返します。

javaだとこんな感じで気楽に入り混じってる。

957:デフォルトの名無しさん
16/10/15 08:44:03.99 IlwVeyJA.net
>>945
日本語を使うとは「ローマ字」と「漢字」のどちらを指す?

kaishiIchi, 開始位置, startPosition

「開始位置」はいいが、「kaishiIchi」は読みにくくて仕方がないと思う

var 開始位置 = 0, 終了位置 = 100;

日本人にとっては読みやすいが、日本語の変数名はそれが変数だとすぐに認識できなくて違和感があるな(慣れの問題かもしれないが…)
あと、今では変数名にUnicode文字を使えるのが一般的なのかね

958:デフォルトの名無しさん
16/10/15 10:21:23.07 dv2zgIgU.net
>>948
当選unicode。
ローマ字とか熱く推薦してたら俺の知能はやばい。
コンパイラによっては英語だけど、今日びまともな統合環境でunicodeの扱いが適当なんてこともない。

慣れは、ちょっとした練習プログラムの課題みたいのを三つやればもう慣れてるはず。
ただし、日本語にも似ている文字があるのでそこは厳重注意。
(と言っても今日び識別子の間違いはその場で統合環境が教えてくれるが)。

ただし開始位置はセンスないと言っておこう。
今回のマウスなら 押した座標 と 離した座標 にしたほうが普通に色々使えるし、位置より座標のほうがイメージ出る。
ピッチャーの球速を計測する場合も、「開始位置」 から 「終了位置」 までの到達時間で球速を計算する、とか絶対誰も言わない。
野球文化を知らない人なら言うかもしれないけど。
知ってるなら「マウンド」と「ホームベース」。

getだのsetだの開始位置だの、なんにでも使いまわせる単語を使ってる時点でセンスがなければ、文化も分かってない。
分かってないから使い回しがきくものを無理に使おうとする。
思いつかないから。

959:デフォルトの名無しさん
16/10/15 10:22:52.78 O5sFW4ZO.net
>>948
日本語の識別子がNGってのは前時代的だよな
ドメインエキスパートが使う言葉は日本語
モデルの定義書に書かれる言葉も日本語
ミーティングやレビューで使われる言葉も日本語
製品マニュアルに書かれる言葉も日本語
プログラムだけが未だに日本語恐怖症に囚われている
その理由も昔からの習慣だとかなんとなく気持ち悪いとかくだらないものばかり
ドメインが日本語なのにコードを英語で書くってのはむしろ悪い習慣だとみんなが気がつけばもっと楽な世の中になるのになあ

960:デフォルトの名無しさん
16/10/15 11:52:38.69 4zjUlTyK.net
アルファベットのコードの中に日本語が混ざるというのは
良い意味でも悪い意味でも違和感になるからなー

悪い意味としては違和感という語の一般的な意味そのままだけど、
良い意味としてなら、そこが目立つので、いわば自動シンタックスハイライトみたいな感じになるだろうし。

関数の頭に日本語でコメントを書くと
それだけで見出しっぽく見えるっていうのは経験してる人も多いハズ

961:デフォルトの名無しさん
16/10/15 13:18:16.55 fZpbICuu.net
>>950
外国人がチームに加わる可能性、メンテを外注する可能性、有名になって公開する可能性がすべて完全にゼロならそれでいいよ

962:デフォルトの名無しさん
16/10/15 13:42:23.11 dv2zgIgU.net
細かいやり取りが大事な仕事で外人がチームに入るとか想像できん。
外国の会社にソースを見せることならあるけど。
国内用なら日本語のほうがいい。

>>951
断言するが英語のほうが違和感満載。
言語的な理解もそうだが、感覚的な理解の段階で間違ってる。

1年強アメリカで生活したが、感覚的に単語の選択や文の構成を作れない。
でも日本人の英語の滑稽さは分かるようになった。なにかが根本的に間違ってる。

963:デフォルトの名無しさん
16/10/15 13:45:58.76 4zjUlTyK.net
>>953
「良い意味での違和感」という言葉が通じないのはよく分かった
日常会話で使うときは気をつけることにするよ。ありがとうな。

964:デフォルトの名無しさん
16/10/15 13:46:22.59 tywbnmbh.net
うちの職場はスペイン人にカナダ人、インド人と選り取り見取りだけどなあ
今時、大手だったらどこもグローバル化とやらで国籍問わず優秀な人を入れてるよ

965:デフォルトの名無しさん
16/10/15 14:02:00.30 dv2zgIgU.net
>>955
大きさじゃなくて組織の仕組みが良いのでは。
でも全部それでやれと言われると出来ないでしょう。
大きな所は不都合な作業を自由に外に投げるし。

いやまあ別に英語が都合良いなら英語のほうが良いと思うんだけどね。

966:デフォルトの名無しさん
16/10/15 14:30:32.78 tywbnmbh.net
>>956
別に全部英語でやれと言われたらやるよ
社会の公用語は日本語だけど、海外支店とのTV会議なんか全部英語だし、コメントも英語で書くのが義務になってる

967:デフォルトの名無しさん
16/10/15 14:30:54.72 tywbnmbh.net
×社会
○社内
すまんね

968:デフォルトの名無しさん
16/10/15 14:37:41.23 /rOsWLKQ.net
>>949
今回は>>920からの流れで書いたので「開始位置」としたが、
>>811に対する解なら>>828にする
彼は名前が長いことを気にしていたが、その名前が本質を表しているなら名前の長さは些細な問題だ
むしろ、省略することで正確に意味が伝わらなくなってしまう可能性を気にすべきだろう

> getだのsetだの開始位置だの、なんにでも使いまわせる単語を使ってる時点でセンスがなければ
基本的にはあなたに賛成
ただし、何らかのオブジェクトのプロパティであったり、関数内の変数で「何の」開始位置かが自明であるなら使っても良いと思う

function touchstart (startPosition) {}

ここで「startPositionはtouchStartPositionにすべき」と指摘する人がいるなら「文脈を読め」と反論したい

969:デフォルトの名無しさん
16/10/15 14:47:59.03 18UqYEY8.net
>>959
俺だったらstartPositionではなくpositionStartにするけどな。

わかるひとにはわかる。

970:デフォルトの名無しさん
16/10/15 15:07:37.94 LAQ6gYyi.net
positionグループのStart, End, XX
startグループのPosition, XX
て感じか

971:デフォルトの名無しさん
16/10/15 15:12:48.62 F0NY5SKq.net
>>945
> ちょっと前にアホな騒動の引き金となった>>830とかも、

まだ粘着してるのかよ w

972:デフォルトの名無しさん
16/10/15 15:38:53.29 kE5g0VwL.net
>>953
日本語通じてねえwww

973:デフォルトの名無しさん
16/10/15 15:45:51.86 pMgLYSqA.net
メンバーに外人がいるかどうかは問題じゃないんだよ
開発対象のドメインが日本語ならそれに合わせて仕様書もコードもマニュアルも会話も日本語で合わせるべきなんだ
ドメインエキスパートがなんらかのエンティティを指してこれは『注文』ですと言っているならそれはもう『注文』であって『Order』ではない
要件でも仕様書でもコードでも話し言葉でも『注文』で合わせないとダメ
チームメンバーが日本人だろうが外人だろうが関係なく『注文』なんだ
エンジニアが『注文』という言葉を使えばドメインエキスパートは自分たちに馴染みのあるその言葉がなんなのか正しく理解できる
この『注文』という言葉は普段我々が使っているあの『注文』のことであって昼に食べたうどんの注文の話ではないと確信を持って会話できる
しかし『Order』という単語を使うとドメインエキスパートは困惑する
もしかしてこれは『注文』の意味で言ってるのか出前のオーダーでも出そうかという話なのかはたまたなにかの順序の話をしているのかわからなくなってしまう

974:デフォルトの名無しさん
16/10/15 15:51:36.28 +WAwTfPB.net
何か違和感あるなあって思ったらstart/endだわ
それでも普通に通じると思うけど
start/stop、start/finish、beginning(begin)/endが一般的な
startはそのメソッドを持つオブジェクトが動き出すイメージだから、その対はstop
ポジションを表すなら、beginning/endかfirst/lastの方が良いんじゃない?

975:デフォルトの名無しさん
16/10/15 16:43:52.98 dv2zgIgU.net
>>964
実は俺は日常会話に関しては、必ずしも正しく


976:なくていいと思ってるのだ。 俺が言いたいのは、このスレとかで自信満々で回答されてる単語の7割以上は、違和感満載の間違いであると言うこと。 そして、単語や識別子を選ぶための基準や理屈が、英語圏では絶対にあり得ないほどズレているのに、その指摘すら一度も入らないレベルであると言うこと。



977:デフォルトの名無しさん
16/10/15 17:18:07.52 oqo3VYkn.net
>俺が言いたいのは、このスレとかで自信満々で回答されてる単語の7割以上は、違和感満載の間違いであると言うこと
それは本当のネイティブがいないとここで修正は無理だろ。
だから、それ以上は諦めるしかねぇな。

978:デフォルトの名無しさん
16/10/15 17:22:39.96 xaDriJeZ.net
>>965
>>921
これで三度目だ。

979:デフォルトの名無しさん
16/10/15 17:25:47.09 xaDriJeZ.net
>>959
これもとっくに質問者に回答済だけど、そんな馬鹿みたいな冗長な名前を
付けなきゃならない場面に遭遇したら、それを適当な名前空間で包めないかまず考えるべき>>814

980:デフォルトの名無しさん
16/10/15 17:40:29.08 pMgLYSqA.net
>>966
ネイティヴが違和感を感じるかどうかも実は全く問題ではない
ドメインエキスパートが仮に実際の業務でStartPositionという言葉を使っているならネイティヴがなんと言おうがそれはStartPositionが正しい
ドメインエキスパートが使ってもいない言葉を勝手に作り出したり英訳したり似たような他の英語を使ったりネイティヴの感覚で訂正したりするとそれは間違いになる

981:デフォルトの名無しさん
16/10/15 17:58:59.77 xaDriJeZ.net
日本語識別子がどうとか下らない話もいい加減にしようよ。

日本語識別子が一般に避けられる傾向にあるのは、別にかっこつけてる(笑)
みたいな中二病な理由じゃなくて、今時のIDEの入力補完と相性が悪いからでしょ。

インテリセンスがローマ字に対応したら日本語識別子もありかもしれんよ
俺は中二だからたぶん使わないと思うけどw

982:デフォルトの名無しさん
16/10/15 18:15:27.91 gUMRUJva.net
>>970
それはセンス0だなー
だったらここに書き込むときは君のドメインエキスパートとやらを連れてくれば?
そのドメインエキスパートもセンスがあるのかどうか分からないけど

983:デフォルトの名無しさん
16/10/15 18:28:16.84 4zjUlTyK.net
>>971
平仮名やカタカナのみなら、相性は悪くないんだろうけどねー。
日本語である以上やはり漢字を使いたいところ。

たとえば変数名が「斉藤」だとして、
異字体(斎藤など)を区別、あるいは逆に同一視できるか?
「さ」や「s」を入力した時点で変数名補完ができるか?
みたいな

984:デフォルトの名無しさん
16/10/15 18:31:37.52 8FrzlPpG.net
>>972
2chに顧客連れてこいとか正気か?
それとドメインエキスパートに命名センスは必要ないよ
適切な名前はすでに彼らの業務の中に存在する
すでにあるものに間違った名前をつける行為が害悪なんだ

985:デフォルトの名無しさん
16/10/15 18:37:01.51 /rOsWLKQ.net
>>969
名前空間で包むことは否定しないが、それは本人の設計思想次第ではないかね
あなたは冗長というが、必要ならそれぐらいの名前は許されると思うし、きわめて主観的な問題
あれが冗長なら例えば、getElementsByTagNameも長すぎて許せないとあなたは思うのだろうね

986:デフォルトの名無しさん
16/10/15 18:53:39.17 /rOsWLKQ.net
原則として名前は言語仕様に追従すべきものであると考えている
例えば、「ひまわり」なら日本語で命名すべきだが、「JavaScript」なら英語で命名すべきだ
オブジェクト指向をとる場合もビルトインオブジェクトやネイティブオブジェクトに近い名前にする事が望ましい

英語を基本とするプログラミング言語において、自分で書いて自分で保守すること「だけ」を考えるなら日本語で命名しても良い
それは他の人がソースコードを参考にする事を配慮しないことを意味するからだ
ソースコードをオーブンな場で共有するものと考えるなら出来るだけ公用語の英語を選択した方がよい
そうすれば、英語を読める人からフィードバックを得られるし、自分からも他の人にフィードバックする事が出来る

それと英語を基本とするプログラミング言語は仕様書やリファレンスが英語しかないことが多々あるので英語を読めないのはそれだけでハンデになる
命名するときに仕様書で似たインターフェースを探して参考にすることも出来ないだろう

987:デフォルトの名無しさん
16/10/15 18:59:36.73 TRjDGE+n.net
正直、プログラミング中に漢字変換なんかしたくねえよ
変数もコメントも全部英語で良いわ

988:デフォルトの名無しさん
16/10/15 19:06:39.06 JenZQSiG.net
そろそろ次スレよろしく。

そして、「命名規則や設計の善し悪しについて議論するのは基本的に禁止。 」

989:デフォルトの名無しさん
16/10/15 19:23:38.02 +WAwTfPB.net
>>977
同意
英数字と見た目的に同等な文字が存在する以上日本語入力で書く気になれん
昔、誰かが書いたコードで「;」の代わりに「;」が入っていたことがあって
イラッとしたな

990:デフォルトの名無しさん
16/10/15 19:26:36.71 mVOIWD6D.net
英訳したい病の人は一般的な意味での単語とドメインにおける特定のエンティティを指し示す単語の区別がついていないんだろうね
ソフトバンクのお父さん犬を表現するクラスはclass お父さん犬;以外にありえないんだよclass FatherDog;ではもはや別のエンティティになってしまう
おい、FatherDogが日本語を喋ってるってインシデントが発生したぞ!犬が喋るわけないだろ、担当者は誰だ!と怒られてしまうよ
これがドメインの知識を不足なく完全に反映したお父さん犬であれば、お父さん犬が喋ってるってよ!ん?そりゃそうだろう、と円滑に物事が進む
同じように注文という単語一つとっても、開発対象のドメインにおける注文と一般的な意味での注文は同じではない
この注文はそのドメイン固有の特徴を持ったエンティティであり一般的な注文と混同してはならない
したがって一般的な意味での英訳であるOrderに置き換えてはいけない
もちろんそのドメインにおいて正式に英訳がOrderであると決まっているなら英訳してよいし

991:デフォルトの名無しさん
16/10/15 19:29:23.80 ttNAxKpQ.net
そういや、タブの中にしれっと全角スペースが紛れ込んでたことあったな

992:デフォルトの名無しさん
16/10/15 20:27:01.17 WTQiAfdN.net
業務用語は素直に日本語使っておけ

993:デフォルトの名無しさん
16/10/15 21:26:12.05 4zjUlTyK.net
そういや固有名詞とかどうしてる?
関数名に入れる? それとも他の語を探す?

「ユーザが斉藤さんなら(プロセスを)殺す」関数とか
「我が社が開発したサイトウシステムを停止させる」関数とか、そういう類

994:デフォルトの名無しさん
16/10/16 00:09:21.25 DXmiytAw.net
>>966
日本人にわかる英語でないと意味がない。

995:デフォルトの名無しさん
16/10/16 00:16:25.94 v/GEKxcD.net
>>984
辞書見ないとわからんなーって単語は結構迷うよね

996:デフォルトの名無しさん
16/10/16 00:18:54.60 MAx8XuB7.net
set / getがダメという意見にはまったく賛成できない。
言語も熟練度も越えたアクセサの命名規則だろ。
素人でも理解できる。

997:デフォルトの名無しさん
16/10/16 00:27:29.86 1LSEBjMH.net
>>983
普通は汎用的にプロセスを殺す関数作って、引数として固有名詞渡すようにする。
でも便利関数として固有名詞を含んだ関数を作ることも十分にありうる。
要は臨機応変。

998:デフォルトの名無しさん
16/10/16 02:51:13.88 MMtmJt+k.net
>>974
頭悪いだろ

999:デフォルトの名無しさん
16/10/16 03:17:37.12 NOg6ZxxU.net
>>986
その規則がだめなんだろ。素人が誰かも、理解させる理由もわからんし。
しかも素人がその命名規則を知ってるのか?

ではその素人とやらに、冷蔵庫で食材を冷やすことを「set」する。食材を切る準備を(まな板の上に)setする。フライパンで炒める事をsetすると主張してみるがいい。
setとgetは論点がアクセサの説明になった時に使うのは適切だが、
皿に魚を「盛り付ける」行為を、アクセサー用語に置き換えてsetするなんて言わない。
料理をするときは料理用語。
日本語でもこれは「接続詞」からの「動詞」だから〜とか馬鹿な言い回しをするやつはいない。
ただし、英語を出来ない日本人は頻繁にやるけど。

ズレてんだよ。頭の中

1000:デフォルトの名無しさん
16/10/16 03:50:19.66 8D32iC3X.net
正直、企画連中が使う言葉なんてコロコロ変わるからそれに合わせて命名なんかやってらんない

初期段階では「割引券」機能と言ってたくせに、実装が一通り終わってから「会議で正式名称は『RaCoupon』に決まりました!」なんてさ

1001:デフォルトの名無しさん
16/10/16 07:11:46.38 bdh7il0f.net
>>981
Unicodeだと全角空白も空白扱いだな、一応

1002:デフォルトの名無しさん
16/10/16 07:35:04.08 MAx8XuB7.net
>>989
おまえが大ズレじゃねえかw
何言ってんだおまえ?
>フライパンで炒める事をsetする

1003:デフォルトの名無しさん
16/10/16 07:37:30.11 MAx8XuB7.net
>>989
ここでこの間大騒ぎしてたのはおまえかw

1004:デフォルトの名無しさん
16/10/16 07:38:53.91 NOg6ZxxU.net
フライパンの上にsetするって意味だが、その程度も分からないし、
そもそも論点がそこにあることすら理解できてない。

1005:デフォルトの名無しさん
16/10/16 07:48:35.01 7quvU6KA.net
「盛り付ける」行為にgetter, setterを割り当てようとする目的が全く分からん
何をgetして何をsetするつもりなんだ?
説明が滅茶苦茶だから仮想コードを書いて説明した方がマシ

1006:デフォルトの名無しさん
16/10/16 07:50:51.33 9M/UHFkb.net
二回連続レスとかディスプレイの前で最高に興奮してそうだな

1007:デフォルトの名無しさん
16/10/16 07:55:15.14 MAx8XuB7.net
>>996
朝見た瞬間驚いたんだよ。

1008:デフォルトの名無しさん
16/10/16 07:57:56.53 NOg6ZxxU.net
>>995
その「何を」を問わないで、アクセサだからsetと言うのがいるんだよ。
盛り付けがアクセサで定義された場合、それはsetであるべきなんだとよ。
俺のはそれに対する反論

1009:デフォルトの名無しさん
16/10/16 08:06:24.50 MAx8XuB7.net
>>998
おいおいそれアクセサじゃねえだろw
アホらしいからやめるぞ。

1010:デフォルトの名無しさん
16/10/16 08:08:22.68 NOg6ZxxU.net
最初からそうしてくれると助かったんだが。
スイカの味のあ話をしてる時に一人で勝手にスイカを売ってる店の話をして、
あほらしいといって帰っていく。かなり迷惑なタイプ

1011:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

97日前に更新/261 KB
担当:undef