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

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2008/03/20(木) 00:25:40
(つ∀-)酔ってるからよくわかんやいや
953デフォルトの名無しさん:2008/03/20(木) 03:03:00
NumericId
DigitalId
954デフォルトの名無しさん:2008/03/20(木) 21:28:52
open() の wrapper で、指定のファイル名が既に存在していたら、
ファイル名に [0], [1], ... と付けて open したファイルハンドルを返す関数、
どうしましょう?
955デフォルトの名無しさん:2008/03/20(木) 22:11:43
-->954
openEx
956デフォルトの名無しさん:2008/03/20(木) 22:13:13
>>954
その抽象化(機能のくくりだし方)は分かりにくい。だから名前がつけられないんだよ。
まずファイル名だけを求める関数を考えるべき。
ひょっとするとマルチスレッド環境のこととか考えてのことかもしれんが、
そういうのは関数の直感性を犠牲にしてやるべきものじゃなくて別の方法を考えるべき。

でGetFreeFileNameBySuffixNumberとか
957デフォルトの名無しさん:2008/03/20(木) 22:36:04
>>956言ってることは正しいがGetFreeは無いお。
openWithUniqueSuffix
958デフォルトの名無しさん:2008/03/20(木) 22:57:25
>>957
確かにすまん。。
959デフォルトの名無しさん:2008/03/20(木) 22:58:17
OpenFileOrAlternativeFile
960デフォルトの名無しさん:2008/03/21(金) 00:13:06
なんか関数名にOrが入ってるとはっきりしろよって感じだけど
実装を表したいんならそんなんでいいのかもしれん。
けど、したい事は常にユニークなファイルを開くopenな訳で
いっそopenUniqueとかでいいのかもしれん。
はっきりしろよって感じだけど。
961デフォルトの名無しさん:2008/03/21(金) 00:17:41
つーか失敗しない限り必ずファイル作るんだからCreateUniqueFileで。
962デフォルトの名無しさん:2008/03/21(金) 00:17:45
既存ファイルもCreateFile関数で開かせるWinAPIを見習って、
CreateUniqueFileで良いんじゃないだろうか。
963962:2008/03/21(金) 00:18:32
>>961
髪が肩まで伸びたら結婚しようか?
964961:2008/03/21(金) 00:19:19
>>962
…うん。
965デフォルトの名無しさん:2008/03/21(金) 00:28:49
決定だろw
966デフォルトの名無しさん:2008/03/21(金) 00:47:56
C++で、色んな型の値を複数保存できるListというクラスを作りました。
JavaのArrayList<classname>みたいな感じです。

1.これの発展系で、解放されたとき、
保持している全てのポインタを同時に解放するListクラスと、

2.各要素に対応した文字列を持たせて、
その文字列をキーにして、要素を取得できるクラスを作りたいのですが、
名前を何にするか悩んでいます。

ちょっと考えたのはこんな感じ。
1.PointerList, SolidList, DeletableList
2.MappedList, IndexedList
967デフォルトの名無しさん:2008/03/21(金) 00:52:21
>>966
1. smartlist
2. map
968デフォルトの名無しさん:2008/03/21(金) 00:52:40
前者は要素の型がポインタである場合に対してデストラクタを特殊化、
後者は要素をstd::pairにして[]演算子をオーバーロードすれば良いと思うよ!
969デフォルトの名無しさん:2008/03/21(金) 00:56:37
1.だけ。SmartPtrList。

>>968
作り方は聞いてない。再発明だとは思うが。
970デフォルトの名無しさん:2008/03/21(金) 00:57:50
ポインタである場合でも、
List解放時に解放してしまうと不味いこともあるので、
使い分けたいのです。

標準ライブラリstdというのを全く知らないのですが、
話を聞くと、似たようなクラスが既にあるっぽい。
でも、もう作っちゃったから、どうせならstd無い環境でも使えるように、
自分で一から作ろうと思った次第です。
971デフォルトの名無しさん:2008/03/21(金) 00:58:17
>>969
別のクラスを作る必要ないよって言いたかったんだよ。
どっちの場合も要素の方に機能をもたせればそのままListに放り込むだけなんだから
972デフォルトの名無しさん:2008/03/21(金) 01:02:05
>>971
前者はそうかもしれないけど、後者は無理だろ。
operator[]はList側に付けないと。
973デフォルトの名無しさん:2008/03/21(金) 01:05:18
operator[]を引数側でオーバーロードできたら面白いな。
効率悪そうだが…

