トップページ⇒tech
1001コメント239KB

クラス名・変数名に迷ったら書き込むスレ。Part7

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/04/14(金) 10:26:48
クラス名、変数名のつけ方に悩んだら書き込むスレです。

質問する人は、その変数に何を格納するのか(クラスだったらその役割)
プログラミング言語は何なのかを、それぞれ書いて、
いい変数名を思いついた人は、それに答えてあげましょう。

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

>>2 英和・和英・英英など各国語辞書と翻訳サイト。
>>3 専門用語辞書、類義語(シソーラス)辞書、図形・数式・数学用語の英単語。
>>4 関連スレと、いろいろな言語規約。
>>2-10 諸事情によりリンクがずれた場合。

前スレ。
◆ネーミング倶楽部◆
http://pc3.2ch.net/tech/kako/1035/10353/1035362308.html
Part1
http://pc5.2ch.net/tech/kako/1046/10465/1046541730.html
Part2
http://pc5.2ch.net/tech/kako/1058/10582/1058213523.html
Part3
http://pc5.2ch.net/test/read.cgi/tech/1067171530/
Part4(間違って3として進行)
http://pc5.2ch.net/test/read.cgi/tech/1087209526/
クラス名・変数名に迷ったら書き込むスレ。Part5
http://pc8.2ch.net/test/read.cgi/tech/1109330204/
クラス名・変数名に迷ったら書き込むスレ。Part6
http://pc8.2ch.net/test/read.cgi/tech/1128266018/
0232デフォルトの名無しさん2006/05/21(日) 14:34:13
>>231
orz
たまにやってまう。
動詞にisつけるなってことだよな・・・

has + 過去分詞形も使うらしいが、
hasっててっきり、持っているって意味かと思ってたし。
0233デフォルトの名無しさん2006/05/21(日) 14:35:22
他の言語でも、rubyみたいに?使えるといいのにね。
0234デフォルトの名無しさん2006/05/21(日) 14:39:25
>>232
has は持ってるって意味だよ。メソッド名に現在完了の文なんて使いたくない。
0235デフォルトの名無しさん2006/05/21(日) 14:44:42
Is...名詞
Has...名詞
NeedTo...動詞
Already...過去(分詞)
Now...現在分詞

