1 名前:デフォルトの名無しさん [2008/09/29(月) 13:13:43 ] クラス名、変数名のつけ方に悩んだら書き込むスレです。 質問する人は、その変数に何を格納するのか(クラスだったらその役割) プログラミング言語は何なのかを、それぞれ書いて、 いい変数名を思いついた人は、それに答えてあげましょう。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 >>2 英和・和英・英英など各国語辞書と翻訳サイト。 >>3 類義語(シソーラス)辞書、図形・数式・数学用語の英単語。 >>4 関連スレと、いろいろな言語規約。 >>2-10 諸事情によりリンクがずれた場合。 前スレ。 ◆ネーミング倶楽部◆: pc3.2ch.net/tech/kako/1035/10353/1035362308.html Part1: pc5.2ch.net/tech/kako/1046/10465/1046541730.html Part2: pc5.2ch.net/tech/kako/1058/10582/1058213523.html Part3: pc5.2ch.net/test/read.cgi/tech/1067171530/ Part4: pc5.2ch.net/test/read.cgi/tech/1087209526/ Part5: pc8.2ch.net/test/read.cgi/tech/1109330204/ Part6: pc8.2ch.net/test/read.cgi/tech/1128266018/ Part7: pc8.2ch.net/test/read.cgi/tech/1144978008/ Part8: pc10.2ch.net/test/read.cgi/tech/1154448184/ Part9: pc11.2ch.net/test/read.cgi/tech/1168356029/ Part10: pc11.2ch.net/test/read.cgi/tech/1180146315/ Part11: pc11.2ch.net/test/read.cgi/tech/1191250784/ Part12: pc11.2ch.net/test/read.cgi/tech/1206118762/
162 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 22:50:33 ] nameSuffixくらいでいいのかもしれんな。
163 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:33:23 ] >>161 Mr. Mrs. Ms.だってただの形式だから似たようなものだと思うけど。
164 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:40:11 ] >>163 そういうのは honorific じゃなくて title って言わない? 肩書き?
165 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:41:05 ] それか、prefix とも言うか<mr
166 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:23:30 ] >>164 titleはprofessorとかCEOとかchief engineerといった肩書きのことじゃないの?
167 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:34:03 ] 名前と一緒に使わなきゃならんのがhonorificで、名前なしでも使えるのがtitle。 もっともhonorificをtitleに含む場合もある。
168 名前:167 mailto:sage [2008/10/07(火) 00:35:30 ] あ、嘘書いた。 いまの聞かなかったことにして。
169 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:36:33 ] 不自然でさえないのなら、いちばん簡単な奴使えばいい気がしてきた。 日本人的には name suffix でいいんじゃないかと。
170 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:42:34 ] >>166 CEOはただのpositionだからhonorificではないけども、 Professorはイギリスでは先生の名前につけたりもするから、 そういう場合ではhonorificの一つだろう。
171 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:52:52 ] His Royal Highness The Prince Charles Philip Arthur George, Prince of Wales and Earl of Chester, Duke of Cornwall, Duke of Rothesay, Earl of Carrick, Baron of Renfrew, Lord of the Isles, Prince and Great Steward of Scotland, Knight Companion of the Most Noble Order of the Garter, Knight of the Most Ancient and Most Noble Order of the Thistle, Great Master and First and Principal Knight Grand Cross of the Most Honourable Order of the Bath, Member of the Order of Merit, Knight of the Order of Australia, Companion of the Queen's Service Order, Honorary Member of the Saskatchewan Order of Merit, Chief Grand Commander of the Order of Logohu, Member of Her Majesty's Most Honourable Privy Council, Aide-de-Camp to Her Majesty
172 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:24:30 ] もうmisterでいいじゃん
173 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:03:42 ] IBase ↑ ↑ ↑ Some Other 何もしないクラス というように、IBaseの具象クラスのうちいずれかのクラスのインスタンスを必ず保持しておきたい場合、 何もしないクラスの名前はVoidClassかNullClassのどちらがいいですか。 こっちの方がいいよ、って言うのがあったらそれも教えてください。
174 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:08:51 ] そんなものが必要になる状況が理解できない……。 でもまあ普通はDummyっていうんじゃないかなそういうの。 あるいはPlaceHolderとか?
175 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:14:22 ] あとはIdleとかInactiveかなあ。
176 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:03:33 ] 俺はNullかEmptyかでいつも迷う。
177 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 07:26:51 ] nullはポインタ、参照絡みでしか使いたくないな
178 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 07:31:33 ] Dummyでいいよ
179 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 08:20:26 ] おまいらNullObjectパターンの話でもしてるの?
180 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 08:22:43 ] 何もしないってこと自体に意味があるなら null か empty テスト用とかでとりあえず何もしないものを挟みたいときがあるなら dummy ってイメージがあるんだけど。
181 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 08:25:53 ] デザインパターンで null object pattern って言うから Null でいいんじゃないだろうか。
182 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 15:15:55 ] Comポートの開閉を管理したり文字列の送受信をするクラス どう名付けたらいいかな?単純そうでピンと来るのがない
183 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 16:59:51 ] そのまま ComPort でいいやん。
184 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 17:32:26 ] >>180 テスト用の何もしないやつってスタブって言わない?
185 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 18:44:12 ] 基本的には全てのキーが禁止の状態から、 許可するキーを追加する関数を作りたいんだけど どういう名前にするか迷っています。 addFilterの逆なんだけどどういう名前が一般的なんでしょうか? removeFilterやdeleteFilterはなんか違うような気がするのですが。 お願いします。
186 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 18:47:27 ] スタブ使うんならスタブ側なんかドライバ側なんかだけ注意しないと
187 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 18:50:54 ] >>185 allowKey enableKey
188 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 18:55:22 ] >187 なるほど。 ありがとうございます。
189 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 19:04:41 ] 取りあえず、よくある単語を列挙 blacklist方式 -> deny, block, reject, refuse whitelist方式 -> allow, pass, accept
190 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:28:06 ] template<class T> T なんとか(void) { return dynamic_cast<T>(m_owner); } Fruit *f = seed->なんとか<Apple*>(); こんな感じの関数はどんな名前がいいですか?
191 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:31:11 ] GetOwner
192 名前:デフォルトの名無しさん [2008/10/08(水) 23:36:41 ] C++でも識別子はunicodeで書ける出来るようになったんですか?
193 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:42:15 ] template<class T> T なんとか() { return dynamic_cast<T*>( m_owner ); } にして、 Fruit *f = seed->getOwnerAs<Apple>();
194 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:47:37 ] なんでフルーツのポインタに入れるのにわざわざリンゴのポインタで取得するの?
195 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 00:39:33 ] >>182 ComPorterで
196 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 14:06:20 ] クラス名って 〜するもの、みたいな目的名が良いのか 部品名の方がいいのか どっちなんだろ?
197 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 15:06:10 ] クラスがあらわしているものを名前にする。
198 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 15:14:04 ] 表してる物ねぇ・・・ 例えば上にあるcomポートのクラスだと ComPortの機能を実現すると考えるならクラス名はComPortだろうけど ComPortを機能を管理する為のクラスだと考えるとComPortControlerみたいなのかな? と毎回悩むわけです
199 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 15:20:41 ] >>198 「管理する」とは具体的に何をすることなのか考えたほうがいいよ。
200 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 15:22:28 ] ファイルの機能を管理するクラスってFileクラスかFileContorolerか、どちら?て聞かれれば俺は迷わずFileをえらぶ。 Controlerってつけると、ComPortオブジェクト渡して管理してもらうイメージがする。 FileWriterっていうクラスがあったら、Fileオブジェクトを渡して書き込んでもらう感じしない?
201 名前:デフォルトの名無しさん [2008/10/09(木) 15:23:07 ] >>198 どうしてシリアルポートを回すんですか?
202 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 15:44:19 ] 機能を管理するってどういうことだろう・・・ ファサードパターンみたいなもの? >>201 回すってどこから出てきた?
203 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 15:54:45 ] 如何に自分が漫然と作業してたかが解るorz >>199 具体的に、ですか ポートを開く ポートへの書き込み ポートの読み込み ポートを閉じる やはりポートの機能そのものを表すのかなぁ? >>200 確かにそうかも・・・
204 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 16:02:51 ] >>203 そりゃポートそのものだろ。少なくとも使用者から見れば。 だいたい「〜そのもの」と「〜を管理するもの」との違いは、 使う人から見たら気にならないものだったりすることが多いんじゃね。 「インターフェース」とその「実装」との違いぐらいにどうでもいいでしょ。 実装を書いた本人にとって「〜そのもの」とは思えなかったとしても。
205 名前:デフォルトの名無しさん [2008/10/09(木) 16:24:56 ] >>203 あなたが噂の低脳さんですか?
206 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 16:32:08 ] >>204 ありがとうございます いままで趣味程度、自己流でやってきててその点が疑問だったので 今日すっきりしました >>205 低脳でさーせんorz
207 名前:デフォルトの名無しさん [2008/10/09(木) 16:47:32 ] 低脳が何かを悟った!
208 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 19:47:28 ] >>206 俺は君のように悩む方がむしろ全然まともだと思う。 OOPの本質は状態機械を何かに見立ててたり、何かのメタファーとして捉える ことだと思うけど、何に見立てるかは実はそんなに簡単じゃない場合がある。 例えば>>182 はドトネトのSerialPortとかVBのMSCOMMみたいなクラスのことを 言っていると思う。 これらのクラスにはCOMポートの番号を指定するプロパティがあるわけだが、 これにならって>>182 のクラスにも同様のプロパティを持たせたとする。(当然そうするだろう) ところが、COMポートの番号というのは普通に考えれば複数のCOMポートを集約している オブジェクト(PC? M/B? OS?)の属性でなければ本来意味的におかしい。
209 名前:デフォルトの名無しさん [2008/10/09(木) 20:30:09 ] 頭はおいしいねってところまでは読んだw
210 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 23:15:41 ] 何語かわからない言語で書いたとすると、自分ならこんな雰囲気にするかもしれない。 class SerialPort { static SerialPort Open(whichPort); Result Real(〜); Result Write(〜); Result Close(); }
211 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:17:53 ] PortCommunicator にしとこうか
212 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:45:06 ] そろそろポートじゃなくて、 ただのファイルIOと同じだということに気付いてもいいころだ
213 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:59:32 ] それを言い出したら全部のI/Oが同じになってしまって、 デバイス固有の操作が扱いにくくならね?(ioctlみたいに)
214 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:15:14 ] それを言い出したらも何も>>212 は全然正しい認識じゃないから。 何だよファイルIOって。 まあディスク上のファイルだろうとデバイスだろうとデータの入出力は 同じストリームとして扱えるみたいな話を聞きかじって理解もせずに拡大解釈でも してるんだろうけど。
215 名前:デフォルトの名無しさん [2008/10/10(金) 01:25:52 ] 何を拡大解釈してるって?
216 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:27:55 ] 過小評価してるんだろうな。
217 名前:デフォルトの名無しさん [2008/10/10(金) 01:36:47 ] >>214 はスーパーPHP使いなんじゃね?
218 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 02:35:25 ] fncGetFileNamae
219 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 02:36:50 ] public class PublicClass1
220 名前:デフォルトの名無しさん [2008/10/10(金) 02:40:52 ] >>214 いくらなんでもソーセージをかじっちゃダメでしょw
221 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 02:52:55 ] >>214 はひどい
222 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 03:52:11 ] >>215-221 自演乙
223 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 04:01:55 ] >>222 恥かしい奴だな >>214 がどんだけかわかんねーの? あ、俺は優しいから一応言っておくわ >>222 本人乙
224 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 04:55:04 ] >>215-223 自演乙
225 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 07:45:56 ] >>214 はそろそろ、COMとファイルのioctl以外のAPIの違いを説明すべきだ
226 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 08:27:11 ] >>225 どっちもストリームとして扱えるというだけでしょ? COMには、tellもseekもtruncateもfilelengthもownerもpermissionもない。
227 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 11:04:07 ] >>215-226 自演乙
228 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 11:28:10 ] >>226 >>255 は間違ってる COMとファイルIOの違いについて説明すべき で、どちらもストリームとして扱える 以上
229 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 12:51:09 ] >>255 頑張れ
230 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 17:18:01 ] 英語の形容詞をそのまま変数名にするのはアリですか? 一番新しい要素をrecentと名づけるのをどう思います?
231 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 17:22:44 ] 公開しないなら別にそれでおk
232 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 18:19:13 ] first、last、next、prev 等もよく使うし、問題ないかと
233 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 22:13:32 ] サンクス
234 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 19:39:55 ] 形容詞の後ろについてる one とか thing が省略されてると思えば、 形容詞単体を名詞的に使うのもありだと思うけど。 the + 形容詞だけで名詞扱いで使うこともあるし。
235 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 19:47:34 ] メソッド名は動詞、変数/クラス名は名詞でって良く言うけど そんなに厳格に分けなきゃならんもんかねえ。
236 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 20:22:21 ] >>235 なんか教条主義的な思考をする人みたいだね。 別に、誰か偉い人が言ったから/規約でそう決まっているから、「分けなきゃならん」 わけじゃない。 そうしないと(一般に)分かりにくくなる、という合理主義でしょ。 逆に言えば仮に規則を破ることでクラスや変数の役割がむしろ分かりやすくなるのなら 何も問題はないはず。
237 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 20:50:18 ] >>236 レス感謝。 つまり主観(=分かりやすさ)が入るから決め事としてしまった方がいい、と。
238 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 18:59:22 ] arr = [1,2,3] item = arr.remove(1) とやると arr = [1, 3], item = 2 になるような「取り出す」メソッドって何がいいですかね。 extractがよさげなんだけどコンピュータだと元を残しつつ取得みたいな使われ方が多いような気がして。 deleteのついでに戻り値で返すおまけ機能にしちゃうのがいいのかな。
239 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 19:21:50 ] remove
240 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 19:47:17 ] removeAndGet
241 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 19:52:19 ] takeとかpickとか
242 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 20:27:31 ] Pythonではpopになってる
243 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 20:43:27 ] remove
244 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:03:39 ] fetch
245 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:20:30 ] getとremoveでいいんじゃね。 そもそも1つのメソッドに複数の機能を持たせようとする時点で(ry
246 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:06:11 ] >>238 そういう「行数を節約するだけのメリットと引き換えに」、「処理の直感性を犠牲にする」 処理が本当に適切かどうか再考すべきだと思う。 直感的に把握できないような処理だから命名に困るんだよ。
247 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:06:28 ] それってスタックを実装したいってだけなのでは? popだろ
248 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:08:51 ] さらに一般化して splice
249 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:27:55 ] rubyならslice!かな。 しかし、別に「複数の機能」でも「行数の節約」でもないだろ。 列から一つ取り出したいってのは、実世界でもあって不思議じゃない。 だからこそ、各言語で同じような基本処理が定義されているわけで。
250 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:31:46 ] popAtだな。
251 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:35:11 ] >>249 そう言われるとそんな気もしてきちゃうすまんw では気を取り直して PullOut Steal
252 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:36:29 ] インデックスで指定だからAtを付けた方がよかったか。
253 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 23:37:22 ] Atとか付けるとSmalltalkやObjective-Cを思い浮かべてしまう
254 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 00:35:51 ] GoTo() は禁止ですか?
255 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 13:16:03 ] スペースで桁をそろえる件だけど、コードコンプリートの1版と2版を見比べるとおもしろいのにね。
256 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 13:24:10 ] >255 流石に同じモノ2冊は敷居が高いなあ
257 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 21:30:55 ] >>255 どうおもしろいのか教えてください
258 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 12:46:01 ] >>255 1版は持ってる. そろえないほうがいいって書いてあった. 2版はどう変わってるの?
259 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 18:52:30 ] >>258 2版は持ってる. そろえないほうがいいって書いてあった.
260 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 19:11:19 ] わー、おもしろい
261 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 16:36:04 ] 255の笑いのツボはどうなっているんだ。
262 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 13:14:32 ] class Hoge { public: Fuga* XXXFuga(Fuga* pFuga) { Fuga* temp = pFuga_; pFuga_ = pFuga; return temp; } private: pFuga_; }; XXXFugaですが、XXXの部分はどんな動詞がいいですか?