スレチ
974デフォルトの名無しさん:2008/03/21(金) 01:29:56
>>961-964
こんなスレで 4秒差か。 末永くお幸せに!
975デフォルトの名無しさん:2008/03/21(金) 02:15:12
ああ、そういやこういう関数で作ったことあるな。
GetInexistentFileNumber()
976デフォルトの名無しさん:2008/03/21(金) 04:03:37
>>961-964
なんというワロタw
977デフォルトの名無しさん:2008/03/21(金) 15:19:56
なんか
・無駄に冗長で説明的な名前
・ネイティブな人の書くソースコードではまず見かけないような単語を含む名前
・英語の文法にばかり気を使って可読性を考えてない名前
ばっかり出てくるね、このスレ
978デフォルトの名無しさん:2008/03/21(金) 15:28:06
そもそもプログラムの識別子にネイティブも何も関係ないのでは。
俺は法則性をつけて区別しやすければいいと思っているのだが
979デフォルトの名無しさん:2008/03/21(金) 15:28:38
設計を直せば名前もまともになるのに、そこ指摘しないスレのルールがあるので
仕方なく、というのはあるな。
980デフォルトの名無しさん:2008/03/21(金) 15:37:37
>>979同感。
名前付けが変になるときは、大抵設計が間違ってるのが原因なんだけどな。
981デフォルトの名無しさん:2008/03/21(金) 16:28:35
設計がちゃんとできないレベルのプログラマなんてたくさんいるんだし、いちいち設計を指摘してたらきりがないと思うぜ。
それに設計の話をするならUMLでも書いてもらわないと、まともな議論ができないと思うが。
982デフォルトの名無しさん:2008/03/21(金) 17:20:20
俺がスノッブなだけかもしれんがやっぱりengrishは避けたい。
**_checkとか、したいことは分かるんだが
983デフォルトの名無しさん:2008/03/21(金) 17:31:24
だからopenExってオレがいったのに。おまえら無駄に>>977のように
変な名前つけるから。
984デフォルトの名無しさん:2008/03/21(金) 17:33:37
>>982
英語と考えないほうがいい
985966:2008/03/21(金) 17:44:24
>>967
レス遅れましたが1.はSmartListにしました。
スマートで分かりやすい素敵な名前だと思います。
ありがとうございます。
子供が生まれたら名前は素魔斗栗鼠人にしようと思いました。
986デフォルトの名無しさん:2008/03/21(金) 17:49:57
>>983
CreateUniqueFileはいい名前と思う。設計は置いといて
>>984
配布用のクラスライブラリの場合はどこに出しても恥ずかしくない名前を吟味するが
アプリケーションの場合はちょっと崩れてたほうが分かりやすいこともある
まあnamespaceをつければいいんだけど。
987デフォルトの名無しさん:2008/03/21(金) 19:37:02
>>977
それはむしろ君自身の「ダメプログラマ」ぶりを語ってるんだと思うよマジで。
うん分かるよ、君は「とにかく短いのが可読的だ」と思ってるんでしょ。
実際いるいるそういう奴。

酷い勘違いだと思うけどね俺は。
988デフォルトの名無しさん:2008/03/21(金) 19:39:24
たとえばopenExってw

ネタで言ってるのか真面目にいってるのか判断に苦しむが、
>>954のような要求にたいしてそんなの絶対にあり得ない。
989デフォルトの名無しさん:2008/03/21(金) 19:56:40
>>977
具体的にどのレス?
990デフォルトの名無しさん:2008/03/21(金) 20:03:02
>>988
openEx自体は悪い名前じゃないよね。簡潔だし。
唯その場合はExに意味がある事が条件。
Open a file using Extended/Extra何々って感じで
991デフォルトの名無しさん:2008/03/21(金) 20:07:49
もう一個作りたくなった時に困らない?
パラメータがいろいろ設定できていろんな動作をさせられて
それ以上関数のバリエーションを増やす必要がないんだったらopenExでいいんじゃないの
992デフォルトの名無しさん:2008/03/21(金) 20:10:14
少なくともWindows環境ではOpenExは失格だろ。
通常Openの挙動を更に広範かつ詳細に指定する為にOpenExが用意される。
挙動を特殊化する為というのはありえない。
オプションのひとつとしてUNIQUEを指定できるならありはありだが。
まあ単に設計ミスで挙動を変える為だけに用意されることもあるけどな。
993デフォルトの名無しさん:2008/03/21(金) 20:36:36
OpenEx2でおk
994デフォルトの名無しさん:2008/03/21(金) 20:38:09
じゃあExいらなくね?
open1, open2, open3, ...
995デフォルトの名無しさん:2008/03/21(金) 21:38:49
>>990
絶対ダメとは言わんが。。
少なくとも積極的に使いたい命名法というより、修正したくても事情があって
修正できない場合とか、多重定義が使えない環境で仕方なく使うものじゃないの?

っていうか
>Open a file using Extended/Extra何々って感じで
そういう場合はその'Extended'の中身を名前に盛り込んでくれよw
そんなのその中身の表現を考える手間を手抜きしてるだけだろ
996デフォルトの名無しさん:2008/03/21(金) 22:18:31
>>987
こうやってすぐ極論に飛ぶのが駄目なプログラマ
997デフォルトの名無しさん:2008/03/21(金) 22:34:14
駄目なプログラマかどうかまでは分からんが
> 命名規則や設計の善し悪しについて議論するのは基本的に禁止。
誰か次スレよろ
998デフォルトの名無しさん:2008/03/21(金) 22:38:51
ダメかどうかは別にしてExを認めたらこのスレの存在意義が問われるw
999デフォルトの名無しさん:2008/03/21(金) 23:16:55
Dxでおk
1000デフォルトの名無しさん:2008/03/21(金) 23:24:23
可能な限り英文法的に正しいネーミングにしたいし
一般的な日本人には見慣れない英単語で構成されても読めないことがあるし、
名付け方にしても他と統一できていたほうがいいわけで

そこをどう妥協するかが、このスレの意義じゃないのかな
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。