こんな感じのがごちゃまぜだけど
読みにくいかな(;´Д`)
0236デフォルトの名無しさん2006/05/21(日) 14:54:04
IsHit
0237デフォルトの名無しさん2006/05/21(日) 14:54:23
>>235
(・∀・)イイネ!!
0238デフォルトの名無しさん2006/05/21(日) 15:41:06
freeとかdeleteもキモイとか言いいそうだなw
freeAreaPointedTo(p);
とかじゃないとダメとか。

つーか英語に固執するやつの方がキモイ。
0239デフォルトの名無しさん2006/05/21(日) 15:43:33
ずいぶん前に同じような質問したら全然回答がなかったけど。。
>>235
あとCanXXXってのもあるね。NeedToと被るけどMustXXXもある。

でも文法的なオカシサに敢えて目をつぶって全部IsXXXで統一するってのも
一つの合理的な考えかただと思う。

俺自身は人にソース見られたときのことつい考えちゃってできないんだけどね。
コイツは英文法が分からない馬鹿なんだと思われたくないって。
こういう自意識は中学生みたいでそれこそ馬鹿みたいだなとも思うんだけど。
0240デフォルトの名無しさん2006/05/21(日) 15:45:13
っゆとり教育

文法に則ってなくても意味は通じる
というか、実際に使われる口語の文法はかなり酷い
あっちは義務教育じゃないしな。
0241デフォルトの名無しさん2006/05/21(日) 16:54:45
別に文法に則して無くてもいいが、一貫性は保っていて欲しい。
0242デフォルトの名無しさん2006/05/21(日) 17:25:08
IsSexed
0243デフォルトの名無しさん2006/05/21(日) 18:19:13
sexp←どういう意味だっけ?
0244デフォルトの名無しさん2006/05/21(日) 18:35:53
S式
0245デフォルトの名無しさん2006/05/21(日) 18:58:35
>>243
文字列型の拡張ポインター
0246デフォルトの名無しさん2006/05/21(日) 19:06:35
>>240 プログラムは口語じゃねーよ。
0247デフォルトの名無しさん2006/05/21(日) 19:18:54
>>246
英語でもないけどな。
だから変数名や関数名に悩む=このスレがあるんじゃね?
0248デフォルトの名無しさん2006/05/21(日) 19:20:45
というより、母国語が英語じゃないからなやむ
0249デフォルトの名無しさん2006/05/21(日) 20:10:56
停止してください、というフラグはどうあらわしたらいいんだろ。

Stops ?
0250デフォルトの名無しさん2006/05/21(日) 20:11:40
Terminated/ing
0251デフォルトの名無しさん2006/05/21(日) 20:14:34
Terminatedキタ!
サンクス
0252デフォルトの名無しさん2006/05/21(日) 20:27:57
おいおいそりゃ英文法どうこうって議論はおいといても意味的に変でしょ

Terminated: 停止されました
Terminating: 停止しようと(されようと)しています。

停止してください、なら
NeedToTerminate
MustTerminate
ShoudBeTerminated
0253デフォルトの名無しさん2006/05/21(日) 20:31:40
オブジェクト自身の状態を"終了処理中"に遷移しろって事なら別に変でもない。
0254デフォルトの名無しさん2006/05/21(日) 21:19:49
>>252
なるほど。参考になります
0255デフォルトの名無しさん2006/05/21(日) 21:26:16
getItStopped
0256デフォルトの名無しさん2006/05/21(日) 21:26:20
漏れはフラグで処理を中断する場合はbKeepRunがfalseならbreakだなぁ
ハンガリアン擁護派じゃないけどなんかbool変数にだけはb付けてしまう
0257ハンガリアンまんせー2006/05/21(日) 21:49:01
>>256
素直に(*´д`)σ)´Д`)ナレヨォ
0258デフォルトの名無しさん2006/05/21(日) 23:41:24
terminate でいいんじゃねーの?
0259デフォルトの名無しさん2006/05/22(月) 00:30:07
何かをロードするとき頭にloadを持ってくるのか、後ろに持ってくるのか悩んでます。
例:TextLoad or LoadText

ToInt あと、これの日本語訳はどうしたらいいでしょう?

数値変換命令?文字列変換命令?
0260デフォルトの名無しさん2006/05/22(月) 00:34:16
>>259 >>229
0261デフォルトの名無しさん2006/05/22(月) 00:34:34
>>249
スレッドの停止フラグは toStop にしてるな
短いしわかりやすいしいい感じ

>>259
・特に問題がなければ普通は動詞が前では?
・なんで関数名を訳す必要が?というか引数に依るのでは?
0262デフォルトの名無しさん2006/05/22(月) 00:44:26
私も動詞が前だと思ってたんですが、
英語圏のサイトを見るとTextLoadというもの結構あって混乱したしだいです。

ToIntの方は説明するのに日本語だとどうしたらいいのか考えていたら
これまた混乱していまいまして・・・・

「文字列から整数に変換する命令」と言いいたいのですが
保存命令
表示命令
検索命令
と並んでいるなかでえらく目立つものですから
自分なりに短くしようとしたら
文字列(から整数)変換命令なのか、(文字列から)数値変換命令なのか

いや、これはよく考えるとスレと関係ないのでこの部分はスルーしてください
0263デフォルトの名無しさん2006/05/22(月) 00:57:51
英語圏とはいえ↓のような事実がまかり通っている
・文法どおりの英語が使えるヤツは少ない
・むしろ今のアメリカでは英語を使えるヤツの方が少ないらしい(テレビでやってた)
・だいたいの意味が通じればいいじゃん
・逆に書いた方がカッコヨクネ?(日本でいうところの倒置法?)
0264デフォルトの名無しさん2006/05/22(月) 01:00:19
なるほど、解しました。
そういうことだったのか〜!!
0265デフォルトの名無しさん2006/05/22(月) 01:03:09
>むしろ今のアメリカでは英語を使えるヤツの方が少ないらしい(テレビでやってた)

んなーこたーない
0266デフォルトの名無しさん2006/05/22(月) 01:06:57
>>263
自分で理由を付けて納得するのは勝手にすればいいが、ここで喚くな。
02672632006/05/22(月) 01:21:26
>>265
スマン
テレビからの聞きかじりだったから間違ってたようだ。
ただ社会問題になっているらしい
ttp://www.kokugai.com/zakki_word.html
ttp://www.kokugai.com/zakki_spanish.html
ttp://www.cafe-mexico.com/ensayo_pages/hispanic/hispanic001.html
ttp://ja.wikipedia.org/wiki/%E3%83%92%E3%82%B9%E3%83%91%E3%83%8B%E3%83%83%E3%82%AF
0268デフォルトの名無しさん2006/05/22(月) 01:21:55
まあアメリカは米語だからな、とか無粋なレスをしてみる。
0269デフォルトの名無しさん2006/05/22(月) 01:35:50
っていうか、アメリカで英語を正しく使える奴がどれだけいるか、は
変数名やメソッド名に文法的になるべく正しい英語を使うべきかどうか、
という問題と何の関係もない。

こういう散漫な思考をする「連想世界の自由人」はプログラマ、というか
エンジニアに向いてないと思う。
0270デフォルトの名無しさん2006/05/22(月) 01:39:33
そうだ。
なにより分かりやすくで他人が読んでも理解しやすいのが大事だ。

スレ違いなのでこの話題ここまで。
0271デフォルトの名無しさん2006/05/22(月) 01:43:06
いや、この話題で700までは引っぱる
0272デフォルトの名無しさん2006/05/22(月) 05:47:19
LoadText の検索結果 約 40,200 件中 1 - 100 件目 (0.28 秒)
TextLoad の検索結果 約 1,620 件中 1 - 100 件目 (0.43 秒)
0273デフォルトの名無しさん2006/05/22(月) 08:15:21
非OOPLで名詞先にしてグルーピングなんて普通にやるだろ。
FileOpen
FileRead
FileClose
とかさ
0274デフォルトの名無しさん2006/05/22(月) 08:26:22
いや、だから散漫に考えず問題を区別した方がいいよ。
「それ」をよく見かけるかどうか、というのと「それ」が適切かというのは別問題。

FileOpenみたいなのは確かによく見る(よく見た、になりつつあろう)が、
それが本当に適切かどうかは今となってはかなり疑問。
適切かどうかの基準は主に可読性に関してね。

グルーピングがそもそも必要かどうか疑問だけど、
別に関数名でそれを行う必要は必ずしもなかろう。
0275デフォルトの名無しさん2006/05/22(月) 09:48:03
>261
思うにオブジェクト指向では
しばしばオブジェクトが主語だから
メソッド名は動詞-目的語(名詞)が安定なんじゃないの?
(省略しなければメソッド内でもthisもあるしな。)
だからオブジェクト指向言語でなくトップレベルに関数がある言語では
元々英語の構造に合わないから英語圏の人間でも色々悩むんじゃない?
その結果が関数名の先頭が名詞だったり動詞だったりって揺れに
繋がっているのじゃまいか?
0276275 訂正2006/05/22(月) 10:02:11
「だからオブジェクト指向言語でなく」→「一方オブジェクト指向言語でなく」
0277デフォルトの名無しさん2006/05/22(月) 10:02:29
コメントやなんか見てても、トップレベルは暗黙のうちに「このプログラムは」とか「この関数は」が主語になってるだろ。
0278デフォルトの名無しさん2006/05/22(月) 10:23:58
prefixでのグルーピングはIDEと相性がいい。
リファレンスでも検索性が高まるし。
0279デフォルトの名無しさん2006/05/22(月) 11:21:06
良スレage
0280デフォルトの名無しさん2006/05/22(月) 12:02:56
>277
私が言いたいのは:
プログラミングで関数はしばしば「動作」(計算過程)を表す。
主語=名詞と思うとこの「動作」を無理やり名詞化しなければならなくて
収まりがよろしくないこともあるだろうって話。

そして英語は文法構造上、主語の省略が不可能だから、
英語ネイティブも(あるいは英語のネイティブだからこそ)
トップレベルに存在する関数の命名には
葛藤を感じることもあるんじゃないかと思うという話でもある。

一方数学では関数は写像を表し動作(計算課程)というより対応関係を表すから
名詞で表すのは割と適切であるかもしれない。
が、このような数学的な対応関係とプログラムの「動作」という
関数概念にまつわる二重性は結構抽象的で、慣れないと当然違和感もあろう。

以上のように関数って概念は自然言語の要素との対応関係が
必ずしも自然ではなく、自明でもないからブレが生まれるんじゃないかって話。
0281デフォルトの名無しさん2006/05/22(月) 13:39:59
難しすぎる・・・
日本語でおk
0282デフォルトの名無しさん2006/05/22(月) 15:18:24
通貨消えろスレ違い
0283デフォルトの名無しさん2006/05/22(月) 18:58:24
>>282
お前がな
0284デフォルトの名無しさん2006/05/22(月) 23:21:01
人に読んで欲しいなら要点だけを3行以内にまとめて書くべき。
0285デフォルトの名無しさん2006/05/23(火) 00:30:30
ボクちゃんでも読めるように三行にまとめて下さい、でしょw
悪いけど低能のボクちゃんに読んでいただくために書いているのではないんでな
0286デフォルトの名無しさん2006/05/23(火) 00:32:52
>>249
stopSignal
0287デフォルトの名無しさん2006/05/23(火) 01:34:43
WritePointThreeLine
0288デフォルトの名無しさん2006/05/23(火) 01:38:55
ぜんぶ日本語にすりゃいいじゃんw

kakuE,kesuE,toruA,ireruA

…激しく間抜けだorz
0289デフォルトの名無しさん2006/05/23(火) 04:31:37
>>288
間抜けなんて言うと、COBOLerがやってきますよ
0290デフォルトの名無しさん2006/05/23(火) 09:55:00
>>288
激しく間抜けというよりは、激しくびゅう太
0291デフォルトの名無しさん2006/05/23(火) 10:14:31
×び
○ぴ
0292デフォルトの名無しさん2006/05/26(金) 11:40:57
びゅぅぅぅぅ
0293デフォルトの名無しさん2006/05/26(金) 14:13:57
宿の受付システムでダブルブッキングかどうかを調べる関数なんですけど、
 BOOL func(a, b)

みたいな形式で考えてます。
aが既に受付されている日時でbがこれから問い合わせる日時です。

func,a,bそれぞれお願いします。

受付という言葉にとらわれなくても、一般的な比較関数みたいな命名でも
いいですが、どうも脳が固まってて思いつきません。
0294デフォルトの名無しさん2006/05/26(金) 14:49:14
BOOL IsConflict(Date acquired, Date requested)
0295デフォルトの名無しさん2006/05/26(金) 15:42:22
リクエストは分かるけどacquiredってピンと来ないなぁ。
0296デフォルトの名無しさん2006/05/26(金) 16:05:47
reservedとか?
0297デフォルトの名無しさん2006/05/26(金) 17:21:16
要はふたつを比較するだけでしょ?
だったら a, b とかでも全然いい気がする
0298デフォルトの名無しさん2006/05/26(金) 17:27:59
>>297 は無視するように
0299デフォルトの名無しさん2006/05/26(金) 18:16:52
booked とかは?
0300デフォルトの名無しさん2006/05/26(金) 18:58:36
matched = equal_range(lut.begin(), lut.end(), b, comparator());

・・・

equals_to(lhs, rhs);

∴
func = equals_to
a = lhs
b = rhs
0301デフォルトの名無しさん2006/05/26(金) 19:13:04
みなさんのがヒントになりました。
bookedとinquiryにします。
ありがとうございました。
0302デフォルトの名無しさん2006/05/26(金) 19:34:53
自分でダブルブッキングって言ってるんだから
その言葉使って素直に命名すりゃいいと思うんだけど。。
0303デフォルトの名無しさん2006/05/26(金) 19:42:50
うんじゃ CheckifOverlap(a, b)
0304デフォルトの名無しさん2006/05/26(金) 19:50:59
>>303 突っ込みどころ満載
0305デフォルトの名無しさん2006/05/26(金) 20:22:42
うんじゃ CheckDoubleBookingWithReturningTrueIfPeriodsAreOverlap(period0, period1)
0306デフォルトの名無しさん2006/05/26(金) 20:31:32
>>304
どこが? 俺は気に入ったのだが 自ら
0307デフォルトの名無しさん2006/05/26(金) 20:32:58
CheckIsならいいんじゃない?
03083062006/05/26(金) 20:33:08
>>305
達者だなぁw
0309デフォルトの名無しさん2006/05/26(金) 21:05:59
先頭の文字は大文字がいいの? 小文字がいいの?
0310デフォルトの名無しさん2006/05/26(金) 21:09:43
雰囲気による
0311デフォルトの名無しさん2006/05/26(金) 22:26:07
ダブルブッキングは和製英語な希ガス
0312デフォルトの名無しさん2006/05/26(金) 22:50:14
んなこたあない
http://www2.alc.co.jp/ejr/index.php?word_in=double+booking&word_in2=%82%A9%82%AB%82%AD%82%AF%82%B1&word_in3=PVawEWi72JXCKoa0Je
0313デフォルトの名無しさん2006/05/27(土) 07:45:18
isbattingなら和製英語だろう。

is_conflict より conflicts

inquiry じゃなくて enquire

check_if_overlap は overlaps
0314デフォルトの名無しさん2006/05/27(土) 12:58:33
inquiry(inquire) == enquire じゃまいか?
0315デフォルトの名無しさん2006/05/27(土) 17:03:52
前回実行時から○分経っているならば再び実行する、という処理のために
その○分経っているかどうかチェックする関数の名前をどうするか困っています。名案plz
0316デフォルトの名無しさん2006/05/27(土) 17:08:54
elapsed
0317デフォルトの名無しさん2006/05/28(日) 12:00:30
>>313
なるほどだが、一部ニュアンスが違うと思う。

それから
overlapsだとして、それがグローバルな関数だったら、
そのまま名前付ける気?(まじ質問
0318デフォルトの名無しさん2006/05/28(日) 12:16:47
>>315

winならSetTimerみたいな感じのAPIがあったきがす
0319デフォルトの名無しさん2006/05/28(日) 12:26:13
>>313
conflicts のような形を使うのは、対象がオブジェクトの時じゃまいか?
inquiry.conflicts(requested);
なら分かりやすいが、普通の関数でconflictsを使うのはどうかと思うが。
is_conflictやcheck_conflictの方が関数単体として分かりやすいかと。
0320デフォルトの名無しさん2006/05/28(日) 18:11:33
>>315
hasPassed(long tick)
0321デフォルトの名無しさん2006/05/28(日) 18:47:52
>>315
関数っていうか、クラスが使える言語なら(今時使えない方が珍しいだろうけど)
クラスにすべきだろうね。

前回実行実行からの経過時間、というとき、(1) 「前回」の実行の時刻を記憶しておく必要があり、
(2) 前回「実行」したのは何者なのか、明確にする必要があるだろうから。

>>320
なにそれ意味わかんないよ。
その'tick'って引数はいったい何なのさw
0322デフォルトの名無しさん2006/05/29(月) 00:30:56
設計について語る必要は無い。
あと、しらないなら調べろ。
0323デフォルトの名無しさん2006/05/29(月) 00:46:43
調べろ、だってさw
頭の悪い奴てのはどうしてそんなに虚勢が張りたいのかね。
というか、いったい何を調べろとw意味ワカンネ

しかし、時々出てくる、この設計とまったく独立して命名を語ることに
意味があると思ってる馬鹿は本当にコード書いたことあるのかねw
0324デフォルトの名無しさん2006/05/29(月) 00:54:25
意味ワカンナイが口癖の君。
意味ワカンナイで止まっていると脳が腐るぞ。
0325デフォルトの名無しさん2006/05/29(月) 03:25:15
C++じゃなくて、Cでも使えるもので、
typedef struct {
} A;

A a[ap_num];
A *ap_head = a;
A *ap_p = ap_head;

それぞれA,a,a_num,ap_head,ap_pに付けるよい名前はないでしょうか。
ap_pはリストの操作用ポインタってことで
0326デフォルトの名無しさん2006/05/29(月) 04:02:15
Aの内容、用途が分からんことにはどうしようもない
0327デフォルトの名無しさん2006/05/29(月) 08:09:24
ジャアント馬場も ap_p
0328デフォルトの名無しさん2006/05/29(月) 11:39:02
C++ならSTLに合わせたら?
0329デフォルトの名無しさん2006/05/29(月) 12:41:45
VCLとSTL同時に使うと嫌だよね、みんな・・・
0330デフォルトの名無しさん2006/05/29(月) 18:53:11
俺は用途がないものにも名前をつけれるぞw

>>325

a = item
ap_head = ってこれナンに使うんだ? 却下
ap_p = pHotItem
0331デフォルトの名無しさん2006/05/29(月) 18:55:07
好きな女の名前でも付けとけ
■ このスレッドは過去ログ倉庫に格納されています