クラス名・変数名に迷ったら書き込むスレ。Part22
木構造で葉に子要素を加えるときにその要素がルート出なかった場合に例外を投げたい void Node::addChild(Node * p) { assert(p); if(p->hasParent()) { throw XException("XMessage"); } else { container.insert(p); p->parent = this; } } このときXExceptionの名前とXMessageの内容は?
例外 Node::NotRootException メッセージ Node must be root.
そこまで例外を細分化させる事に意味があるのだろうか 普通にArgumentExceptionでいいんじゃね
>>2 InvalidNodeOperationException
AddNodeFailedException
NotRootNodeAddedException
--------
追加しようとしたNodeはルートノードではありません。
8/27ぶりに立ちました
動作確認で試したいだけなんだけど、TestFileかFileTestのどっちがいいかな
前者はファイルで 後者はテストやないか
末尾に_tつけるとかいうのもあるな。
webアプリで使うテンプレートファイル名なんですけど 2カラム(左サイドバー)テンプレート、 サイドバーなし1カラムテンプレートとかどういうファイル名にしたら良いでしょうか template_2c_left.tpl これはちょっとなぁ
2カラム(左サイドバー).tpl サイドバーなし1カラム.tpl
sidebar_left.tpl sidebar_no.tpl
どうもです・・・・
名前にこだわるうちは二流だよね
いい名前または、無難な名前を瞬間的に付けられるようになったら 一流と思う
名前がよくても結局のところ仕様を見ないやつはカスだから
>>16 なんかあったのなら、ここでぶちまけていいんだぞ。聞いてやる
>>14 リーダブルコードを読んだ後でも同じ台詞が吐けるなら、
同僚じゃなくて本当に良かったと思う
仕様がわからないのにいい名前ってどんな名前だよ
>>19 お前用のクラス用意しといてやる
CSpec072implementee
おれも正直分からん、誰か
>>20 を解説してくれ。
話の流れから言って、なんかのギャグを言って
>>19 を馬鹿にしているなぁ
ということは分かるが、内容が全く分からん。
CSpec BDDフレームワーク 072 しこしこ implementee 実装されるもの
25 :
デフォルトの名無しさん :2012/09/16(日) 15:02:37.29
Pythonで送信者メールを格納するプロパティ fromとtoにしたいけど、fromは予約語 さて どうしたものか
fromAddr toAddr fromAddress toAddress from_ to_
28 :
デフォルトの名無しさん :2012/09/16(日) 23:27:44.36
Sender …はRFC的に意味があるから駄目か。
>>27 それするぐらいなら、from_ の方が意味がないだけマシじゃね?
まあ普通に fromAddress に一票。
既出の案とかぶらせないためにおかしな案持ち出すくらいなら賛成すればいいのにね
既出の案とかぶらせないためにおかしな案持ち出した人
迷う必要がないとこでしょ
迷ったからここに来てるんだろ
外積で、z が 0 の場合、 つまり 2D での cross product ってことで crossProduct2d って関数を作ってたんですが、 2次元の外積なんてない、と算数のエラい人に言われました。 よく使われる式じゃないかと思うんですが、何ぶん算数が苦手で名前も思い浮かびません。 いい名前をお願いします。
2次元空間で、としてなら多分そうなんだろう。 で、ここで真に重要なのは、2D云々じゃなく、 zが0のときにのみ使える「簡易版の外積」ってことなんじゃないだろうか。
>> 36 crossProductWithoutZ こうですか?わかりません><
>>35 そもそもz = 0の時専用の関数を用意しなきゃならん意味が全然分かりません
>>35 そもそも、その crossProduct2d 関数は、
何を引数にとって、何を返す、何のための関数なんだ?
まずはそこからしっかり説明してくれ。
>>38 >
>>1 > > 命名規則や設計の善し悪しについて議論するのは基本的に禁止。
>> 38 その理由はクラスが Vector2d だからです。 Vector3d なら問題ないんです。 実際 AS3 だと交差判定やらなにやらで 2 次元座標を Vector3d の z = 0 で使ってたりします。 お前も真似して 3d クラス使えよってんなら話は終わりですが、気持ちが悪いなぁと。 >> 39 外積ってやつです。 引数は外積をとりたいもう一つのベクトルをとります。 2次元でも線の交差判定とかでちょいちょい出てきます。 戻り値は 3D ならベクトルなんですが、 2D の場合は z が 0 のため x, y が 0 になってしまうので事実上 z 座標の値を返す感じです。
>>35 算数とプログラミングを混同するな馬鹿って言っておけ
普通に2Dベクトル計算でも外積は定義するし関数名はCrossProdとかありきたりな名前を付ける
それでIT技術者には通じるしもし不安に思ったらドキュメントで仕様を確認するからそこに書いておけばいい
43 :
39 :2012/09/22(土) 13:36:08.45
>>41 いや、表面上は外積を計算したがっているのは分かってる。
最初の質問にも書かれているから。
その外積の計算で、戻り値にどのゆうな意味を付与しているのかを知りたかった。
もし明確な意味があるのなら、その意味を端的に表す単語を名前に使えるから。
それが「何のための関数」を訊いた訳。
逆質問の仕方が悪かったのは謝る。
もし特定の意味はなく、汎用ライブラリ的な抽象度の高い計算関数であるなら、
たとえば determinant(行列式)はどうだ。
実際に計算していてるそれは外積ではなく2次正方行列の行列式だ。
>>41 結論から言うとcrossProduct2dでも、あるいは非OOPみたいだからVCT2D_OuterProduct
みたいな名前でよいのでは?
俺ももうそんな数学はさっぱり忘れたのでググって見たけど、2Dの外積は
xy平面(Z = 0)上の2つのベクトルの外積と考えることが多く、演算結果も
実用上ベクトルではなくスカラーとして扱う場合が多いらしい。
45 :
デフォルトの名無しさん :2012/09/23(日) 13:35:33.06
isUnique の対義語は何になりますか。
>>45 isCommon
isComparable
isGeneral
isUsual
などはどうだろうか。
それぞれ固有のニュアンスがあるから詳しくは英英辞典などで調べてくれ。
ちなみに、
>>45 の書き方からして恐らく真偽値を扱う変数や関数だろうから、
紛らわしいので真偽値変数などに否定形の名前は避けるべき
という理由で安易な isUnunique はお勧めしない。
>>46 それは逆だと思うよw
明示的な名前にしたいのなら素直にisUnuniqueとかisNotUniqueにすべき。
なぜなら、例えば"common"であることはuniqueであることと必ずしも矛盾しないからだ。
>>47 > なぜなら、例えば"common"であることはuniqueであることと必ずしも矛盾しないからだ。
だから、「固有のニュアンスがあるから詳しくは英英辞典などで調べてくれ」って書いてるんじゃね?
何が「だから」か意味が分かりません。
>>47 > なぜなら、例えば"common"であることはuniqueであることと必ずしも矛盾しないからだ。
それは、Unique が Common の対義語になってないということだろ。
Unique も複数のニュアンスがあるから、対義語になってる語を選べと言ってるだけ。
>>46 に有るかどうかは知らんけど。
>
>>46 に有るかどうかは知らんけど。
あるかどうか知らんってどういうことだよ。
あるから反論してるんじゃないのか。
52 :
46 :2012/09/23(日) 14:32:36.50
>>47 設計の善し悪しに関わることだからここで言ってはいけないのかも知れないが、
if (肯定形 == true) { }
if (肯定形 == false) { }
if (否定形 == true) { }
if (否定形 == false) { }
if (肯定形 != true) { }
if (肯定形 != false) { }
if (否定形 != true) { }
if (否定形 != false) { }
これらがソース中に混在していると、
後からソースを見たときに処理が追いにくくなったり、
うっかりミスによるバグが発生する可能性が高くなる。
(実際、自分や他人のコードのこの手のうっかりミスを数多く直してきた)
だから、2つくらいに絞ってそれ以外は使わないようにする方がいいのだが、
わたしはその中で [肯定形 == true] と [肯定形 == false] の組みを勧めているだけ。
**は真だ、**は偽だと言った方が命題がはっきりしてわかりやすいと思うから。
もちろん、別の理由で [肯定形 == true] と [否定形 == true] の組みの方が
もっとわかりやすいとして勧める人も大勢いるだろう。
>>52 VBerじゃないんだから
if (isNotUnique){}
これで十分。
何でboolの値と比較しなきゃならんのよ
>>51 >あるかどうか知らんってどういうことだよ。
>>45 が Unique をどういうニュアンスで使ってるかは
>>45 にしかわからんだろ JK
君、ちょっと論理的思考能力が欠けてるんじゃね?
>>52 前から不思議なんだがなんで if(肯定形 == true) とか if(否定形 == false) とか、
書くんだろう…
普通に if(肯定形) とか if(!否定形) って書けばいいと思うのだが…
ましてや if(否定形 != false) なんてありえへん…
>>53 だよねぇ。
>>54 じゃあはっきり言ってやる。
そもそもuniqueにニュアンスがあるとも思えないが、百歩譲ってあるとして
しかしいずれにせよuniqueの対義語になる言葉なんか
>>46 の案に一つも存在しない。
あるというなら明示的に言ってみな。
56 :
46 :2012/09/23(日) 15:00:46.36
>>55 > uniqueの対義語になる言葉なんか
>>46 の案に一つも存在しない。
どれも、いくつかの antonym dictionary で unique を調べた結果です。
57 :
46 :2012/09/23(日) 15:06:19.71
>>55 もう少し具体的に言うと
たとえば unique を incomparable(無類の)というニュアンスで使っているのなら、
対義語として comparable が挙げられるのではないか、というように、
unique に込めたニュアンスによっていくつかリストアップしてみました。
>>55 > しかしいずれにせよuniqueの対義語になる言葉なんか
>>46 の案に一つも存在しない。
だったら君が案を提示してやればいいんじゃね?
>>57 プログラミングの文脈でそんな文学的表現が要求される場面があるんだろうか。
むしろないと断言してよいと思うが...
>>58 何が「だったら」か意味が分からない。
>>59 > 何が「だったら」か意味が分からない。
マジでわからないの?
日本語勉強した方がいいんじゃね?
>>60 馬鹿はこれだからな。
俺がuiqueの対義語が(他に)存在する、というのなら君の言い方(「だったら」)は成立する。
俺がいつそんなことを言ったんだ?
むしろそんなものはないと考えるから
>>47 のように書いている。
いろんな人が、それぞれの理由でそれぞれの案を提示する。
あとは
>>45 が選ぶだけ。
>>45 が案について質問してきたら、それに答える。
それじゃいかんの?
なんで感情むき出しにして馬鹿とか言ってるの?
>>64 他人と会話できない幼稚な馬鹿はどっちだ。
下らないことグダグダ言ってないで建設的なことを言え。
uniqueの対義語ってじゃあ何だよ。一つでいいから挙げてくれ。
もちろんuniqueの用法のうちプログラミングの世界で意味を持つもののそれでなければ
何の意味もない。
>>65 プログラミングの世界でuniqueはどのような意味を持つ?
しかし、馬鹿で幼稚で無礼なテメエを棚に挙げてどういう言い草なんだ
馬鹿の話ってかならずループするよね。 「こういう話はある」とか逃げるんじゃないの。 他人に偉そうなことをいうのならお前の意見を言え。 それもないのに偉そうに人に突っかかってきたのか。
誰だよ変な煽りしたのはw
ある程度の判断材料は得られたし 馬鹿同士が罵り合ってるのでトンズラ
知恵袋へ
>>69 べつに URL 先の意見と同じって言うだけのこと。
何いきり立ってるんだ?
>>70 「自称英語得意な俺が間違ってるわけねーだろ」君でしょ。
厨坊なら見込みあるけど、高坊以上ならちょっと痛いレベル。
非ユニーク? ハイどうぞっ IsNonunique 別にisNotUniqueでもいいんじゃね
CSで「unique」といったらほぼ用例が決まっていて「一意な」とか「重複のない」 といことはその反対は「一意でない」、「重複している」。はい答え出た 質問者の補足が無い以上、それ以外の稀な用例なんて考慮する必要ないと思うがね
もう、それでいいわ これでこの話は終わりだろ 質問者が適当に選べばいい
相当悔しかったんだな。 誰とは言わないけど (w
あぁ すげー悔しいぜ こんな思いするくらいなら もう二度と書き込まん
>>77 CSで「high」といったらほぼ用例が決まっていて「高い」
といことはその反対は「高くない」。はい答え出た
馬鹿すぎ。(w
ユニーク制限がないんだから、フリースタイル
==TRUE比較はやめろ
今回の質問やそれに対するレスとは直接関係無いから、 みんなに反論するわけじゃなくて、ただのおっさんの一意見として聞いてくれ。 bool isActive = false; bool isNonunique = false; bool isVisuable = false; という感じのコードを読んでると、私は一瞬「ん?」ってつまずく事が多い。 他にも、もしクラスに isNonunique というメンバ変数があって、 書き込みしか許さない場合、そのアクセサ関数はどういう名前で、 どういう内部処理にになるんだろとか、まぁいろいろ余計なことを考えてしまう。
自分も否定文の変数名が存在するとこんがらがるな だから自分のコードではそれを徹底して排除している if (a.isActive() && b.isSelected() && !c.isDisabled()) みたいな簡単な式でも、何だろうな、ワーキングメモリが多く削られる
俺はそれは全然ないね。 というより、否定神学じゃないけど、世の中否定形でしか語れないとか、 そこまでいかなくても否定形で語った方が簡潔な概念もあるんですよ。 例えば物質の三態でisSolidOrLiquidより、素直にisNotGasの方が普通の頭の人には分かりやすい。
visuable・・・ってvisibleの事?
>>88 そうだった
単なるミス、恥ずかしい・・・
IsNullOrEmpty
>>87 いや、そういうのは別に良いんだよ。
どうしても否定形じゃないと語れないとか、
否定形の方がはるかにわかりやすいとか、そりゃあると思う。
そういうのは躊躇せず否定形使うよ。
ただ私はプログラミングソースの中では
「できるだけ避ける」 「安易に否定形は使わない」 だけのこと。
理由は
>>85
否定文そのものじゃなくても、show(false) と hide(true) みたいな問題もあるよね。
isEnable isDisable
普通は不通
「うぃんどws」と打ってみよう
なに未だにTONさんが居座ってるの? 毎度質問者が居なくなってからオレオレ解釈で大暴れするんだよなぁ
class Attribute { ... } class x { Attribute earth, wind, fire, water; } クラス x の名前を教えてください ただの集約クラスなら AttributeSet か AttributeContainer まとめて何かしらの処理を行うのであれば AttributeManager にしようかなと
>>99 Attribute と x それぞれの役割や意味が分からない。
> ただの集約クラスなら
> まとめて何かしらの処理を行うのであれば
Attribute と x との関係がはっきりしない。
これらのことが分からないと、名前が決められないと思う。
聞かれた事だけに答えろカス
ちなみに四大要素はelementalだからElementalManagerな
>>99 マクスウェルに決まってるだろテイルズ的に考えて。
自分ならむしろ class Attribute { AttributeItem earth, wind, fire, water; } …にするかなあ。 -Itemじゃなくても-Objとか-Entityとか。
痛い人が混じってる == true
>>102 「クラス x の名前を教えてください」という質問に対して、
それだけでは決められない、理由はこうだと、
ちゃんと訊かれたことだけに応えたつもりだ。
> Attribute と x それぞれの役割や意味が分からない。 Attribute : 何の変哲もない、1つのクラスです 1. > ただの集約クラスなら 2. > まとめて何かしらの処理を行うのであれば xについて、この2つのばあいの共通点は「いくつかのAttributeクラスをまとめる」ということ 1のばあい、上記の例では4つ以外のメンバ変数は持ちません 2のばあい、制御用の何らかの変数を持ちます 例では4つの変数を持ちますが、3つでも10つでもかまいません ゲームが新要素として新しい属性を追加するようなアップデートでも起こらない限り、数は変更されません また、4つの変数を固定長の配列で扱わないのは、単に見やすくするためです > Attribute と x との関係がはっきりしない。 わざとにごらせたつもりです Attribute を Unit、x 内の4つのメンバを alpha, bravo, ..., zulu にして扱っても構いません
そういう時のためにFooやHogeがあるんだろうってのと 機械的に名付けたいなら最初からそう書いて欲しかった。
いつもならhogeを使っているけど、今回は具体的な名前を使ったほうが分かりやすいと判断しました
一つ確実にいえること。 「集約している」とか「何かしら処理を行う」とか、そんな機能の記述としては 抽象度の高すぎて何の意味も持たない情報をベースに名前を付ける奴は、馬鹿。
>>111 すみません。言っていることをうまく理解できませんでした
template <typename T, typename U>
class Hoge { T key, U value; }
template <typename T>
class Piyo { T x, y; }
template <typename T>
class Fuga { T x, y, z, w; }
class Hogera { Attribute earth, wind, fire, water; }
これらのクラスはそれぞれ何と命名しますか?
>>112 上から順に
KeyValuePair
文脈による
文脈による
文脈による
>>113 「文脈による」項目に関して、名前が決まる具体例をお願いします
ちなみに自分であれば、見た地点で
KeyValuePair
Pair
Vector2(利用可能性が位置情報だけとは限らないので、Point2やCoord2とは名づけない)
Vector4
AttributeSet
と名づけます
>>112 ハンガリアンみたいだね。
Hoge: KeyValue
Piyo: XY
Fuga: XYZW
Hogera: マクスウェル
>>114 > 「文脈による」項目に関して、名前が決まる具体例をお願いします
例えばpiyoに関して、
位置情報であれば Point { T x, y; }
二次元であることを強調したければPoint2D { T x, y; }
などさまざまなバリエーションがあります。
>>116 では「全ての属性をまとめたクラスであること強調したい」ばあいにおいての、Hogeraクラスの名前を教えてください
確かにシステムハンガリアンと似たようなものかもしれません List<Hoge> に HogeList と名づけるのと同じです
>>115 class Shinekasu
こうですか?分かりません><
1つの関数の実装が長くなると読みづらいから分割… 1行に式を詰め込むと読みづらくなるから分割… こういうのってやった方がいいと思うのですが、関数や変数の命名が難しくなってきます。 1つの処理を3つのパートに分けた場合の関数の名前とか、途中式の結果を受け取る変数の名前とか。 命名に何かコツはないのでしょうか? 皆さんはどうしていますか?
>>121 CやJavaなら処理を{ }で区切る。または無名関数を使う。
つまり一々命名しない。
>>122 確かに1箇所しか呼び出しがない関数はわざわざ名前をつける必要もないですね。
途中式を代入する変数については、xやnみたいに意味のない名前か長くてわかりにくい名前かのどちらかになりがちだけど、
これは仕方ないか…
>>121 1つの関数の実装が長くなると読みづらいからというきっかけと、
分割したという結果の間に、もう一段明確にすべきものがある。
「何に」分割するのか
その「何」を端的に表す名前を付ければいい。
逆に言えば、「何」を明確にするように分割する。
明確にできないような形に分割してはいけない。
(こちらは設計の善し悪しにも関わるから、これ以上言わない)
>>124 それが難しいです。
処理Aを1つの関数で命名するのは簡単としましょう。
しかし、処理Aが大まかに3つの処理によって成り立っていて、3つの関数に分割する事を考えた場合、ぴったりとした命名が難しくなる場合があります(やたら長くて説明くさい名前になったりとか)。
意味を保ったままあるいは視点を変えたりして短くできるならすればいいが 短くしようとすると他の動作をするものと誤解しやすくなるようであれば 長くて説明臭いものも受け入れないといけない それはそれがぴったりという事
>>125 やたら長くて説明くさい名前になって困った時に、
その処理や意味を丁寧に説明し、
現時点の自分の名前案を提示してアドバイスをもらうのが、
このスレの趣旨だと思うのだが。
> 処理Aが大まかに3つの処理によって成り立っていて
大まかにというのが、どうもぼやけた感じで引っかかるな。
明確に3つの処理に分けられるのなら、
それぞれの処理の役割や戻り値の意味を明確に説明できるはず。
であれば、後はセンスとボキャブラリの問題で、
自分で解決できなければここで質問すればいいだけだ。
もしかして、やたら長くて説明くさい名前になるのは、
分けた処理の境界がぼやけてはっきり説明できないからという可能性はないか?
(はっきり説明できないなら、長くても分割するなというのが俺の持論)
>>121 > 命名に何かコツはないのでしょうか?
書籍「リーダブルコード」に命名のコツや考え方がいくつか紹介されている。
こういう事はいろんな意味で程度問題だし スパッと解決する理屈なんかないしな。 俺もその都度ここで質問しろって思うわ。
なんにでも名前が割り当てられると思ってるやつは理想主義者 意味のある名前が付けられないようなコード片なんていくらでもあるだろ
>>126 WinAPIなどのライブラリを見ても長い名前のもたくさんあるし、長くなるのもあるのは仕方ないのかもしれません。
しかし、プライベート関数の名前が長くなるのはなんだかなぁと思ってしまいます。
>>127 処理の境界がぼやけているというより、処理の内容が限定的、局所的で、その場でしか通用しないような名前になりがちというか…
リーダブルコード、新しい本ですね。読んでみたいと思います。
>>128 一般的な解決方法なんてなくて、ケースバイケースで考えるしかないと言われれば、まぁそうなんですけど。
>>129 どうも細かいところに拘るところがあるのかもしれないです。
8割の出来でいいから早く進めた方がいいと思いつつもつい…
namespace MyModule { namespace { namespace MyFuncLocal { // ry void MyModule::MyFunc(...) { using namespace MyFuncLocal; Process1(...); Process2(...); Process3(...); } これで良いんだよクソッタレが インターフェースだけ気にしたらあとはしょんべんしてもう寝ろ
再利用の価値があるからこそ気合入れてキラキラネーム付けてるんだってことを多くのコーダーは忘れがち ちゃんとしたPGはどうでもいいところは適当に済ませる 徹頭徹尾はPGとしては絶対に持ってはいけない精神だからもっと適当に生きよう
preなんちゃら doなんちゃら postなんちゃら
>>130 結局抽象的なことしか言ってないから抽象的な答えしか返ってこない訳で。
もう既に同様のことを言ってる人が居るけど、もちろん意味付けのできる(つまり名前を与えられるような)
処理に分割することが第一選択なのは間違いないが、だからと言ってどんな場合でもそれが可能とも
言い切れないのも確か。
無理に命名に困るような関数に分割するより、関数内でコメントで大雑把に仕切った方が
ましということもあると思う。
関数名を適切に付けれるようになったら、プロ
>>135 ・納期を守る
・他人と意思疎通を図る
・識別子に適切な名前を付ける
これはプロのプログラマとして最低限持っていないといけない能力
>・納期を守る さらに付け加えれば、残業をせずに納期を守れることが好ましい 残業は仕事ができないものがすること >・他人と意思疎通を図る なぜか偉そうだったり、ケンカ口調で話すプログラマは非常に多い >・識別子に適切な名前を付ける そもそも文章力の足りない者が多い 理解しやすい命名をし、理解しやすいコメントを書けるように心がけるべき
人にうまく説明するのが苦手や 来年度から社会人なのにこんなんでやっていけるのか不安
スレ違い
スレ違い
さぞや素晴らしいコミュニケーション能力をお持ちなんでしょうなぁ
スレ違い
機械語でコミュニケーション
ややスレ違い
イベント関連の命名は魔境だからな・・・ NotifyValueChanged() → ValueChanged() AddHandlerOnValueChanged() → AddValueChangedHandler()(変更しなくてもいいや) mValueChangedHandlers イベントハンドラは "主語" + ("過去分詞" | "現在進行形") 複数形を使うのは識別子の最後の単語だけ あ、俺の規則ね
>>146 > シンプルで十分正しい意味を示せる
何が正しいのか、こちらには分からないのだが。
ソースの読み手に対して、関数名からどのような情報を伝える必要があるの?
それをはっきりさせないと、名前を考えることはできないよ。
例えば AddHandlerOnValueChanged メンバ関数の方。
最初にこの名前を付けた理由は何?
「値が変更された時に通知されるイベントのハンドラを加える関数であることを
関数名から分かるようにする」
という要望が(必要が)あるから、このような名前を付けたの?
なんだこいつうっとおしいな
"主語" + x x = "現在進行形" → やる前 itemInserting x = "過去分詞" → やった後 itemInserted, mouseClicked x = "名詞" → やった後 mouseUp x = "動詞" → やった後 mouseClick
>>151 どのような情報を読み手に伝える必要があるのか
先ずはこれをはっきり決めなければ識別子の名前は考えられない。
いるよね1から100まで教えないとなにもわからない子って 中学生みたいな反応で滑稽だよ
ウザがられているようなので、今回の件から私は降ります。
>>148 および
>>152 は無視してください。
あぁ、NotifyValueChangedに付けてるNotifyはそういうことか イベントハンドラにValueChangedを使いたいから、イベントを通知する側はNotifyValueChangedにしたんだな 俺は通知する側のメソッドをOnValueChangedにするだろうけど、これって合ってるのかな
例えばAddHandlerOnValueChangedなんていうまどろっこしい名前が必要になるのは、 イベントが抽象化されてないからだと思う。 たぶん一般的なやり方じゃないと思うけど、Androidをちょっとかじったときには イベントリスナを集約&イベントを通知する機能をEvent<T>みたいなクラスに分けて、 そのイベントを持つクラスは、 Event<EventArgs> ValueChangedEvent(){return mValueChangedEvent;} みたいにその値を公開するようにした。 こうすれば、リスナを登録するのは、 hoge.ValueChangedEvent().Add(valueChangedHandler); みたいに多少は簡潔になる。 いや長さはあんまり短くなってないが(笑)多少は可読性が上がってる(当社比)と思う。
>>156 Onを付けるのは通知される側なのかな。よく分からん
>>157 ほう・・・というか鬼なった
やっぱりメソッドチェインが最強かー
>>157 可読性は落ちたが、役に立ちそうな話だった
obj.OnValueChanged.Add(...); obj.OnValueChanged().Add(...); 下はなんか気持ち悪くて許せない俺の心は狭いのか
161 :
157 :2012/09/29(土) 00:14:09.95
ちょっとミスった。 イベントのオブジェクトを外部に公開するときには、当然適当なインターフェイスを 被せるべきだ。 外からイベント発火できるのは普通はマズいもんねw
>>160 readonlyのメンバ変数が作れれば()無くせるけど、C++にもあるんだっけ?
っていうか、C++なんだからポインタか参照を返さなきゃダメかw C++よーわからんのでごめん
>>157 Event<EventArgs>をもっと別の名前にしたくなるのは俺だけだろうか
EventSenderとかEventMulticaster的な
そして非const参照を返す関数はAccess〜()とう俺ルールがあって
あぁ、Add()はハンドラーを追加する関数だからAddHandler()にして
結果
hoge.AccessValueChangedMulticaster()->AddHandler(valueChangedHandler); \なげえ/
位置情報とか状態とかを格納する クラスの親クラスの名前で良いのありませんかね?
Conteiner
container
>>165 State
Position
Condition
Location
Form
Body
Face
エスパーじみてるな
クラスの名前聞いてるのに「とか」って言われてもね... うまい名前を付けられないのは、そういう名前が付けられないようないい加減な設計を しているからだってどうして気が付かないんだろう。
設計の善し悪しは言うなよ
目的が間違ってるのに、間違った目的を不問に付して手段を考えろという奴は、馬鹿。
そういう趣旨のスレなんだから我慢しろ
175 :
デフォルトの名無しさん :2012/09/30(日) 17:59:17.74
>>174 じゃあ君は意味不明な機能のクラスの名前を要求する質問者にも「我慢して」
答えを与えるように。
偉そうに人に命令するんだから必ずやれよ。
というか、そもそも設計の話なんかしてない。
うまく名前が付けれらないのは付けられるような設計になってないからだと言っただけだ。
名前が付けられない理由の説明まで禁止する合理的な理由があるなら言ってみろ。
またウザイ奴が居ついちゃったな…
>>175 意味不明な機能のクラスの名前を要求する質問には「応えない」ようにしている
>>165 位置情報とか状態とかを格納するクラス
をHogeとしたばあい
位置情報とか状態とかを格納するクラスの親クラスの名前
はHogeBase
親クラスがインターフェイスであればIHoge
抽象クラスであればAHoge
IHogeの一種がAHogeなのに?
>>180 抽象クラスの一種がインターフェイスだぞ
作成できないクラスが抽象クラス
C++でいうところの純粋仮想関数しか持つことができないのがインターフェイス
ただ、インターフェイスに関しては言語によって解釈が違う
抽象クラスみたいな扱いの言語もある
昔からよくある2DのRPGのフィールド(画像を将棋盤のように縦横並べたやつ)の事をなんと言いますか?
>>183 フィールドだと意味が広いかなと思って・・・
画像を並べて作られたアレって典型的だから、何か用語がないかなと思いました。
grid, square, borad なんかは見た
>>186 うーん、やはり意味の広い名前しかないかなぁ。
fieldにします。どうもでした。
>>187 なら、アウトフィールド、ウィルダネスフィールド、バトルフィールド みたいにすれば
意味を多少狭く出来るんじゃない?
GameBoardをお勧めする
IEventじゃダメなんですか?
>>191 それだとFireも含まれててほしいイメージになります
Addに限定したインターフェースなのでそれはちょっとしがうかなと・・・
>>192 そんなこと無いのでは?
.NETのEventだって外部からはハンドラの登録しかできないよ。
EventMulticasterにしよう(提案)
まだイデオンしらない人いるんだ
ガンダムの脇役機体を主役にしたスピンオフ作品なんだよね
ゲームで ・同じ種類のキャラクタならば共通で変化しないステータス ・固体ごとに変化するステータス の名前は? 例として struct ???Status { std::string typeName; int maxHP; }; struct ???Status { std::string name; int currentHP; };
>>198 同じ種類のキャラクタならば共通で変化しないステータス
CommonStatus
StaticStatus
GlobalStatus
PublicStatus
固体ごとに変化するステータス
IndividualStatus
VariableStatus
LocalStatus
PersonalStatus
まぁ、どれもイマイチな気がするが、これくらいしか思い浮かばん
>>198 種類の名前と個体の名前をそのままクラス名にします。
>>198 固体ごとに変化するステータスというのは、
・固体ごとにステータスのパラメータの値が変化する
・固体ごとにステータスの(パラメータの)種類が異なる
どっち?
>>198 特に理由がないならxxxStatusなんていう型を別途用意するのがそもそも間違い。
入れ子にせず、パラメータはキャラクターのクラスそのもののメンバーにする。
共通の値は静的メンバーで実装。
個体ごとの値はインスタンスメンバーで実装。
静的は無いわ
変化するしないのクラス名での表明は薄くなってしまうけど、 単純に所有元を、キャラクタ種類・キャラクタ(個体)に分けて、 CharacterTypeStatus CharacterStatus ではどうか。 んでstructじゃなくclass化。 これによりSetterを持つか否かで変化するしないを表明する。 まあどうしてもクラス名で強く表明したければ、 CharacterTypeStatusにBaseとかの単語を混ぜるといいんでない? どこに挿入すべきかは英語詳しくないから分からんw
考えてて思ったんだけど、プログラミングでの命名時に 連語?って区切りを伝えるの難しくない? 例えば CharacterType Status キャラクタ種類 のステータス情報 Character TypeStatus キャラクタ の種類ステータス のどっちにも取れない? こういう場合って結構読み手の一般的推測に基いて判断されてる気がする。 英語の解釈的にはどちらの意味が優先されるとかあるものなの? アンダースコアで区切れば良いかもしれないけど、 Javaとかではそんな不恰好な命名はされてないし‥。
自己レスすまん。 内部クラスで区切りを表すという方法があったわ。 でも内部クラスを使うまでもない、名前だけでのうまい区切り方法があったら教えて欲しいな。
かっこよくきめたいのなら連語やめてCharacterみたく一語にしたらいい。
単語の最後も大文字にする CharacheRTypeStatuS -> character typestatus CharacterTypEStatuS -> charactertype status
>>198 その例だと AbilityStatus / CapacityStatus と CurrentStatus かなぁ。
そもそも、Status とはちょっと違う気がする…
>>205 普通に StatusForCharacterType とか TypeStatusOfCharacter とかでいいんじゃね。
>>210 じゃあアンスコ以外にほかにいい方法でもあんの?
前も書いたけど、アホなプログラマって何で前置詞や接続詞を使わないんだろうね。 205とか208みたいな意味不明な方向違いの努力をする。 使ったらカッコ悪いとでも思ってるんだろうか。 中学生か。
前置詞とか接続詞とかダサいわ 「ヒカルの碁」とか名前最悪にだっさいやろ でも「ドラゴンボール」はかっこいいスマート これが「ドラゴンのボール」とかなってたら1巻打ち切り確定 その辺の美的センスっていうのPGにも持ってもらいたいんだよね
>>216 2語以上繋いだ名前も十分ダサい
ドラゴンボールとか、あずまんが大王とか
1語でズバッという名前は最高
HOLiCとか、ちょびっツとか
その辺の美的センスっていうのPGにも持ってもらいたいもんだ
「ワンピース」はダサすぎてやばいからその法則は信用できないな
ワンピースの最終回は 世界は一つのピースとか言うと予想
英語で なんとか of なんとか とかかっこいいとおもう
TheLordOfTheRingsとかだっせぇわ Avengersのほうがかっこいいっしょ
>>218 ワンピースは「ワン」「ピース」で2語だタコ
は?じゃない そうなの
作中で一回でもそう明言されたか? 「ワンピース」っていう固有名詞でないとなぜ言い切れる?
もういいからその話は
キモヲタ王に、俺はなる!まで読んだ。
売り上げで語れよ
日本語の接続詞も英語の接続詞(この話ではof)も似たようなものなのだよ・・・ だがソースコードに関してはXxxxYyyyZzzz→XxxxのYyyyのZzzzと確実に解釈される。ofは使われていない 更に装飾詞だっけ?XxxxYyyyFinallyやXxxxYyyy(that)Zzzzといった命名も嫌われる
英語圏のソースはどうなってんの?
>>232 自分でソースを読んでこればいいだろ
オープンソースなんて腐るほどある
>>234 言ってる意味が分からん
俺は「自分でソースを読んでこればいいだろ」と言っただけだが
もしかして、「オープンソースなんて腐るほどある」
という主張が正しいかどうかを訊いてるのか?
それは俺の主観だから正しいもなにもないと思う
typedef std::shared_ptr<std::list<std::shared_ptr<Hoge>>> HogeShPtrListShPtr;
キャメルケースとスネークケースが混じったコードに殺意を覚えた
え、まぜちゃダメなの?
混ぜていいよ
俺も混ぜていいと思う。 普通のプログラマなら普通に読めるだろ。 ただ、使い方はひとつのプロジェクトで統一して欲しいな。 キャメルケースを主で使って、補助としてスネークケースを使うとか。 for を表すときにアンダーバーを使うとか。
クラス分けすりゃいいんだけど、そこまでしなくてもいいかなあって時に使ってるなあ
プロジェクト単位でコーディングルール強制とか逆に効率わるいっしょ インターフェースとかだけきっちりしてれば中身はクラス単位とかファイル単位で統一してくれれば十分だよ
238「windowsプログラミングでboost使ってるコードに殺意を覚える」
たまに使うよ、shared_ptr とか
>>246 知らない。無用に潔癖症なんじゃないの?
249 :
205 :2012/10/08(月) 01:50:40.07
色々情報くれてありがとう。
>>207 一語に出来る情報なんてそうそうないでしょw
>>208 きめえwwと思ったけどそれでもう一つ方法を思い出したよ。
強調したい連語単位で頭大文字化するやつ。例:CharactertypeStatus
有名オープンソースな何かで見た覚えがある。
まあでも可読性はアンダースコアのほうが良いよね‥。
>>209 ,213
確かに普通に接続詞を使うのも悪くない方法かと思うのだけど、
>>230 の書いてくれたように、ofとかあまり使わない印象があったんだよね。
そのきちんとした理由があれば使わないようにしてようと思ったけど、無いようなら使っちゃおうかな。
>>249 > ofとかあまり使わない印象
識別子は短いに越したことないから、省略しても問題ないなら省略することが
多いだろうけど、
>>205 みたいなケースだと使った方がわかりやすいと思う。
CharacterTypEStatuS なんて言うのは個人でやるならいいけど、他の人には
逆にわかりづらいと思う。
まだ、キャメルとスネーク混在の方が間違った解釈されないだけマシ。
getShare_ptrとかもOK?
>>252 個人的には無いかなー。
ただ、アクセサ等の命名は、既存の変数名に即したものにするべきという考え方も理解は出来る。
1次元の配列を2次元の配列に変換するクラスの名前 どんな名前にしようか悩んでる
シンプルに arrrayTo2D とかは?
gridFromVector
変換する目的とか方法は何?
「悩んでる」と言っているだけで誰も質問してない件。 そもそも機能の説明が曖昧すぎる。 まあ、 - 一次元配列を二次元配列に変換するというより、二次元配列をストリームとみなして それを初期化するイメージ - row、columnの数と縦横それぞれのスキャン方向はコンストラクタで指定(変更不可) こんな感じだと仮定してMatrixBuilderとか
>>259 > 「悩んでる」と言っているだけで誰も質問してない件。
それがどうした? としか言いようがない
それがどうした。 っていうか馬鹿だろお前。
CPPであるインターフェイス(IHogeとする)を継承して、すべての仮装関数を「サポートされてない」という例外を投げる関数でオーバーライドした共通の基本クラスの名前は? struct IHoge { virtual void VMethod() = 0; virtual void VMemFunc() = 0; }; struct ? : IHoge { void VMethod() { throw NotSupportedException(); } void VMemFunc() { throw NotSupportedException(); } }; struct SomeHoge : ? { // ry
「基本クラス」でいいじゃん
つづり間違えた。 IHogeNotSupported
ErrorHoge / InvalidHoge
基本クラスで良いに同意。 敢えて書けば、Java風にAbstructHoge。 そして各メソッドコメントに「デフォルト実装では、NotSupported例外を送出します。」を入れる。 派生クラスは基本クラスとis関係である、と自然に捉えられるか、を考えればこうなると思う。 最初はUnimplementedHogeって答えようと思ったけど、こいつを実装のある派生クラスが継承しているのは何か微妙に感じるでしょう?
>>264 実装するのだからインターフェイスではない。よって頭文字Iは却下
AbstractHoge(AHoge)やHogeBaseといった命名で茶を濁すのが一番
俺ならEmptyHogeかな
ゲームでアイテムやキャラクターをあらわすクラスってどう名前付けるべきか たとえばポーション(体力回復薬)だったらゲーム仕様にあわせてそのまま「ポーション」で行くべきか あるいは機能を明示的に示すように「体力回復薬」とするべきか あ、もちろんコード上では英語です
ゲーム中での名称が一般名でなければコードでは一般名を使う 一般名として充分通じるならそのまま 体力回復以外のポーションもあるならポーションは使わない
「無敵」フラグが isStar だったりとか?
そもそも「potion」は一服の飲み薬のことだぞ 俺なら飲み物全般を「Drink」としてインターフェイス化する
ゲームに出てくる読み物って、大抵「薬」のような気もするけどもw
全てitemクラスの派生
汚水とかゲロゲロが飲料扱いのゲームもあるんですよ?
テーブル内の金額を合計するメソッドの名前いいの無いかな
流石に辞書引けよそれは。 それもできない低能なら同情するが
すみませんが詳しい方のみ回答をお願いします
>>279 俺はお前と違って辞書の使い方を知ってるから、むちゃくちゃ詳しいぞ
教えてやる
[英辞郎 より]
合計する / cach up、count up、sum up、<<他動>> aggregate、count <<自他動詞>> summate
他の単語もあったが、まぁこの辺りから適当に選んでおけばいいだろ
tally up
ラジアンの角度を表す実数を0以上2π未満の同じ位相の値にする関数 同様に-π以上π未満の同じ位相の値にする関数の名前は?
どちらも normalize 引数に渡すフラグや列挙子、数値などで範囲を指定
public static bool メソッド名<T>(this T target, params T[] prms) { return prms != null && Array.IndexOf(prms, target) != -1; } 何かいいメソッド名ある? Inだと短すぎてやだ
exists containts has
それだと逆?なんだよ 使い方は、hoge.メソッド名(a, b, c) だから
notExists
その逆じゃないよ Array.Contains()とかDictionary.Exists()みたいなのがあるから主語と述語が逆っつーか…
isContained
サンクス IsContainedIn か ContainedIn にするわ
IsElementOf
find
existsIn
いずれか必須と言うかチェックをする関数名ぷりーず!
いずれか必須と言うチェック でした
仕様にもよるが Or In Contains あたりはどうか
validateRadioButton
テキスト1から3で一個は入れてくれって感じなんです
>>299 だから、毎度毎度言ってるように処理の意味を書こうよ。
そのプログラムでは「テキスト1から3で一個は入れてくれ」ることがどういう意味を持つんだ?
「3つのうちいずれかが〜かどうかチェック」ってそんな具体的な処理内容から
普通は名前付けないって。
>>300 すまぬ
検索条件にテキスト1から3ませあって
検索前にいずれか必須のチェックをしたい
その関数名です、こんな感じで大丈夫でしょうか
>>299 validate
check
oneOrMore
requiredOneOrMore
>>302-303 ありがとう!
validateCheckかrequiredOneOrMoreにさせて頂きます
いやいやいや、何でvalidateとcheckを一緒にするんだよ .validate()か.isValid()でいいだろ
validateとcheckって両方使うとしたらどう使い分ける? validate(年齢).check(x => x < 30) みたいな感じ?
英語とかさっぱりだから、ネイティブがどう思うかは分からんけど 自分なら……うーん。 validate: 正しい値かどうかを調べる。例えば、酒・タバコは20歳以上じゃないと購入できないなど。 正しい/正しくないという文脈が存在しないときには使わない。 正しくない場合は、それを呼び出し元に返したり、整合性フラグをfalseにしたりする。 基本的に値の修正はしない。したい場合はcorrect()などと組み合わせる。 check: 与えられたデータに対して、何らかのフラグを返したり、そのフラグをデータに書き込む。 確認済み、生成済みなど。 何らかの条件が付随する場合は、CheckFoo()やCheckIfBar()という名前にする。
>>306 check the validity of 〜 = validate 〜
validate = 正しいことを確認する。正しくて当たり前、正しくなかったらそりゃ大変。assertに近い check = 単に何らかの確認をする。正誤とは限らない
ついでに聞くけどJavaとか.Netのvalidateメソッドの動作と名前が 意味的にどう結びついてるのかよくわからないんだが
assert = 力説する ブレーク判定専用句と化した先輩 check = 検査する プログラミングにおいて使い道が乏しい句 if (obj.Check()) → objを検査しているようだが、どういう状況にあることを調査しているかわからない if (obj.Validate()) → objのParamが有効な状態にあることを確認する validate = ものが正しい状態にあることを確認する。またはものを有効化する。 obj.Validate() 有効であるかどうかを示す。(有効化するかどうかは不明) obj.IsValid() 有効であるかどうかを示す。本当に調べるだけであればこちらを推奨する verify = 過程(プログラミングでいえばソースコード)が正しいことを確認する。 assertと同様に、ブレーク判定に使われる歴史があるので、それ以外での使用は推奨できない
つまり、obj.check〜()とかobj.Verify()はほぼありえないと考えていい obj.Assert〜()はありえる obj がインタプリタ言語のコードを示す変数だったら、obj.Verify()はありえ・・・やっぱりisValid()でいいや 但し、CDの焼きこみが正しく行われたことを確認することはVerifyという。これは例外
何か動作をしたあとにそれがすべて正しく行われたかがverify 今の状態が正しいかがis valid 今の状態が正しいか調べることを要求するのがvalidate is validとvalidateの使い分けはコーディングルールによる メソッドはすべてオブジェクトに対する命令だよルール(obj.DoSomething() = "Obj, do something.": オブジェに何かしろと命令をする)ならvalidate 基本的には命令だけどブールを返すだけのメソッドは例外的に命題形式(obj.Equals(x) = "Obj equals x.": オブジェがxに等しいという命題の真偽を返す)ならis valid
314 :
デフォルトの名無しさん :2012/11/03(土) 12:16:28.70
>310 知ってる範囲では java.awt の validate は、コンポーネントの配置、親子関係を 正しく(valid)するという意味。副作用としてサイズ変更や再描画が発生する感じ。
set2Pointer
ゲームを作っています。 台車やトラックや荷車などを使って、荷物や人や岩などを運ぶゲームなんですが、 運ぶ手段となる性質を持つキャラの共通のインターフェースとして Carrier クラスを作りました。 質問は、運ばれる対象となるキャラの共通のインターフェースとして、 どのような名前のクラスがいいか、ということです。 例えば caller <--> callee のように carrier とちょうど対称になる単語があればいいのですが。
carrierにとってはどれもloadだけどどう?
別人だが。
>>317 loadってそういう意味なのか。
でもデータ読み込み以外の意味では使いにくそうだなw
loadの元の意味は積荷、負荷。 動詞だと搭載、積載すること。
ああ、load averageとかの意味か。
Carriable とかどうだろう
ごめん忘れて
ごめん忘れて
絶対に忘れないからー!
あかん、脳に深く刻み込まれてしまった
俺のニューロンも無駄遣いしやがったな
別にcarriee って造語作っても問題ないと思うけどなぁ。 そもそも運ばれるものが持つインターフェースってのがよくわからないけれど
Boy, you gonna carry that weight, carry that weight a long time. っていうわけでweightとか。 でも、 >台車やトラックや荷車などを使って、荷物や人や岩などを運ぶゲーム なら、そんなインターフェイスなんか要らんような気がする。 どうせほとんどの物体クラスがそのインターフェイスを実装することになる。
家クラスとか、道路クラスとかにはないんじゃね?
template <typename T?> class Vector3 { ... }; このテンプレートクラスのテンプレート引数T?を変換する関数の名前と、そのスコープを決めたい 変換関数はこんな感じ template <typename TargetType, typename SourceType> void Cast?(const Vector3<SourceType> & input, Vector3<TargetType> * pOutput) { pOutput->x = (TargetType) input.x; pOutput->y = (TargetType) input.y; ... } 1. T? の名称 2. Cast? の名称 を教えてほしい 例1)T? -> ContentType、 Cast? -> Vector3CastContentType 例2)template <U> Vector<T?>::CastTo(Vector3<U> * pNewValue) を作成する 例3)template <U> Vector<T?>::CastFrom(const Vector3<U> & source) を作成する
それでいいじゃん
ファイルパスとかpidlを処理するクラスで、 それらがネットワーク上の何かを指してるときに タイムアウトするまで待たせるクラス さらにそれがタイムアウトするまでユーザーに表示するウィンドウのクラス お願いします
>>331 「それ」じゃわかんねぇんだよなぁ・・・
何が?
>>332 タイムアウトするまで待たせるクラス: Get
タイムアウトするまでユーザーに表示するウィンドウのクラス: Progress
336 :
316 :2012/11/24(土) 18:38:26.00
提示された候補は下記の4つ ・load ・carriable ・carriee ・weight ぱっと見て一番意味が分かりやすいのは carriable なので、 これでいく事にしました。 ありがとうございました。
337 :
デフォルトの名無しさん :2012/11/25(日) 19:17:41.04
ある値を一定範囲内にして返す関数名はなんとつけたらいいですか? int 関数名( int value ) { if( value > = 100 ) return 100; if( value < 0 ) return 0; return value; }
round
EnsureRange
trim LimitedValue
2次元物理エンジンで有名なBox2Dもclamp採用してる
clampの元祖は何なんだろうな 広まった原因はDirectXのシェーダ関数だろうけど
344 :
sage :2012/11/26(月) 00:43:41.38
>>339 なるほどclampですか!
>>343 調べたらでてきました。
とても参考になりました!
ありがとうございました。
うは、sage入れるところ間違えた。
string Object::SetKariName(...) { this->kariName = ...; } int Object::SetKariValue(...) { this->kariValue = ...; } void Object::Update() { ... this->name = this->kariName; this->value = this->kariValue; ... } string Object::GetName(...) const { return this->name; } int Object::GetValue(...) const { return this->value; } SetKariName()とSetKariValue()はどんな名前をつけるべきですか? RequestSetName()とかにして、kariNameはrequestedNameなんてどうかな
値を返すセッター?
GetName()、GetValue()、GetXxx()が返す値は、Update()時に変更される これらのプロパティはこれ以外のタイミングで変更されることはない Update()時に設定される新らしい値は SetKariName()、SetKariValue、SetKariXxx()で事前に設定しておく
SetNewName SetTemporalName SetNextName
>>346 アクセサメソッドはそういう内部の事情を隠蔽するのにも使うから
SetName
SetValue
>>349 Temporalは意味がちがう
Temporaryなら可
>>350 それは読む人を混乱させるよ
俺案
PrepareName
>>350 SetXxx()とGetXxx()が対にならないのは実際ややこしいので、そのセッタ(?)かゲッタのどちらかの名前を修飾したい
元々のソースでは
>>346 のメソッドが次のように命名されている
SetKariName -> SetName
GetName -> GetPrevName
つまり、
obj.SetName(...);
obj.SetXxx(...);
obj.Update();
NameTextArea.SetText(obj.GetPrevName());
XxxTextArea.SetText(obj.GetPrevXxx());
ようなコードになり、更新後の値をGetPrev...()で取り出さなければいけない。おかしい
なので、例のGetName()をGetOldName()みたいに修飾するわけにはいかない
つまり、SetKariName()側を修飾するべきだと自分は思った
>>351 自分でRequestSetName()みたいな例を挙げていて何だけど、GetKariName()が欲しくなったばあい
PrepareNameの対となるゲッタの名前はどうするべきだろうか
SetKariName -> SetNewName(
>>349 )として、GetNewName()を用意するのが一番わかりやすいんじゃないかと思ったが、どうだろうか
class Object { public: string Object::GetName(...) const { return this->name; } int Object::GetXxx(...) const { return this->xxx; } void Object::Update() { ... this->name = this->newName; this->xxx = this->newXxx; ... } void Object::SetNewName(string newValue) { this->newName = newValue; } string Object::GetNewName() const { return this->newName; } void Object::SetNewXxx(int newValue) { this->newXxx = newValue; } int Object::GetNewXxx() const { return this->newXxx; } private: string name; int xxx; string newName; int newXxx; }; こんな感じでどうだろうか
kariNameはUpdateするまでに何回も変更されうるの? それとも1回だけ?
>>354 kariNameはUpdateするまでに 0〜N 回変更される
変更されない可能性もあるし、数回変更される可能性もある
kariObjを作っといて、そこから値をコピーするっていう方向性はないの? でないと、属性ごとに、Newなんちゃら作ることになる。
>>356 それも考えたが、どのみちGetObject()とSetKariObject()が必要になるので、話の内容はほぼ変わらない
カリってwチンコ クラスのメンバかよw
Object honmonoObj, kariObj; で、kariObjはフラグがあってSetXxxができるけど、 honmonoObjはUpdate(というかkariObjのコピー)しか受け付けないみたいな。
>>346 "kari"を"pre"に変えればいいと思うよ。
「男性」「man」「male」など、男性を表す文字列を与えると真、 逆に「女性」「woman」「female」など、女性を表す言葉なら偽を返す関数の名前は何が良いでしょうか。 男性名詞/女性名詞を判別するというような大袈裟なものではなく、単純に正規表現でマッチさせるだけです。 性別を判断できない場合は、デフォルトの値を返します。
isMasculine
真か偽かじゃなくて男性か女性か判別できないか返した方がいいんじゃないのか?
>>362 ありがとう。それにしてみます。
>>363 コーディングの際にはそれも考えたんですけどね。
最終的に真偽値でしか使わず、判別できないときは一方に固定(あるいはランダム選択)する使い方しかしないので、
単に真偽値を返すだけの方が使いやすいかな、という判断。
つ ISO 5218
>>360 PreNameだと名前の前(についているもの)になってしまわないか?
new チンコ
>>366 じゃあ PreviousName とか?
レスあんまり読んでないけど、OldName でいいんじゃね?
>>367 生えてくるんかよwww
>>366 造語だから多少いろんな意味に取れるのは仕方がない。
(1) 意図する意味に取れて
(2) 一度その意味を理解すれば二度目に見たときはすんなり頭に入る
のなら何も問題はない。少なくとも他の案よりまし。
Nextがいいような気がしてきた!
Preとか糞すぎ
>>369 >>368 が即効で勘違いしたように、Pre〜は前とか事前の意味が強いのでNG
Previousの語源もPre〜だからなぁ
逆にNextは確かに解かりやすいかもしれない
選択肢が以下の2つであれば、どちらが良いかな
1)SetNextXxx(Yyy newValue)
2)SetNewXxx(Yyy newValue)
>>372 センスない人とは意見が合わないね。
>>346 が必用としているのは値を「事前に」入れておく入れ物の名前だから
英語のニュアンス的には接頭辞preが一番あっている。
preloadとかpreregistという用語を使う分野があるが、そのpreと同じニュアンスだ。
っていうかnextって何だよ。英語脳で考えずに日本語脳で考えるからそういう発想になる。
一応訂正しとく × preregist ○ preregister
英語脳()で考えるとpreregist とか引き合いに出しちゃうのかぁ さすがゴミの考えは一味違いますね
registなんか日本人しかしない間違え方だし。 そんなんでよく英語脳とか言ってるよな。
>>373 脳が英語か日本語かというより、
そのプログラムコードを読むのは誰なのかの方が大事だと個人的には思う。
読む人が日本人なら、日本人の感覚を優先すべき。
外国の人も普通に読むのなら、国際的な感覚を優先すべき。
378 :
346 :2012/11/29(木) 23:06:13.78
>>373 >>372 は俺だわ
その命名方法でいくと、
SetPreXxx(事前Xxxを設定しろ)
PresetXxx(Xxxを事前設定しろ)
のどちらが良いですか?
>>378 純粋にメソッドの名前だけならPresetXxxの方が分かりやすい気がするけど、
それだとその値を保持するメンバ変数の命名でまた悩むことになるね。
というか、命名と関係ない話になるし既に誰か書いてた気がするけど、
本当はUpdateで適用する値だけを別のクラスか構造体にまとめて置いたほうが
分かりやすいような気がしないでもない。
命名に悩む設計は糞だってばあちゃんが言ってた
381 :
デフォルトの名無しさん :2012/11/30(金) 01:02:24.23
今日はrejisutoという関数名を見た。社内ライブラリなので直したら影響が大きそうだと思った
reserveName
registって見ると所詮その程度の奴なんだなって思う
resistと混ざる(´・ω・`)
385 :
346 :2012/11/30(金) 06:44:03.41
>>379 レスさんくす
SetPreXxx(newValue) { this->preXxx = newValue; }
PresetXxx(newValue) { this->preXxx = newValue; }
どちらの場合でもpreXxxで良いんじゃないかと思った・・・が、ゲッタを作成するばあい
GetPresetXxx() { return this->preXxx; } になるのか・・・
自分的には名前を対照にしたいし、SetPreXxx()にしてみようかな
適応するプロパティなりをまとめるかどうかは検討中
386 :
346 :2012/11/30(金) 06:46:25.94
長文スレ汚しになるが、実際こんな感じのクラス class Relation { // Body同士の関係を表すクラス public: void Update() { size_t b1(this->spCache.HasContact() ? 1 : 0); size_t b2(this->spPreCache.HasContact() ? 1 : 0); this->state = StateTable[b1][b2]; this->spCache = this->spPreCache; ... } void SetPreContactCache(spNewValue) { this->spPreCache = spNewValue; } sp<ContactCache> SetPreContactCache(spNewValue) { return this->spPreCache; } private: const BodyPair bodies; sp<ContactCache> spPreCache; sp<ContactCache> spCache; ContactState state; }; map<BodyPairUniqueId, Relation> relations; relations.insert(BodyPair.GetUniqueId(), Relation(BodyPair));
測定器の吐き出した実験データの書かれたファイルを 実験の種類別にサブフォルダにコピーして 決まった命名規則に従いリネームする というプログラムの名前はなにがいいですか?
>>387 Log Filer
DAQ Log Filer
Lab Aid
>>387 [分類する人]
classer
sorter
[分類器]
classifier
ライブラリのポーティングをしていて、とりあえず無理矢理ビルドを通すために 足りない関数などを定義したソースファイルをまとめて入れるためのフォルダ名は何がいい?
393 :
デフォルトの名無しさん :2012/12/02(日) 00:10:59.44
>>391 どっかで missing/ ってのを見た。
not implemented
>>391 marshal
ヘッダーかと思ったらフォルダかよ・・・
ゲームを作っています。 キャラの当たり判定後の処理をする関数名が思いつきません。 キャラ同士や、キャラと背景とが当たったかどうかを判定する処理と、 判定後に、キャラにダメージを与えて表示を点滅させたり、 互いに弾かれて反対側へ飛ぶように速度ベクトルを変えたり、 背景にめり込まないように位置を調整したりする処理とを分けたいと思います。 当たり判定そのものは HitTester クラスが受け持ちます。 判定後の様々な処理は GameRule クラスが受け持ちます。 (GameRule クラスはその他の処理もいくつか受け持ちますが) キャラが動いたら、そのキャラを HitTester::register 関数で登録し、 全ての移動キャラが登録されたら、HitTester::test 関数で判定します。 その後 GameRule::??? 関数で当たっているキャラに対して処理します。 この???関数の中ではHitTesterから当たっているキャラのリストを得て、 どのキャラ同士か、キャラと背景なのかによって処理をサブ関数に振り分けます。 その後、キャラが動くので再び HitTester で当たり判定をし、 GameRule::??? 関数で判定後の処理をし、当たらなくなるまで繰り返します。 この GameRule::??? 関数の名前は何がいいでしょうか。 私は postHitTest が思いついたのですが、この意味の post は動詞ではありません。 関数名はできるだけ動詞で始めたいのですが、なかなか思いつきません。
handleHittestResults
>>398 dispatchToHitHandler
変数名で悩むってことは設計がもやもやしてる状態
当時はなんとも思わなかったが、大昔のタイトーのバブルボブルみたいな処理って 自分で実装しようと思うとなかなか難しそうだな
>>399 >>400 >>401 >>402 >>404 みなさん、ありがとうございます。
>>404 にはとても説得力を感じました。
やることは「めり込みの解消」や「ダメージ処理」など複数あって、
GameRule::??? はそれを振り分けるだたのエントリーポイントになるので、
>>401 >>402 のような感じの名前が良さそうですね。
参考にしてもう少し考えてみます。
それと・・・
キャラが動いたら、そのキャラを HitTester::register 関数で登録し、と言いましたが、
VC++ では識別子に register という名前が使えないことを今知りました。
(言い忘れていましたが、使用言語は C++ です)
こちらの代わりの名前も、もう少し自分で考えてみます。
register は使えなくても、Register は使えるんですね。 今までHaskellに合わせて関数名も変数名もCamel形式でやっていましたが、 ポリシーを変えようかな・・・
registerObjectとかregisterEntityとかでいいだろ
>>408 すいません、ODEでregisterを引いてみると、
どうもデータを「記録する」という意味合いが強いみたいです。
それも、どちらかと言えば大事な(公式な、公的な)データを。
また、今回の(毎フレーム当たり判定するキャラを設定する)様に
ころころと内容が変わるものにはあまり使わず、
もっと長い時間記録しておくものに対して使う感じですね。
なので、enterあるいはsetを使うことにしました。
410 :
デフォルトの名無しさん :2012/12/02(日) 20:25:11.31
>>407 Cのころからregisterは予約語よ。
賢いコンパイラにいろいろ任せて構わない環境では意識して使うことはあまりないけど。
revertとrestoreの違いって何?
412 :
デフォルトの名無しさん :2012/12/10(月) 07:55:46.61
ある値の最大値や最小値、デフォルト値などを規定するとき、どうしてる? MAX_FOO や DEFAULT_BAR にする? それとも FOO_MAX や BAR_DEFAULT にする? あるいはそれ以外?
前者
>>411 過去に戻るのがrevert
過去を今に引っ張ってくるのがrestore
>>412 俺はオブジェクト指向のとき、Integerというオブジェクトがあったとすると最大値、最小値、デフォルト値を
Integer.MAX, Integer.MIN, Integer.DEFAULT って定義するので後者。
インテリセンスで補完することを考えても、
ネームスペースをそろえる的な意味で、接頭辞は関連あるグループでまとめたい。
アドバイスありがとう。 迷ったけど、オブジェクト指向を意識して、階層分けをしてみることにする。
2つの文字列のリスト X、Y があり、 X の各要素 x について、Y の要素と同値かどうかを調べるとする。 このリスト X の事を base list、Y の事を target list と呼ぶのはおかしいか?
>>417 文脈がわかればもっと適切な名前が出てくるかもしれないけど、
別にbaseとtargetでも問題ないよ。
個人的にはsrc推し
srcにするならもう一方はdstだな
>>418 >>417 の処理をする関数の仮引数の名前、および、
その関数を使用する側の実引数として使う変数の名前をどうしようかと。
関数自体は2引数で、一方がリストX、もう一方がリストY。
(リストの要素の型が文字列かどうかは、実はどうでもよかったりする)
その関数を使う側でも、関数の中でも、どの引数がどういう意味なのか、
プログラムを見て直ぐにはっきりと分かるようにしておきたい。
プログラム言語は Haskell なので、式はシンプルにできると思い、
仮引数は特に意味のない xs と ys を使ってプログラムしてみたが、
意外にぱっと見どちらが各要素調べるリストで、
どちらがその要素と同値か調べるリストなのか分かりづらかった。
(たぶん、数ヶ月後にはもっと分かりづらくなっているだろう)
実は base と target にしても、どちらの意味で base を使っていて、
どちらの意味で target を使っているのか曖昧で、
分かりやすさという点では xs や ys とたいして変わらないような気がするのだが、
どうだろう?
422 :
デフォルトの名無しさん :2012/12/17(月) 22:04:59.02
積集合(intersection)を求めようとしているのかと思ったけど、 個々に調べるだけだから違ったか。
>>421 X: query, keywords, entry
Y: dictionary, base
もしXが入力されたコマンドのリストで、Yが受付可能なコマンドのリストとかいうのなら
XをcommandsにしてYをavailableにするとか
>>423 すまん、
>>421 でも括弧内に書いたが、今回は汎用型関数なんだ。
(
>>417 で文字列と言ったのは、初めはそのつもりでプログラムしてたから)
同値かどうか判定できる型なら何でもいいから、
仮引数としては具体的な名前は使いにくい。
ただ、keywords や commands などは実引数の方で大いに使わせてもらいたい。
また、やはりと言うべきか、Y の方を base と考える人もいる事が分かり、
これもあまり良くないと分かった。
entry と dictionary(dic)の対は結構良いかもしれない。
X の方は、辞書や図鑑などで調べようとしている単語や事物を抽象的には何という?
という問題と本質的には同じっぽい(具体的には word や dinosaur などだけど)。
425 :
デフォルトの名無しさん :2012/12/17(月) 23:18:26.19
bsearch(3) では探すものが key で探される集合が base だった。 探索アルゴリズムの解説なんかで、探すものがneedle、 探される集合がhaystackという文化もあるけど。
>>424 2つの引数は入れ替えても関数が返す値は常に同じ(数学でいう交換法則が成立する)
のように思えるから、むしろ意味がある名前を付けることこそ変に感じるけど。
x, yでいいじゃん。
>>426 では同値判定の時はそれで問題ないとして、大小比較判定の場合は?
あるいはもっと一般的に2引数をとって真偽値を返す関数による比較の場合は?
そう考えると、2つの引数は入れ替えても関数が返す値は常に同じというのは、
今回の問題の本質では無いような気がするのだが・・・
本質は
>>424 でも少し言ったが、
辞書や図鑑などで調べようとしている単語や事物の方Xと、
辞書や図鑑などの方Yの名前が分かれば綺麗に解決すると私は思う。
例えば除算のように交換法則が成立する演算なら、被除数、除数というように 2つのパラメータを区別することに意味があるし区別しなきゃダメだけど、 乗算のように交換法則が成立する演算の場合は被乗数、乗数なんて区別しても あんまり意味はない、そういうこと。 >大小比較判定の場合は src、dstがシンプルでいいと思うけどアセンブラ経験者じゃないと違和感あるかな。 reference、evaluatedとか
429 :
346 :2012/12/19(水) 14:30:03.95
sourceの反対はdistination?だっけ?これだけじゃないぞ。targetも使える
俺なら
>>426 と同じ理由でlistA、listBと名づける
大小比較であれば、leftList、rightListだな
つ destination(dst/dest) lhv/rhv(left/right hand value)ってのも
>>427 >では同値判定の時はそれで問題ないとして、大小比較判定の場合は?
これ関してはa/b、x/y等が広く使われてる
>あるいはもっと一般的に2引数をとって真偽値を返す関数による比較の場合は?
特化するならともかく一般化するならなおさらa/b、x/y等しか使えない
>>431 > 特化するならともかく一般化するならなおさらa/b、x/y等しか使えない
イメージとしては、リストXから一枚カードを抜き、
「そのカードを使ってyと何かをする」という関数を
リストYの全てのカードに順に施す。
という処理をリストXの全てのカードに対して行う。
と言うことなのでXとYは非対称、というのが私の個人的な感覚。
なので、できれば非対称である事をイメージできる名前が欲しかった。
でも、一般化するなら非対称も何もないから x や y で良いだろという言い分も分かる。
感覚の違いで、議論は平行線のままだと思うので、ひとまずこれで終わることにする。
いろんな意見ありがとう、参考にさせてもらう。
トランプゲーム? X=山札? Y=手札?
やべ、名前突っ込んだままだったとは・・・
>>430 今時はlhv/rhvは使わない。流行っていない。オープンソースでも見たことがない
交換法則が存在するのであれば、引数はleft/right
しないのであれば、a/b
交換法則が存在するというか、算術演算ではなくて順番に価値があるならば、first/second/third/...
>>432 void func(List xxx, List yyy) {
foreach (ListElement a : xxx) {
foreach (ListElement b : yyy) {
process(a, &b);
}
}
}
最初からこう(↑)説明するべきだったんじゃないかな。俺なら、
xxxはfactors,factorList
yyyはtargets,targetList
435 :
デフォルトの名無しさん :2012/12/25(火) 16:59:57.68
ClassA ClassB ClassC と三つのクラスがあり、 渡されたインスタンスの型が A ならそのまま返し、 その他なら A に変換して返す、という関数の名前に迷ってます。 後者の場合は B.toA(), C.toA() のようなメンバ関数を実行して返すといった具合です。 Number(string) みたいなキャストと同じような動作を意識しています。 いいアイデアあったら教えて下さい。
toA() ToA()
437 :
デフォルトの名無しさん :2012/12/25(火) 20:36:32.38
C++だったらAに型変換コンストラクタを定義するところかな?
そもそも関数ってのがね。 基本的に変換であれば、変換が必要だから変換していることが明示的に分かるように書くべきだし (変換してるかもしれないししてないかもしれない、なんて気持ち悪い) 逆にある型をAとして扱いたいのなら普通に多態を使うべきじゃないかと思うんだけど。
> 命名規則や設計の善し悪しについて議論するのは基本的に禁止。
馬鹿はいつもそれだな。 馬鹿がそうやって建前を利用して他人をコントロールしたがるのは、 無能ゆえに自分の実生活を自分でハンドリングしている感覚がないからだ。 まあ言ってもわかんないだろうけど。 本気で哀れだ。
俺も
>>436 だな
AにもToAし得るのは.StringにもToStringがあるようなもんだと思って目をつぶる
Microsoft_Free_Every_Object_Convert_Returning_Type_Of_A(object sender){} というのは嘘で、俺は型変換はすべて ConvA() みたいにしてる。 ネイティブのToStringなどと混同しないように。 何でもいいから自分の中で統一しておいたほうが楽だよ。
下位の型(Lower)から上位の型(Higher)の変換関数は Higher LowerToHigher(Lower value); void LowerToHigher(Lower input, Higher * pOutput); void Higher::FromLower(Lower value); static Higher Higher::FromLower(Lower value); static void Higher::FromLower(Lower input, Higher * pOutput); 上位の型(Higher)から下位の型(Lower)への変換関数は Lower HigherToLower(Higher value) void HigherToLower(Higher input, Lower * pOutput) Lower Higher::ToLower() void Higher::ToLower(Lower * pValue) 同位の型(AaaとBbb)同士の変換関数は Bbb AaaToBbb(Aaa value) void AaaToBbb(Aaa input, Bbb * pOutput) Aaa BbbToAaa(Bbb value) void BbbToAaa(Bbb input, Aaa * pOutput); ある型(Aaaとする)をメンバに持つクラスは、Aaaより上位である つまり、組み込み型は最下位である 但し、文字列型(String)とある型(Aaa)との変換関数は String Aaa::ToString() void Aaa::ToString(String * pValue) void Aaa::Parse(String value) static Aaa Aaa::Parse(String value) static void Aaa::Parse(String input, Aaa * pOutput); とする
我が宗教を書き終わったのでボク満足
>>435 ?知らんな。「ToA」でいいんじゃね
引数名で迷っている 2つのデータを関数に渡して、第一引数に第二引数の値をコピーする処理をしたいんだ コピー元とコピー先って意味でいい言葉はないかな?
src, dst または dest 'source, destination)
ネイティブの人だと大抵src/destだよな srcの逆ならどう考えてもdstの方が自然だと思うんだけど向こうの人の頭はどうなってるのか知りたい
dest と dist を区別するためだな
日本人は字数合わせたり几帳面なんだと思う
width&height「呼んだ?」
>>450 参照してるソースが偏ってない?
英語ネイティブかどうか知らないけどジンガイの書いたコードやドキュメントでも
dstの方が多いように感じるが。
JavaのAPIはsrc/destが多い(arraycopy等) WinAPIもだね
>>452 カラム合わせで思ったけど、アセンブラとかBASICとかFORTRANにPascal、それにCとかは等幅フォント。
C++やJavaになってくるとプロポーショナルのフォントの方が書いていて楽な感じがしてきた。
MS Pゴシックみたいに判読困難な文字が多いフォントは別として、ほとんどの場合は 確かにPフォントでも困らない。 とはいえ、コメントにAA使ったり参照テーブル的な配列を初期化する場合は Pフォントだと困るケースがあるから、やはり等幅フォントの方が無難だと思う。
>>457 > とはいえ、コメントにAA使ったり参照テーブル的な配列を初期化する場合は
他にも enum を書く時にイコールの位置を揃えた方が見やすい場合もある。
あと、俺はこの手のも揃えたいな。
if (aaa > 3 && aaa < 5 ||
bbb > 7 && bbb < 11)
コードが図形のように理路整然としていると可読性が上がるね。見落としが減る。 クラス名や変数名も文字としてではなく図形として意識して命名すれば、見やすくなる。
>>459 前半は分かるが、後半がよく分からん。
図形として意識せず命名してしまった変数名やクラス名と、
ちゃんと図形として意識して命名した変数名やクラス名の例をいくつか挙げてみてくれ。
>>459 の言いたいことかどうか分からないが、(特に末尾の)数文字しか違わない
名前が複数あると視認性が悪くなるというのは結構ありがちなことかも。
もっともそういうケースではほとんどの場合有効な解決法が他になかったりするけど。
スレチかもしれんが、プログラムのよく使う変数名の付け方とか、 こういう時はどんな変数名にしたらいいかが載ってる書籍とかサイト知らないですか? 1つ1つここで聞くのも無粋かと思うので・・・
あるといいよね。 俺が出版しようか
>>462 ここの過去ログを漁ってまとめればいいと思うが
>>462 とりあえず、適当な単語と
進行形(〜ing)・完了形(〜ed)・可否(can〜/is〜)をある程度、意識するようにしてる。
Cで質問。 struct Foo {int a; int b; int c;}; enum XXXXX { FOO_A = 0x0001, FOO_B = 0x0002, FOO_C = 0x0004, }; Foo構造体のどのメンバが有効かどうかを示す列挙型を作りたい。 複数のメンバが同時に有効になる場合があるから、ビットの論理和で表現する。 XXXXXに何て名前つけるべき?
enum FooFlags { a = 0x0001, b = 0x0002, c = 0x0004, }; でも無効なメンバーの値は0x80000000(どうせこんな値普通は使わない)にする約束にすれば こんなフラグは要らない。
UseMask AvailableMask
ValidMember
470 :
デフォルトの名無しさん :2012/12/31(月) 19:42:03.44
ゲーム作ってるんだけど、ゲーム画面に表示するものの位置を保存するメンバ変数で position と location で迷ってる。 こういうものの場合 Windows API だと position が多いような感じがする(SetWindowPos とか)。 でも、.NET Framework だと両方出てくるみたいで紛らわしい(Cursor.Position、TextBox.Location、 言葉の意味の違いはなく共に座標位置を表す数として扱われているようだ)。 言葉の意味を調べると意味にブレのない Location を使う方が正しいように思う。 しかし、こんなこと考えつつも、実際のプログラミングでは pos と表記したくなるジレンマ。
論理座標…location 描画などの点…position で使い分けるのが自然に思う
472 :
466 :2012/12/31(月) 19:55:49.74
>>473 ゲーム世界での位置を表すものはlocation
たとえばキャラが升目に載るタイプのゲームならlocationは升目単位
そうでないのはposition
個人的にはこうやって区別して使ってる
>>474 Cursor.Position、TextBox.Locationについてはどう解釈すればいい?
>>475 常に動くものや引数で指定するもののように定まってないのはpositionで
定まってるされてるものはlocationという使い分けなんじゃない?
WinFormsだとコントロールの位置はlocationで動的なマウスカーソルの位置はpositionだけど
マウスイベントが発生した時に発生時のカーソル座標を取得するプロパティはlocation
そもそも
>>740 のプログラムの中で両者を使い分ける必要があるの?
どうせほぼ同じなんだから、あえて使い分けるならプログラムの性質に合わせて自己流でやればいいと思う
ゲームなら
>>474 の区別が便利なんじゃないの。逆でもどっちでもいいと思うけど。
position:点として扱われているものの位置、広がりは無視される。 location:広がりがある物として扱われているものの位置、広がりが意識されている。 こういう傾向があるように思うけど、いつもこれで区別されるわけではないとも思う。 ウインドウは広がりがあるものだけどSetWindowPosは左上の点で設定するのが 前提にあるからこのルールに矛盾しないものと解釈する事もできる。 だけどいずれにしてもXYで表されたりと結局どっちでもいいようなものは 開発者の視点の違いでしかないような気もする。
ちょっと無理がある区別のような気がするけどw むしろ両者の違いは、positionは次元を問わない(1,2,3次元のどれにでも使える)のに対して、 locationは2次元(あるいは立体物の表面上)の位置というニュアンスが強い気はする。 2次元に限定すれば両者の意味はほぼ同じじゃないのかね。
3次元でも立体の表面上とか関係なくLocationが使われてるからそんな違いはなさそう
positionは抽象的なものにも使いうるっていうことでは?
たとえばpositionという言葉はスライダーとかボリームとか1軸しかないモーションコントロールなどでも
使用されるけど、locationは一般には使われないと思う。
>>481 は違うというが、普通は3次元上の位置のことをlocationとはあまり言わないと思うね。
俺は容赦なくLocationで統一している Positionを使うべき明確な理由が見つかったらPositionに置換しようかと
マウスカーソルの現在位置に関してはpositionが圧倒的みたいだな locationは特定の位置に物体が束縛されている positionは物体の観測結果としての位置 みたいなニュアンスなんだろうか
日本語で言う「場所」と「位置」程度のニュアンスの違いだ。
location : 場所
position : 位置
場所はある広がりを持った空間を指す。
位置はある点を指す。抽象度がより高いから立場とか順位いう意味にも使える。
例えば日本国内で映画の撮影に使う場所(空間)は location。
その場所でカメラをセッティングする位置(点)は position。
>>470 の目的だと、俺なら position を使う。
locationは、おおざっぱなもの。 positionは、細かいもの。
だから広がりとか大雑把とかそういうことではなくて locationには平面状の位置というニュアンスがあるんだと何度も言ってるのに 懲りねえなまったく...
みなさん 権威あるオックスフォード新英英辞典にも、 position と location についてそのような微妙なニュアンスや、 ましてや明確な違いなど説明されていませんよ。 互いが互いの言葉を使って循環的に説明されています。 平面も広がりも、点だろうが何次元だろうが関係ないです。 好きな方を使ってください。 プログラムソースの中ではどちらかに統一しましょう。
しょうがねえな。 たとえばLongmanのpositionの項にこうある 5 direction[countable] the direction in which an object is pointing この用例を見れば分かると思うけど、これがpositionが次元を問わずに使える理由だと思う。 一方でlocationの項を見ると、"Choce:"とある囲い記事の中に Location is used mainly in formal or business English to talk about where a building is locationに平面上の位置というニュアンスが強いのはこのため。
やはり何次元でもいいんだな。
どうでもいい 最も気に入った案を信じてこの件は終わりだろ 明確な答えなんか出るわけないんだから
略称系のposにできることから、positionでいいんじゃね?
location も loc と略せるが
locは、一般的でない可能性がある。
どうでもいいよ プロジェクト独自のルールを全く前提とせずに誰が読んでもすぐわかるコードなんて幻想
どちらでもいいと思いうけど、厳密に使い分けるなら自分ならこう定義するかな Positionはあるモノの位置を表し、そのモノ重視で考え、その位置は複数のモノが存在する 単純にそのモノの位置を表すのに使う 例:ウインドウの位置 Locationはあるモノの位置を表し、その位置重視で考え、その位置は唯一のモノしか存在しない Locationには探しだしてきた、見つけた位置ってニュアンスも含まれるから それがその位置に設置できるかどうか判断するような場合が必要ならこれを使う 例:メモリ上の位置
>>500 だからそんな一人善がりの妄想で使い分けして意味があるのかと。
しかし、全然常識外れの議論が横行してるから、 こっちがちゃんと論拠まで添えてこの言葉のニュアンスはそうじゃなくてこうなんですよと 整理してるのに、人の話を全く聞かずに相変らずトンデモ話を展開する馬鹿、 言い負かされると「どうでもいい」とか言って自分の恥をないことにしたがる馬鹿、 このスレって本当ロクでもない奴が多いよな。
そう? 500のレスした者だけど offとoutの違いみたいな感じで、英語的に的を射た考え方だと思ったけどな Positionには方角や地位的なニュアンスもあるから、そのモノ視点 Locationは色んなものが存在する中に存在する、そのモノの位置視点 判りやすいけどなあ
肝心の主張内容がお前から出た言葉のみでそもそも論拠じゃないしな
このスレで初めて勉強になった
>>502 自分のレス番と、トンデモ話を展開する馬鹿のレス番をそれぞれ晒せ
ググったら、YAHOO! ANSWERSのページが最初の方に出てきて、おおよそ locationは対象の位置それ自身を示すものだが、 positionは、座標軸を決めた上での対象の位置を表す数値を表しているだけで、 座標軸が変わると、同じ位置を表すのに異なる数値となるっぽいもの 的に読めた。ほんとかどうかは知らん
location = 地点, locate(英 地点を定める)の名詞 position = 位置、姿勢, poser(仏 置く)の名詞 結論 : どっちでもいい
まだ強弁するのか。 馬鹿は死ぬまで治らないって本当なんだな
>>510 だから、自分はどのレス番で、強弁する馬鹿はどのレス番か、はっきりさせろ
それとも、自演してるから明かせないのか?
そうやって問題を別の問題に摩り替えて誤魔化そうとする 馬鹿の常套句だな
それお前
location は 住所 position は 緯度経度高度 というニュアンスで使っている
location = あの店の中のどこかに居る position = あの店の奥の左の柱の右角に立っている。
location = おっぱい position = ちくび
作業の最初にすべきことを定義したメソッドの名前 initialize setup など 作業の最後にすべきことを定義したメソッドの名前 cleanup tear_down など 他にもあるだろうけど、それぞれニュアンスの違いって何かあるの? 例えば、ある状況では cleanup よりも tear_down の方が 処理の内容をより良く表しているとか。
518 :
517 :2013/01/06(日) 15:58:01.39
ごめん、質問がよろしくなかった。 ・作業の最初に、その作業で使うリソースを準備するためのメソッドの名前 ・作業の最後に、使ったリソースを片付けるためのメソッドの名前 という事にして。
>>517 対象によってはそういうこともあるかもしれないね、としか言えない。
名前付けに迷ってるんなら対象も含めた相談にしてもらうのがいいと思う。
520 :
デフォルトの名無しさん :2013/01/06(日) 16:42:38.71
setup / tear down はテスティングフレームワークにおけるテスト環境作り でしか見たことがない気がする。
pre prepare construct create build make open begin allocate post dispose finalize close end free delete destroy
uninitialize もあるのだよ・・・
523 :
517 :2013/01/06(日) 22:24:15.93
>>519 いや、今とくに何か困っている訳ではないんだ。
>>520 じつはテスト駆動開発の勉強をしてて、この単語に出会い、
なんで tearDown なんてマイナーな言葉を使うんだろと思って質問した。
他にも分かりやすい言葉があるだろうに、何か特別なニュアンスでもあるのかなと。
ついでに他の言葉の使い方なども分かればいいなと思って、広い質問の仕方をした次第。
もしかして、テスト対象で使ってる識別子とダブらないように、
わざとマイナーな言葉を使ってる?
それにしては setup はいたって普通だけど。
>>522 deinitializeじゃないのか?
tearDownなんて見たことないけど、辞書を見た感じだと、後始末というより まとまっているものを部分にバラすというニュアンスのようだから、 参照を解放して依存関係を解消するとか、そういった感じの処理なんじゃないのかね。
>>524 deinitializeだとinitialize(の効果)を取り消して元に戻す、的な意味になる
uninitializeは意味が正しいかどうか知らないが、MSは使っていた
最近は・・・といっても2、3年前程度だが、setup/finalizeが多かったと覚えている
なんつーか、流行りモノだね
>>518 ん?よく見たら初期化/後始末関数のネーミングが欲しいわけではないのか
・作業の最初に、その作業で使うリソースを準備するためのメソッドの名前
AllocateResources
・作業の最後に、使ったリソースを片付けるためのメソッドの名前
DeallocateResources
でいいんじゃね
>>526 修正
流行ってたのはsetup/filanlizeじゃなくて、setup/cleanupだったわ
529 :
517 :2013/01/07(月) 22:44:44.35
>>527 誤解させたようで、ごめん。
ネーミングが欲しいわけでもないんだ。
>>518 の用途で、
>>517 のような名前や、
それ以降のレスで挙がったような名前がよく使われるけど、
ニュアンス的に使い分けるものなのかな? と。
発端は
>>523 。
teardown なんて他では見ないけど、
特別なニュアンスでもあるのかなと疑問に思ったから。
530 :
デフォルトの名無しさん :2013/01/07(月) 22:52:05.33
具体的に何をするかを表さなくていい場合で、 基本的に一度だけ実行するものは initialize/finalize(設計次第で省略されることも) でいいかと。 ただ、この組み合わせは使用者がこのメソッドの処理内容を考えず、単純にそうするといったレベルで扱っていいものに限られる。 リソースがどうのこうのっていうのを意識させなければならないなら、普通にイメージ通りの英単語を選んでやればいい。 load_res/unload_resとかいろいろ思いつくだろう。
531 :
デフォルトの名無しさん :2013/01/07(月) 23:07:54.60
tear down は set up に対応して、 up と逆の意味を持つ down が含まれて、 かつ、終了/後片づけのニュアンスがある熟語を選んだと想像。
>>529 特に使い分けるものはない・・・と思うが、考えてみればsetupってinitializeより先に行うものだよな
アプリなりOSを導入して使用できる状態にすることはセットアップ
使用を開始してから初期状態に戻すことが初期化だよね
コンストラクタが「setup」であり、デストラクタが「cleanup」であると考えれば、
「initialize」は使う場所が無いな
>>5332 逆だな
initializeの中でいろいろ情報集めて、その情報をもとにsetup
setupは隠ぺいされるもの
534 :
517 :2013/01/08(火) 19:31:30.64
>>532 > 考えてみればsetupってinitializeより先に行うものだよな
確かに。
> コンストラクタが「setup」であり、デストラクタが「cleanup」であると考えれば、
> 「initialize」は使う場所が無いな
理屈の上ではね。
実際は、コンストラクタでセットアップ的な処理の一部、
例えば動的メモリやソースなどの確保処理はすべきじゃないから、
必然的に残りのセットアップ処理は別関数にして後で呼ばなきゃならない。
その関数に initialize と命名することは良くある。
俺の中では initialize は局所的な状態の初期化で、
setup は全体の状態の構築というイメージがある。
それで言えば、「setupってinitializeより先に行うもの」と同意見だ。
535 :
517 :2013/01/08(火) 19:33:25.65
>>534 >>533 のレスで自分の言葉足らずに気づいた。
> それで言えば、「setupってinitializeより先に行うもの」と同意見だ。
正確に言えば、
setup の中で各 initialize が呼ばれる感じだ。
>setup の中で各 initialize が呼ばれる感じだ。 それってつまりinitializeするメソッドだね。 わざわざ名前変えてわかりにくくする必要はないと思う。
initialize: 対象を削除して白紙にする setup: 対象を現場で構築して使用可能にする
Initialize > 初期化 setup > 構築・設定 って感じで捉えてる。 setupメソッドの中で初期化するためにInitializeメソッドを呼ぶ感じだと思う。
setupって設計ミスだろ 普通はsetXXXで構築するからSetupメソッドなんて無いんだけどな
>>534 > 実際は、コンストラクタでセットアップ的な処理の一部、
> 例えば動的メモリやソースなどの確保処理はすべきじゃないから、
え?なんで?
むしろコンストラクタでこそ行うべき処理だろ。 RAII っていうぐらいだし。
>>540 ダメだったのは、例外処理の機構が組み込まれる前のC++かな。
知っての通り、コンストラクタは戻り値を返せないから、問題が
起きたとしても呼び出し側にその情報を伝える手段が乏しかった
ため。
とは言え 例外処理が組み込まれて以降でも、コンストラクタ中で例外
が発生するとデストラクタが呼び出されないのでリソースのリークが
発生する可能性があるため、コーディングが面倒になる。
結果、できればコンストラクタで複雑な処理や例外が発生する可能性
のある処理はすべきでないとする流儀がある。
やっぱコンストラクタでやっていいのか 安心した
C#とかでユーザーコントロールとか作ると、実質、IDEの関係で引数なしのコンストラクタしか使えないから 何か外部からパラメータやオブジェクト渡して初期化しようとすると、仕方なくSetupみたいなメソッドを 作ってしまうことはある。
根本はgoto禁止みたいなアホルールのせいでしょ?w
gotoなんか使いどころが確立してるから持ち出したって荒れんわ
日本語の「初期化」っていうのがあらゆるニュアンスを殺してるっていうか、名前としてふさわしくない気がしてきた。 しかしこれを「準備」とか「初期設定」に言い換えてもなんか嫌。 つまり、最初にやるべき一連の処理という概念そのものがあやふや過ぎて、名前を付ける対象として不適切。
オブジェクト(インスタンス)を宣言したばかりの状態「Object x;」 この状態は既に初期設定が済んでいる状態(OSのセットアップが済んだ状態)なのか、 それとも済んでいない状態なのか、どちらであるべきなんだろうか 特にC++でいえば、コンストラクタはそれが成功/失敗したかどうかを返せないので、 Object * pNewValue(Object::TryCreate()); // Object * (static) Object::TryCreate() (nullable) みたいに動的生成関数を用意するか、 Object newValue; newValue.Try初期設定(); // bool Object::Try初期設定() を用意するか ここまで書いて「あ、これ命名に関係ないわ」と気付いた
>>549 > 特にC++でいえば、コンストラクタはそれが成功/失敗したかどうかを返せないので、
例外があるだろ。そんなめんどい細工が要るのは特殊な状況(環境)だけ。
例外は文字通り例外的な事が起こったことを知らせるためのものだから、 単に処理の成否を伝えるためだけに使わざるを得ないのは、 もしかしたら設計をミスっていることを示唆しているのかも知れん。
とりあえずC++でエラーを例外として投げるのは一般的じゃないし、好まれていないし、あまり見ない そもそもC++では例外自体が好まれていない。例外が投げられたら投げっぱなしが基本
Javaみたいに例外はキャッチして処理すべきものとして作られている言語はともかく、C++でそれはない boostのlexical_castみたいに文字列のパースに失敗したら例外を投げる、みたいな関数は「クソ面倒くせぇ」と感じる
スレ違い 他所でやれ
XXXからYYYへのマップ・ディクショナリにつける変数名をお願いします。 XXXYYYs それか、XXXを無視して単に YYYs どんな感じがいいでしょうか?
>>557 どっちも間違い
重要なのは中身じゃなくて目的
マップ・ディクショナリってなんですか。ググっても出てきません。
連想配列のことかな?
>>559 ,560
連想配列の事です。
>>558 目的ですか?目的は単にXXXの値をYYYの値に変換することです。
例としてXXXが数値の国コードでYYYが文字列の国名とかで、 国コードを対応する国名に変換したいだけです。
XXX2YYY[ key ] YYYByXXX[ key ]
YYY[XXX]
>>562 だから、その例ならたとえばCountryNameTableみたいな名前を付けるでしょ。
>>558 の言うとおりで、名前は結局そいつがどんな目的を担う何者であるかに
注目してそれが分かるような付け方をすべき。
「XXXからYYYへのマップ・ディクショナリ」なんて情報だけから命名しようなんて
センスがちょっと狂ってる。
>>565 じゃ、目的は変換ってことで、
>>563 みたく2(to)はさんだり、もうちょっと修飾
したほうがいいってこと?
>>563 じゃ長いなと思ったのので、
>>564 みたな使い方になるわけで、
単にYYYでいいかなと思ったしだいです。まぁ、YYY[XXX]の場合、XXXに国コード渡すなんてことは
ジェネリックス型のクラス使うので、名前からわかりませんが。
いやだから今説明したじゃん...
>>CountryNameTableみたいな名前を付けるでしょ。 俺は末尾にTableの変わりに複数形のsをつけたわけです。君のと大差ありませんが? とりあえず、どっちも、国コードを渡すって事は失われて。
つか、Java・C系ではマップ、.NETはディクショナリと、他で連想配列とか呼ばれるけど、 これらの使い方はXXXとYYYの対応・変換をつけることだろ? >>「XXXからYYYへのマップ・ディクショナリ」なんて情報だけから命名しようなんて >>センスがちょっと狂ってる。 対応・変換以外に何をすると思ってんの?大丈夫?
大丈夫?って上から目線で言われても困るし、まあこの手の御仁に説明してもわかるとも思えんが。
>>569 みたいな人は、たとえば日常生活で「水と調味料と麺をラーメンに変換する店」
みたいな表現をするのかね。
>>569 はそうかもしれないが普通の人はそんなまどろっこしい呼び方はしない。
普通の人は普通にそれを「ラーメン屋」と呼ぶ。
それが
>>565 に書いた「結局そいつがどんな目的を担う何者であるかに
注目してそれが分かるような付け方をすべき」の意味するところ。
>>570 だから、まどろっこしいと思ったから、
>>557 の***最初の質問***で
おまえのTableを末尾につけるかわり単に複数形にするだけでXXXsでいいとおもう?っ聞いてんだろ・・・
何をおまえは言ってんだ・・
君が時刻表を「発車時刻たち」、献立表を「献立たち」と言い換えても違和感を 感じない人ならそれでもいいんじゃない?
指摘自体は尤もだがそんな事初めからわかってたってオチか 振り上げたこぶしの下ろし方がわからず どうにか間違いに仕立てようとあれこれ画策してるわけか
LUT使うようなときは、だいたいget_country_name(int country_code)みたいな関数経由にするから、 配列名なんてtableだけで済ませちまうなぁ
変数名に連想配列であることを明示したいのであれば、 システムハンガリアンの作法にのっとるべきだろう。 よって map_YYY[XXX]
公開関数の内部で使う変・関数数とかだと、結構泥臭い名前になっちゃいがちだよね
コード内でどう扱われている部分なのかわかりにくい 実際のコード書いてほしい
>>573-575 これが「バカの壁」なんだな。
「XXXからYYYへのマップ・ディクショナリ」なんて情報(だけ)から
命名しようという考え方がそもそも間違っている、というのは分かってる人には
何を当たり前のことをって話だと思うんだが、バカの壁の向こうの住人には
こういう当たり前の話がまったく通じない。
アンカー先間違えてねぇ?
必死すぎるwwwwwwwwwww
盛り上がっているような何より。俺ルールだと とあるクラスが?→itemの連想配列を1つだけ持っているばあい、 その連想配列を「items」または「itemMap」またはと命名する とあるクラスが?→itemの連想配列を2つ以上持っているのであれば、 例えば連想元が「index」と「name」であれば、それぞれ 「indexToItemMap」「nameToItemMap」と命名する class Simple { Map<int, Item> itemMap; // 又はitems }; class NotSimple { Map<int, Item> indexToItemMap; Map<String, Item> nameToItemMap; };
↑ mapってmapとして動作するの? itemとして動作するなら最後にmap付けたらおかしいよね itemなんだから
おかしくないね
itemってのは、要素だろ? mapとかitemsってのは、itemの集合体を表す。 要素一つを表すか、集合を表すかの違い。
キーを指定して配列が取れるときは複数形にするけど、そうじゃない場合は複数形にはしないなあ.
それは一般的でない
俺583だけど、俺も連想配列は複数形を使いたくないという頭がある
複数形を使うようにするばあい、
>>583 の class NotSimple 内の2つの連想配列の名前をどうしようか迷う
indexToItems?indicesToItems?
俺は逆だな、複数形にして単純化できるならしたい頭がある プリ/サフィックスつけるとすると、今度は何をつけるかでまた悩みそうだから。 JavaならMapインターフェースあるし、標準の呼び名であるMapでいいかもしれんけど、 言語・環境毎につけるプリ/サフィックスかえるのかとか、 言語・環境に依存しないような例えばここででてきたTableにするかとかで、悩むのだるいし。 ということで、 >indexToItems?indicesToItems? を議論しよう。俺はこの場合、今までindexToItemsを使ってたな
俺はitemsかindexToItem
だからindexToItem
複数あったら変えるという時点で破綻だ
全然
俺も基本的に
>>583 と一緒
接尾辞のMapつけない点以外は
ofを使うと英語っぽくなる int i = zip_code_of["○○町"]; // ○○町の郵便番号 string[] s = country_names_of["Asia"]; // アジアの国名(複数)
ネイティブのコードってあんまりof使われない気が
id_of_colorとかいかにもファッキンジャップ臭がする
index ofとか見たことない? ofの後に指定されたもののindexを返す
>>599 id_of_colorじゃなくて、color_id_of["Blue"]
そういう名前は配列じゃなくて関数(やマクロ)につけるべきじゃないのか?
colors zipCodes
index_ofは関数名じゃないのかな これが変数名だとしたら、なんつーかオシャレすぎる indexからcolorを取得する関数にしても、最近はgetColorByIndexみたいにByを使うことが多いが
ofを使う使わない以前に添字がついたときのみ意味が通る変数名なんてあり得ない。 さすがにネタだろうと思ったら何かマジで言ってるっぽいから怖い
いや、冗談なんですけどね
連想配列って特別な配列ってわけじゃないんだから専用の名前なんて要らないじゃん
>>603 ので十分だ
@ Key:数字、Value:色 A Key:名前、Value:色 この2つの連想配列が1つのスコープに存在するときの、それぞれの命名方法はどうするの?
なんでスコープ分けないの?
>>608 そんなもん一つに纏めてしまいましょうで終わり
@ Key:数字、Value:色 A Key:名前、Value:数字
>>611 そんな間抜けな状況は20行程度で終わるはずだから c1 c2 でいいよ
ボツ
>>613 こんなアホな状況に対して真面目に名前考える方がアホだぞ?
どうせだれにも読めないクソコードなんだから時間かけるだけ無駄って奴だ
このスレに君の出番は無いんでお引き取りを。
1 :デフォルトの名無しさん:2012/09/06(木) 17:19:40.71 クラス名、変数名のつけ方に悩んだら書き込むスレです。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。
ただの質問に見えたが屁理屈だったのか 詳しく説明してくれ
colorsByIndex colorsByName
C++で優先度つきキューを実装してるんだけど、 データを格納するためのメンバ変数の名前を何にしようかと考えてる。 今はこのキューを使う側のプログラムのテストのためにモックとして作ってて、 キューの内部では処理速度は考えずに std::list クラスを使ってる。 キューにデータをプッシュする度にリストの先頭から検索して ちゃんとソートされるようにデータを配置する。 で、そのデータを格納するメンバ変数の名前なんだが、 最初は適当に item_list とか data_list とか考えた。 でも、今はモックとして作るが、実際の運用では処理速度が求められるから、 内部の実装は恐らく平衡二分探索木あたりを使うことになるだろう。 あるいは、もっと運用に適したデータ構造があるかもしれん。 そうすると、item_list や data_list ではおかしい(というか紛らわしい)。 まぁ、その時になったら名前を考えてリファクタリングすればいいかもしれんが、、 結局いつかは適切な名前を付ける必要があるから、今から候補は考えておきたい。 今のところ sorted_items という名前がひとつ思い浮かんだんだが、 他に何かあるだろうか。
sorted_hoges、いい名前じゃん。 特にソートされることを強調する必要もなければ単にhogesでもいいと思う。
>>621 実際の運用では優先度ごとにキューを並べる可能性もあるので
ソートすること前提とか、メンバ変数は一つだけなのが前提とか
それすらも怪しい。
現状に合った名前ということなら
>>622 が言うようにhogesでいいと思う。
具体的にはitems, tokens, packetsみたいな感じで。
>>623 > ソートすること前提とか、メンバ変数は一つだけなのが前提とか
> それすらも怪しい。
なるほど、たしかに。
>>622 >>623 ありがと、単純に items にするよ。
マルチプロセスやマルチスレッドでは fork-join というペアが用語としてよく使われますが、 fork-join に似た他の言葉はありませんか。 joinというとどうしてもSQLのjoinをイメージしてしまうので、よく似た別の言葉がほしいです。
>>625 俺も同様だったが今は慣れた。SQLんときにjoinが頻発してたように、
マルチスレッドやるなら今後joinいっっっぱい出てくるから自然と受け入れられるようになる。
むしろ、joinで通っているものを別のものにしてしまうことの問題について考えてほしい。
とある情報系の絵本ではフォークとスプーンという言葉が使われていた。
ログメッセージの書き方の質問もここで良いの?
今閑古鳥だからいいよ
じゃ、お言葉に甘えて。 アプリケーションをプログラムしていて、 デバッグ用にエラーメッセージや変数の変化の推移などをログとして ファイルに記録する機能を作ってるんだが、 英語のエラーメッセージの主語って何するのが普通なの? たとえば「テクスチャオブジェクトの作成に失敗した。」というメッセージの場合、 さすがに I や we ではおかしいよね。 かといって it でもなんか違和感あるし。 あと、「データファイル "パス" を見つけられなかった。」というメッセージなどで、 文の最後にパスを引用符で囲って記述するんだけど、 この場合、ピリオドって引用符の外に出すんだよね。 (普通の会話の引用符などだと中に入れるけど) ちなみに、日本語で書けというアドバイスはもっともだが、 今は英語で書くというのが前提なんだ。
主語なしで動詞から始めることが多いんじゃない。 海外製ソフトのログとか更新履歴はたいていそうだよね。 Failed to create a texture object. Couldn't find a file "...". とかなんとか。
テクスチャオブジェクトの作成に失敗した ↓ テクスチャオブジェクトの作成は失敗した 明確な主語はある。あとは英語で書けるかどうかだけ
633 :
デフォルトの名無しさん :2013/02/01(金) 17:37:42.09
当たり判定の補正値の変数名に困っています。 ちなみにバウンディングボックスで判定を取るつもりでいます。
bounding boxの補正値と言ってもいろいろあるから、それだけの情報で名前をつけろと言われても
635 :
630 :2013/02/01(金) 19:18:05.44
>>631 > 主語なしで動詞から始めることが多いんじゃない。
なるほど、主語は省くのか。
>>632 たしかに言い方を変えれば主語は明確になるけど、
安易にこの手の言い換えをすると、ちょっと修飾するだけで
頭でっかちの文になるじゃん。
たとえば「頂点シェーダー用のシェーダーオブジェクトの作成は失敗した」
==> Creation of a shader object for vertex shader failed.
で、頭でっかちはキモいから、意味の主体を後ろに持ってくると、
==> It failed creation of a shader object for vertex shader.
この It をどうしようかと、最初の疑問に戻ってくる。
a vertex shader objectでええやん
>>630 自分のPCのCドライブを"*.log"で検索してみるんだ。Iやweを避ける表現がいろいろ見つかる。
Vertex shader object creation failed.
Unsuccessful creation of a vertex shader object.
Failed to create a rtex shader object.
などなど。
ピリオドを引用符の外に書くのはピリオドがパスの一部だという誤解を防ぐため。
外に書くべき。
日本語を直訳するんじゃなくて、見やすい表現やわかりやすい表現にしよう
>>635 完成した英文にすることにこだわらなくてもいいんじゃないかね。
Creation Failed: Vertex shader object.
みたいな書き方でもいい。
640 :
630 :2013/02/01(金) 20:29:40.50
>>636 ちょっと修飾するだけで頭でっかちの文になる
==> 主体を後ろ持ってくる
==> 結局、主語をどうしようかという問題が出る
という事を説明するために出した例なんで、
この例文自体にとくに意味は無い。
ぱっと思いついただけ。
>>637 避け方以前に、主語を避けるのか付けるのか、
普通はどちらなのかがまず知りたかったんだ。
避けた方が良いよねという事が分かったんで、
テクニックは *.log も含めて色々調べてみるよ。
> 外に書くべき。
分かった。
>>638 うん、心がけるよ。
>>639 ごめん、ちょっとは拘りたい。
この手の英語の表現方法に興味がわいてきた、というのもある。
スレチ気味な質問につきあってくれて、みんなありがと。
日記とかも、動詞で始めたりするよね。 logという意味では同じか。
こういう場合、その失敗したとか、成功したとかの実行者が主語になるね つまりIが主語なんだけど、そのIはLogを吐き出している実行ファイル(exe)やプログラムね 対話だと思えば判りやすいんじゃないかな ヘッダのコメントでも This function returns an integer value obtained by adding the two arguments specified. みたいに書かずに Returns an integer value obtained by adding the two arguments specified. みたいに書いてあったりするね その関数の説明だから、いらんよね
manの内容も動詞から始まってる事多いな 主語がコマンドやオプションであると明確だから そういう場合は英語でも主語を省略するんだね
644 :
デフォルトの名無しさん :2013/02/02(土) 11:52:03.92
無生物主語っていう概念に気付くと便利だな。
今話題になってるのはブッシュ(←なぜか変換できない)構文じゃなくてただの 主語の省略。 知ったかぶりして適当なこと言わないこと。
↑無知
単に
>>644 の説明不足だろ
省略出来る主語が関数なりコマンドなりの場合、
主語を省略するために関数なりコマンドなりが主語になる文を作ると便利って話だと思うが
簡単には伝わらない
>主語を省略するために関数なりコマンドなりが主語になる 言ってて矛盾に気づかないならどうかしてる。
そもそも今の議論で最初から疑問だったのは、プログラマの書く英文に主語がない 物が多い背景に「(主語を書くのはなんとなくかっこ悪いからw)なるべく主語を使わずに済まそう」 という動機があることを想定していること。 そんな動機なんかないよ。 単純に主語が冗長なケースでそれが省略してあるだけ。
>>648 関数なりコマンドなりが主語になる文を作って、主語を省略するんだよ
流石にそれが分からないのは読解力がなさすぎ
>>650 だからそういう意味不明なことを言うのは、
>>649 みたいに勘違いしてるから。
物主構文を使うのはそれが英文的に自然だからそうしているだけのことで、
"program"とか"code"みたいな主語を使いたくない(だってかっこ悪いからw)みたいな
中二病的動機がある訳ではない。
っていうか、
>>650 は物主構文とただの主語の省略の区別がついてないのかね。
両者はまったく別問題。
俺はそんな事言ってないな 勘違いしすぎ 日本人がそういう文章を作ると つい日本語的な発想の主語を持った文を作ってしまい 主語が省略不能になりがちで冗長になるので 意識を転換した方がいいとというくらいの話しかしてない
で?
誤解して恥ずかしかったからって、ごまかしイクナイ
入門書等を見てて気になったことがあります。 例えば既存の関数 Foo( ) があったとして、それと同じような機能の自作関数の名前が MyFoo( )、 Foo( ) を拡張するような自作関数を FooEx( ) と名付けたりしています。 また、デザインパターンのサンプルコードでは、クラス等にそのデザパタ名を付ける、 例えばStateパターンなら BarState のような名前にしているのを見かけます。 こういった「My」のようなプリフィクス/サフィックスは、実際のコードでも広く使われる命名でしょうか。 それともこれも一種のメタ構文変数と捉えるべきでしょうか。
メタだよ
ありがとう
FooEx( ) は、使ったことある。 My〜( ) とか Bar〜( ) は、流石にないな。
>>657 その条件なら、
FooEx→windowsのAPI
BarState→Javaで〜Strategyとかあるはず
MyFoo()→ありえるが、広いスコープでは使われない
>>661 My とか Bar はありえないだろ。
何を意味してるかわからないから。
Myは.NETの同等クラスに足りない機能を実装する際に使ってるね MyMathとか
665 :
デフォルトの名無しさん :2013/02/03(日) 18:59:27.16
Myを実際に使ってしまうのはVB使いのイメージ
>>663 〜Stateはありえる
本当に「Bar」という単語を使って、Bar〜というクラスを作成したりはありえない
>>663 barは、fooやhogeと並ぶメタ変数構文だよ。
間違えた、メタ構文変数。
>>666 >〜Stateはありえる
そっちの議論じゃないから。
>>667-668 だから、メタ構文変数自体を実コードに使うかという話をしているんだが…
え? 本当にBarStateって名前をつけるかって? あり得ないあり得ない
棒の状態を表すのであれば普通に使うと思うが そういう話ではないのだろう?
棒の状態てw
ゲーム作ってるならありそうか
棒管理ソフトウェアとか
ブロック崩し
>>669 ああ、失敬。
勘違いしてるみたいだけど、-State -Strategy のようなデザパタ名がメタなのかって話
>>657 から読み返してください。
そもそもなんで、-State -Strategy のような具体的な名前をメタとか
思うのか理解できないけど。
俺だけかも知れないけど、Myは既存のライブラリとは違うプライベートなライブラリの パッケージ名、名前空間名、クラス名に付けたりするね。 たとえばMyMathとかMyIOとかといった具合に。
681 :
デフォルトの名無しさん :2013/02/03(日) 20:58:15.61
ああ、失敬。 まあ誰でも考えそうなことだよなやっぱりw
でもメソッドにMyは付けないな それより大きな枠でMyを付けるからだけど
同感。メソッドはないね。
>>679 俺はMathHelperとかIOUtilsみたいにするなあ
MyMathは酷いw どんなMathか全くわからんw 作者の数学レベルによってはとんでもないゴミクラスかもしれないw
馬鹿ですね。 MathにどんなMathもこんなMathもないと思うが、仮に「こんなMath」のクラスだと 明示する必要があるとして、もちろんそんな場合にMyMathなんて名前は使わないよ。
MyMathは既存のMathと同じようなもの、というのがよく見て取れる名前だと思うけど
既存のクラス名などとかぶる場合、MathExのようにExを付けてるけど…
MyMathもMathExもMathHelperもMathUtilsも どれも別に問題ないんじゃない? どれも即座にMathに足りないものを補うものなのだろうなあと判断出来る
この世界ではありふれた表現だけど初心者には異様に見えるのかもね
>>687 Exは普通Extendedの略だと思うからMathExはちょっとどうかなと思うけど
>>690 > この世界ではありふれた表現だけど初心者には異様に見えるのかもね
お前の世界を基準にされても…
涙拭けよゴミ
変だと思うのが自分だけと知って慌てているようだ
Myは誰のだよ糞がって思うし、他人に触られる事を一切想定してないんだろとも思う Exは超手抜きで何も考えずに名前付けやがったなと思う -Stateはそのデザパタ使ってるって名前に付けてまで知らせないと多大な影響を及ぼすなら付ければ良い でもリファクタリングが制限されるから基本的に糞
じゃあWinAPIのCreateWindowに対して、CreateWindowExはどういう名前にするんだ? いつものことなんだけど、否定的な意見を書くのはもちろん構わないが、同時に「俺ならこうする」という意見を書かないと議論にならないんだよね 俺はよく使う関数やクラスを namespace my に突っ込んでいる もちろん、多数参加のプロジェクトではそんなことできないが、自分用に作ったものはmyにまとめてある 仕事で、Mathの延長線上のクラスなりを作成するのであれば、MathExかな
CreateWindowでいい
そりゃCreateWindowのままに決まってるだろ 言語仕様上の理由以外にCreateWindowExにすべき理由なんて無い
特殊なウィンドウを作る関数なら具体的な名前をつけるべきだけど、 CreateWindowExの機能自体はCreateWindowと同じだからな。 オーバーロードの可能な言語ならCreateWindowだろうし、オーバーロードできない言語なら CreateWindowEx とか CreateWindow2 とか、具体性のない名前のほうがいいケースだろう。
Win32APIで言うならCreateFileなんて名前と機能が一致してないよね
ファイルそのものではなくファイルハンドルを作成するのだと自分を納得させている。
Win32APIなんて長年の互換性のために気持ち悪い事になってるんだから、態々そんなゲテモノを参考にするなって話だな
>>696 基本的にExなんてサフィックスする命名は手抜きでよくないのはまあその通りだね。
ちゃんと、どの辺りがEx(tended)なのかを明示的に名前に盛り込むべきだと思う。
Myについては、もちろん社内とかグループ内とか自分だけとかで使うプライベートな
ライブラリ以外では使うべきじゃない。
だから俺は
>>679 でそう書いたつもりだけど、他の人もそんなことは言わずもがなだから
あえて触れてないだけじゃないの?
そうやって代わりに頭をひねって作った名前も 他人から見れば実際には大差ない代物だから 気にし過ぎという他ない
何でも名前に盛り込めばいいってもんじゃないし
勝手に「普通の人は分からないに違いない」と思い込む人っているよね
著名なライブラリとクラス名かぶらなきゃ何でもいいんじゃね
>>703 二人以上存在する時点でMyなんて使うなよw
未来永劫自分以外がコードを目にしないなら辛うじてMyを使う余地があるだけで
それが守られないならMyを使っていいケースは無い
いつもいつもきっちりした場面でもないし 共通認識が有れば別に構わん
そもそも例題内でFooに対して自分が作成したものという意味でmyFooって付けられているだけで クラスや関数に付けるようなプレフィックスじゃないと思うわ そのコードを見た人視点であるべきで、そのコードを書いた人視点になってしまう ってばっちゃが言ってた
Ownは使う機会はあるかもなー
まぁ入門書読む初心者にMyを使って良いとか言ってる奴は総じて馬鹿なんだろうな
>>708 まあこれが馬鹿の壁かなとだけ言っておく。
My使うなって言ってる奴も、 実はMyがどういう時に使われるか分かってんだろ?
>>713 こういう場合の「馬鹿の壁」というワードは、どういう意味で使ってるの?
そういう質問をする時点で
図星だったか
思考に気をつけなさい、それはいつか言葉になるから。 言葉に気をつけなさい、それはいつか行動になるから。 行動に気をつけなさい、それはいつか習慣になるから。 習慣に気をつけなさい、それはいつか性格になるから。 性格に気をつけなさい、それはいつか運命になるから。 - マザー・テレサ -
なるほど、コピペマンなてめえの行動は気にならないってわけだ。
結局Myを使うべき理由やシチュエーションってなんだったんだよ? そんなもの存在しないって事で良いのか?
>>723 荒れる原因だから、チームの場合は使うなってことだろ、きっと。
使うべきだなんて誰か言ってたっけ?
荒らしてんのは一人だけだけどな
>>725 使うべきとまでは言ってないけど、使ってると言ってる奴はいたな。
俺には、信じられないけど。
だからそれが「バカの壁」。 君はきっとバカの壁の向こう側の人なんだよ。 どっち側がどうとはあえて言わないけどw
最近知った言葉かのように「バカの壁」を使いたがる奴こそ、 バカに見えるわw
よくわからん理屈。
>>728 孤独な環境でMy使いまくってるから引くに引けずに他者をバカ呼ばわりか
配列で先頭・最後の要素を取得しつつ削除するメソッド名は shift, pop ですが 単一の変数で、データを取得しつつ削除するメソッド名は 何がいいでしょうか 例えば以下のBool型の this.data というものがあり this.data を取得しつつ this.data に null を代入するような場合です。 function ???(){ var n = this.data; this.data = null; return n; } 取り敢えず現在は getAndResetData というメソッド名にしています。
remove
rc (reac and clear)
take takeAway
後になるほどカスい案しか出てこなくなっててワロタ
煽るだけのアホはスルーで
751 :
743 :2013/02/18(月) 15:12:23.94
>>744-748 ありがとうございます。
全体のコーディング内容から見て
合いそうな選択をしていきたいと思います。
>>743 日本語で言えば「空にする」でいいと思う。
空にするメソッドが返値を持つなら、何を返すかは自明でしょ。
moveもいいと思うけど、インテルのアセンブラのニーモニックだとmov(e)は
データのコピーだからちょっとミスリーディングかもしれないと思う。
というわけで、
setNull
null (使う言語で可能なら)
nullize
moveはC++11のmoveのイメージだな でも、あれは移動元がどうなるかまで保証しないので それはそれで紛らわしいかもしれない
staticクラス「Hoge」に対して、同機能のインスタンスを作成して使うクラスってどう命名する? HogeInstanceとか?
同機能のインスタンスって何? 命名以前にOOP理解してない臭がするんだけど...
むしろこういう風に半シングルトン(デフォルトインスタンス)にするだろ class Hoge { public static readonly Hoge Default = new Hoge(); public void Do() { } }
クラス名にInstanceって付けるとはかぶいてるな
>>756 「同機能の、インスタンスを作成して使うクラス」という意図
staticクラスの実装を、インスタンスを作成するクラスに任せる感じ
コードでおk
こんな感じ static class Hoge { private static HogeInstance instance = new HogeInstance(); public static void Foo() { instance.Foo(); } }
HogeImplementation
HogeImpl だな
抽象クラスかインターフェイスだよね? それだと実際の実装クラスがHogeImplImplにならね?
これ何パターンなの? 実装を交換できるっていう感じなんだよね?
インタフェースならIHogeImplで でもまず何がしたくてこういう形にしたのかがよく分からん
依存する他のクラスを単体テストするために静的メソッドを差し替えるやつでしょ
そこまでしてわざわざ静的メソッドでラップしなくても
>>757 で十分だとは思うけど
質問者が明言した意図しか信用しない
インターフェース IHoge 抽象クラス HogeBase
Java の SL4J の、LoggerFactoryだと、 LoggerFactory の静的メソッドである getLoggerを インタフェース ILoggerFactory の同名のインスタンスメソッド getLogger に 委譲している気分
>>759 結局、それだとHogeの仲間のクラス(Hogeと同じ名前の静的メンバを持ってるけど機能が違うクラス)
全体の呼称が決まってないと名前付けられないんじゃない?
仮にそのインターフェイスをIMetaと名付けたとすると、なんかJavaっぽいから、
HogeにIMetaを実装した無名クラスのインスタンスを返す静的メソッドを実装すれば
いいんじゃないんだろうか。
つまり結論は、そもそも質問者が望んでいるような名前はいらんと。
>>755 ある機能を提供する手段として
インスタンスを作成しないで使えるstatic Hogeと
インスタンスを作成して使う○○があるわけだな。
どっちも同じ機能だし、Hoge2でいいんじゃね。
あるいは、インスタンスを作る方を普通のHogeにして、
staticな方はシステムハンガリアンの流儀に従って sHogeにする。
>>772 こっちが正解です
具体例出すと、.netでImageAnimatorってstaticクラスがあるんだけど、機能が足りてないんでExImageAnimatorクラスを作った
でも、コントロールの実装で使う際、staticクラスなのも微妙だと思ってインスタンスクラスで実装しようとして名前に迷った・・・
いやそれstaticでいいじゃん
PictureBoxのソース見てみるとImageAnimatorを使ってなくて内部でアニメーション実装してたんだ だからコントロールのアニメーション処理は独立させた方がいいのかと それにアニメーション処理はやってること同じだからインスタンスクラスにしたら便利なんじゃね?と思い至った
不正解者はボッシュート シュッ | | | | | | | チャラッチャラッチャーン♪ミヨヨヨーン… ________. \ ∧_∧ アウッ |\ \(; ´∀`) | \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
やっぱり普通に考えて質問者がOOPよく分かってないだけのような... staticで済む(状態を持つ必要がない)ものを無理にインスタンス化できるようにしたら 後で混乱すると思わないのかな。 こういうのこそMyImageAnimatorでいいよ。 っていうか、最初から具体的に質問してれば話はずっと早かったのに。
でもMSDN見るとImageAnimatorって何か妙な設計のクラスだな。 確かにこれならImageをコンストラクタにとってインスタンス化できるように 作った方が自然なような気もする。 よく読んでないから何か事情があるのかもしれんけど
>
>>777 ImageAnimatorは状態持ってる
staticな配列で
>>778 スレッドを共有するためだと思う
インスタンスを作るようにしても結局どっかでまとめて管理しないといけないから
ある意味素直な設計
ある物体が他の物体に近づいていく場合に 表面同士の距離がゼロになるとそれ以上近づけない性質の事は何と言えばいい?
「それ以上はらめぇ」
unoverlappability なんて単語は多分ない 実際に英語にあるのは inability to overlap とかか。
784 :
デフォルトの名無しさん :2013/03/02(土) 08:20:19.45
剛性(rigidity)?
exclusion
>>782-785 ありがとう
exclusionにしようかな
長くならないし一番馴染みが有るし
>>782-785 ありがとう
exclusionにしようかな
長くならないし一番馴染みが有るし
通り抜ける方は、トンネル効果
質問は「表面同士の距離がゼロになるとそれ以上近づけない性質の事」なんだから exclusionじゃなくてexclusivityでしょ。 日本語で言えば排他性。
>>781 keep out
territory
barrier
fence
座標が与えられて、その座標に回転行列を掛けてから描画する関数の名前を迷ってる というか回転行列を掛けるという動詞が見つからん DrawRotationMatrixed(...)とか造語作るのも嫌だしな
描画関数のオーバーロードの1つでいいんじゃね?
>>792 無理に詰め込み過ぎだからでしょ。
(1) 中心座標と角度を指定して変換行列(回転行列)を求める関数
(2) 変換行列で座標を変換する関数
(3) 座標(の配列)を描画する関数
全部分けるべき。
>>792 行列を渡すなら変換は回転とは限らないんじゃないの?
回転のみと決まってるんだったら"行列"は要らないんじゃないの?
>>792 「掛ける」という動詞が知りたい、というのが質問なのでしょうか。
たとえば 「4 に 9 をかける」 は英語で multiply 4 by 9 です。
あとは受動態でも何でも変形すれば良いでしょう。
ただ、私も 1
>>794 や
>>795 に同意です。
ですが、なにか事情があるのでしょう。
とやかく言うつもりはなく、深入りはしません。
Drawでいいよ別に
DrawInRotatedSystem
行列かけるんならDrawAffineでいいんじゃない
>>792 draw(Point p, Matrix m)
選択ボタンがクリックされたかどうかを判定するフラグ変数は selectBtnIsClicked でしょうか?
IsSelectButtonClicked
>>802 クリック対象が選択ボタンだけならclicked
他にもボタンがあるならselectButtonClicked
構造体やクラスが使えるならselectButton.clicked
805 :
802 :2013/03/05(火) 14:43:01.41
ありがとうございます
>>802 さんに恨みはないし当てつけるような形になるのは申し訳ないがどうか気にしないで欲しい。
ボタンをbtnとするような略をみると脳内で「のわああ!!!!」ってなる。
今まで何度もこうなったし、今後死ぬまであと何度そうならなきゃいけないのかビクビクしてる。
変数名をヘタにケチって、一体何がどうなるというのだ!!!
807 :
802 :2013/03/05(火) 15:12:21.27
サーセン おっしゃられるその通りです。 昔の慣習が染み付いていて 略語を現在でも結構使ってしまっています。
クリックなんて用語を使う世界なら、そもそもフラグ変数なんていう前時代的な ものを使うの止めた方がいいんじゃないの? 本当にフラグ変数なんか使わなきゃならないような世界ならクリックじゃなくて ダウン/アップでしょ。 bSelectKeyUpとかbSelectKeyDownとかそんな感じ。
809 :
デフォルトの名無しさん :2013/03/05(火) 20:13:39.73
click は「押下して、上がる」ところまでを含むことがあるので、 用途によってはup/downと等価ではなくなるね。
>>808 > そもそもフラグ変数なんていう
> 前時代的なものを使うの止めた方がいいんじゃないの?
プログラミングに関してはスレ違いだけど
使えばなんだかんだで何にでも応用が効くプログラミングが可能
使わないと
フラグ変数を前時代的などと言ってしまう
勘違いプログラマが考えるようなプログラミングを強制されるだろうね
クリックをダウンorアップとかいってる時点で 物を知らなすぎる 虚栄を貼りたいお年ごろの駆け出しプログラマ感丸出しで 初々しい
ちくしょう、「失せろゴミ」に勝てそうな言葉が見当たらない
Usellow Gommy さんの AA はまだかね
Item というクラスを継承して、 表示/非表示を切り替えれる機能を付加した ItemEx の名前が思いつかない なんかいいアイデアない?
Itemっていうクラス名はそもそもどうなの?
Itemには表示機能があるの? 表示/非表示を切り替えられる機能って何? 単にフラグがあるだけ?描画までするの?
Itemは通常で表示されてんの? Itemの時点で何者かわからんから無理
>>811 >クリックをダウンorアップとかいってる時点で
馬鹿だろお前。
そんなこと言ってない。
>>817 だから、「表示/非表示を切り替えれる機能を付加した」なんて情報をベースに
名前を付けたってだいたいろくな名前にならない。
これ毎度毎度このスレで言われてること。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
〜ableItem だろうな
>>820 Modelとviewが混じってるようなイヤナ予感するよなw
>>830 Item って例が悪かったと思ってる
表示/非表示の設定できないコントロールがあると思ってくれればいいよ
それにしたってコントロール(?)自体が拡張されるべきかどかはアレだよな。 Map<Control, bool>の変数一個でまかなえないの?とも、 コントロールを所有してるやつのレベルでなんかを切り替えるメソッドを公開し、 その裏でチョコチョコうごくうちの一つとして、それらのvisibleを管理してやりゃ十分って肝。
>>832 うん。だから外から管理するようにした
いい名前が浮かばないときは設計が悪いって身にしみたよ
『C言語を用いた変換機』を英語にすると次のどちらでしょうか 「Converter By C」 「Converter With C」 『手法』は by を用いるとの事なので 「Converter By C」 が正しいのかな と思いつつ プログラミング言語は『道具』でもあるわけで 「Converter With C」なのか?と頭の中でループ中
C言語を用いて何を何に変換するの?
>>835 『C言語を用いた変換機』は日本語としてもちょっとおかしい。
普通は『C言語で書かれた変換機』とかでしょう。
つまり "a converter written in C"
Cコンパイラの類かと思った
Converter By C
a converter implemented w/ C
>>835 英語はモノの関係がはっきりしていたら、日本語のように曖昧な関係を書けない
くどい説明を考えてみたらいいね
「これは、C言語で書かれ、コンパイルされた何かしらのコンバータである」
>>837 が正解だね
converter in C だけでいいんじゃないの? 「in 〜」だけで「〜語で」って意味になる written があっても別にいいけど
>>842 それじゃ「Cの中の変換機」。
そもそも"in C"は副詞句だと思われるから修飾するのは普通動詞でしょう。
This converter is written in C language. とreadmeに書いておけば万事解決。
使用した言語名を明示する意味あんの?
それ具体的か?
具体的だなぁ。
例によってバカの壁だな。 "in C"が副詞句以外の用法で使われている具体例を出せと言ってるのに 得意げに検索結果を出して何の意味があるのか全然理解できない。
ああやっぱこのアホか
「C区画にあるコンバータ」なんて誤訳されないように文脈は整える必要があるな。
File converter in C plus plus とか Currency converter in C とか いくらでも検索に引っかかってんじゃん
副詞句とかそれっぽい言葉持ち出しても英語力が無いのが隠しきれてないね
もちろん文脈的に動詞が自明な時に省略して書くということはあるはずだけど、 そんなのは文字通り文脈に依存した書き方なわけでいつでも使えるわけじゃない。
Numerical Recipes in C も読んだ事無いんだろう
>>854 だからそれはwrittenとかdeveloppedが省略されているだけ。
省略できるかどうか(読み手がそれを省略と理解できるかどうか)は文脈に依存するわけで、
文脈自由にそんな書き方が出来るわけがない。
converter 自体がプログラムなんだから その状態で in C と言えば C 言語以外の何者でもないだろう
その検索結果の場合だと
ある特定、あるいは不特定のコンバータではなく、総称としての名称に付けられているな
冠詞や不定冠詞が付くような名称であれば明確にした方がいいんでない?
>>835 が何のコンバータを示しているのか分からんけど
>>859 >>843 こういう指向回路の人が他人には読解不能なコードを量産してるんだろうな。
曰く「それぐらいわかるだろ?」
わからねえってw
馬鹿が蛇足でゴチャゴチャ言ってるようだけど 結局Converter in Cでいいわけか
短く行くならそうだな
馬鹿だと思われても良いなら、の間違いでしょ。 もちろん日本語だって正確に使える奴は実は少ないわけで、 質問者には悪いけど仕事仲間が「C言語を用いた変換機」みたいな日本語に 何も疑問を感じないレベルなら、そりゃ恐らく何の問題もない。
やっぱ馬鹿だねぇ
Cは言語なので、byやwithでなくinが自然 副詞句でないとと言ってるアホがいるが、 プログラムの世界では「〜による」という形容詞句で普通に使われる
>>868 Numerical Recipes in C
ここはいつから英語のスレになったんだ
バカの壁君のバカの壁が一番高い
英語コンプレックスを持つバカの壁君が来てから
即レスしてたバカの壁君が 急に黙ってワロタ
>>869 だからそれはwrittenが省略されてるだけ。
その場合はほぼ確実にそう推測可能だから良いが、いつでもそうじゃない。
writtenが略されてるわけじゃねーよ
省略ではなくwrittenを付け足すこともできるだけ
この場合written付け足したらおかしくならないか?
それもそうか
>>874 に追記。
今思いついたが、"Numerical Recipes in C"は、writtenが省略されているという以外の
別の解釈も可能だとは思う。
それは、例えば"reading skill in English"のinの用法と同じだという解釈。
つまりこの解釈で直訳すると「Cにおける数値(解析)のレシピ」
どっちの解釈がより正しいのか正直よく分からないが、いずれにせよこちらのinの用法は
>>835 には使えない。
使えるよバーカ
「in Japanese please.」(訳:日本語でおk) 「〜 in C」は「C(言語)による〜」と訳すことができる 「by C」なら「C言語によって変換機」語訳はともかく、変換機を作ったのはC言語じゃない。プログラマだ 「with C」なら「C言語と共の変換機」C言語と共に歩んできた変換機?
それは speak を略してるから副詞句 バカの壁君に隙を見せてはいけない
numerica recipes in C はC言語で数値計算するためのレシピ集であって、 レシピがC言語で書かれているという意味ではない。 converter in C はconverterがCで書かれているというよりも yaccやlexのようなC言語による記述を支援するためのコンバータな印象を受ける。
>>835 converter implemented by C だから、ニュアンス1個抜けてるやん
887 :
835 :2013/03/10(日) 12:10:58.11
元日本語が確かに変でしたね みなさんのご意見どれもとても参考になりました ありがとうございました
>>883 前半、まあそうかもしれない。
つまり
"Numerical Recipes in C"
は
"numerical recipes in programming with C"
と解釈する方が正しいかもしれない。
どっちにしろ、少なくとも
>>835 の意図する意味で"converter in C"とは書けない。
書けるよバーカ
まぁお前ら間違ってる間違ってないでスレ浪費してないで、いっちょセンス良い奴を頼むよ
改行コードが混在した文字列の改行コードを統一する関数名てなにがいいかな
NormalizeLineFeedCode とかどうだろう。長いなら最後は -LF でもいいが
fixLF
RegularizeLineFeed() 改行コードを第1引数で指定できるなら RegularizeLineFeedTo() ちょっと意味合いが違うかな??
replace newline
LineFeedを使うとLFと誤解しかねない
normalize newline
fix newline
そのメソッドがどこに置かれてどれだけ使われるかだな。 どうもprivateメソッドで十分に見えるし、そうなら、__normalize(String raw)にして、 改行だけじゃなくてほかのことも一緒にするわ。漢字コードとか。
たいていユーティリティ系で使う privateはありえない
そう? 入力直後付近や出力直前でケアすりゃ十分に見えちゃうけどな。
>>897 でいいんじゃね
俺なら「NormalizeNewline"s"」にしているだろうが、この複数形は合っているんだろうか
normalizeはこの場合ちょっと違うな。 fixの方が適切だと思う。 あとはsanitizeとかuniformとかもあるけど、やっぱりfixが短くていいな
↑アホ
ReplaceNewLine
RegularizeNewLine
UniformNewLine
uniformて動詞じゃないやん
uniform 【他動】 〜を均一[同一・同型・一様・同様]にする、そろえる、等しくする 〜にユニフォーム[制服]を着せる
unifyかと思った
nkfL
unifyだと集めて合体させるイメージ
偶数か奇数かを格納する変数の名前を付けたいんですが日本語でもなんていうのかよくわかりません。 変数の中には odd か even が入る予定です。
ぱりてぃ
>>916 まさにその意味です。ありがとうございます。
どういたしまして
言葉ではとうてい言い尽くせないほど感謝しております。 ほんとうにほんとうにどうも有難うございました。
礼には及ばんよ
変数名ではないが、同じ軸で反対向いてたり、それらの軸が直交してたりする場合の総称って誰かうまくできる? 上下、左右、上下左右、東西、南北、東西南北、前後。 けっきょく人類は、それらをくっつけただけで総称しているようだが…。 むかしこれ考えようとして何一つ良いの思い浮かばなかった。
いや、東西南北に対しては方角、という言葉があるか。
ならば 上下左右は方向だな
>>923 天才キタコレ。
というかひょっとして俺がドアホなだけだたのかorz
正直、質問の意図も回答の意味のよう分からんが、問題が解決して何より
>>925 具体的に言うのなら、以下のxxxに良い名前当てはめれる人いる?ってこと。
enum xxx {LEFT, RIGHT};
enum xxx {UP, DOWN};
enum directions {LEFT, RIGHT, UP, DOWN};
>>926 directionLRとかUDにするかなぁ。
x directions y directions
directionH directionV
NorthSouthEastWest.North ←冗長? Directions.North ←一見ほどよく抽象的だが、日本語で言う方角と方向を使い分けれない? NSEW.North ←簡潔にして十分?
932 :
デフォルトの名無しさん :2013/03/18(月) 20:45:11.14
「向き」というニュアンスだと orientation もそこそこ見かけるかなぁ。
.netだとOrientation.Vertical/Horizontal
934 :
926 :2013/03/19(火) 09:09:13.95
おまいら、沢山のご回答どうもありがとうございました! ありがたく参考にさせてもらいます。
どういたしまして
936 :
デフォルトの名無しさん :2013/03/19(火) 15:18:51.19
海外でも似たような質問見てるけど、おまえらってやっぱり馬鹿なんだなw
煽るだけの馬鹿はスルーで
このスレを訪れた皆様へ 自分で考えろゴミww
↑他人との議論がいかに大事か知らないガキ
明らかに議論などいう流れじゃない件
941 :
デフォルトの名無しさん :2013/03/19(火) 22:20:43.64
ものすごく馬鹿w
大した技術力もなしに議論すること自体おかしい
ゴミスレw
東西南北などの方向は direction 向き(横向き、縦向き、など)は orientation 方位角は azimuth
945 :
デフォルトの名無しさん :2013/03/20(水) 13:20:35.44
向きといえば、 縦長がportrait(肖像画) 横長がlandscape(風景画) やっぱり美術分野で長い伝統がある用語なんだろか。
俺は今すべてのレスがウザいと感じているんだ
何その不自然な日本語訳みたいな文章
方向がdirection 姿勢がorientation カメラがある方向を向いているとする そのカメラはどんな状態でその方向を向いているだろうか 90度回転させて、横に撮ることもできるし、地面が上にあるように撮ることもできる どの方向を向いて、その方向を軸にどれだけ回転させるのか、これが「姿勢」である 「方向」にはその回転量が含まれないので、例えば頭がどの方向を向いているかが分からない
…と、考える小学生であったw
Microsoft.Xna.Framework Matrix#CreateLookAtのcameraUpVectorみたいな話?>姿勢 public static void CreateLookAt ( ref Vector3 cameraPosition, ref Vector3 cameraTarget, ref Vector3 cameraUpVector, out Matrix result )
おっと。 Matrix.CreateLookAt でよかったね。
heading, pitch, roll
馬鹿
俺の心の琴線に触れたから、このスレの奴らは馬鹿
>>950 方向:GetNormalized(cameraTarget - cameraPosition)
姿勢:CreateLookAt()のresult
方向はVector3で現すことができるが、姿勢はMatrixかQuaternionが必要になる(3D話)
なんだその条件w
イミフメイ
イミフメイって文字をみるとフジイフミヤを思い出す
フジイフミヤ
視線方向のベクトルだけでは頭の方向が分からないでしょ cameraTarget - cameraPosition を正規化したものが視線方向のベクトル cameraUpVector は頭方向のベクトル CreateLookAt()は、視線方向のベクトルと頭方向のベクトルから、姿勢行列を作る関数 方向と姿勢の違いがお解かりか?宜しいか?
ゲームでオブジェクトが破壊可能かどうか、破壊するメソッドをbreakを使わないで言うと?
destroy
>>961 破壊可能か?: isDestructible isRemovable isCleanable isClearable isFreeable...
破壊する: destroy remove clean clear free delete release shift eliminate
___
| |
| |
|
>>1 .|
| の |
,,,. | 墓 | ,'"';,
、''゙゙;、). | | 、''゙゙;、),、
゙''!リ'' i二二二二!゙''l!リ'''゙
‖ `i二二二!´ ‖
昌 |: ̄ ̄ ̄ ̄:| 昌
| ̄:|_|;;;l"二二゙゙l;;|_| ̄:| チーン
| :|::::::| |;;;;;;;;;;| |::::| :|
| :|::::::|┌─┐|::::| :|
./゙゙└‐┴ ┴l,,,,,,,,,,l┴┴‐┘゙゙゙゙\
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
 ̄|三|三三|三三三三|三三|三| ̄
| |::: |: : : : |:: | |
| |::: |: : : : |:: | |
/_|::: |: : : :.|:: :|_ヽ
_|___|;;;;;;;;;;|,;,;,,,,,,,,,,,,,,,;,;,|;;;;;;;;;;|___|_
l;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l
うめ
新学期のクラス名をどうしよう
もも組オススメ
すみれ、もも、さくら
次スレは
970 :
デフォルトの名無しさん :2013/04/01(月) 05:04:15.33
ある変数が一定以上の値か調べるbool関数
liuhrvu2hr2urhp498rhvp4iuhtp3984y5o7438y5ovcwuho5vuhpo285hop3ho3489h5o9b8hovbo43ho598vho4h8o7
>>970 check, validate, equal_or_greater, equal_or_higher
GreaterEqual
>>970 悪いけど提示してる条件にセンスの無さが出ちゃってる。
そういう関数の名前を付けるときに重要になるのは、それが「一定以上の値か調べる」
ものであるなんて情報じゃない。
重要なのは、その比べる対象である閾値が何であるかだ。
何が言いたいのかさっぱり
要は、 たとえば ある変数がある値以上だったらある文字列が編集可能である という条件だったら isEditable にしたりするのであって、 具体的に何が実現されるのかやどういう状態なのかを変数名にしなきゃいけない。 「一定以上」だとか未満だとかよりも大切な情報があるはずだってことでしょ。
…ごめん、>= だな
>>977 初めからそう言えばいいのに、
なんでわざわざ「センスの無さ」なんて余計なこと言うの?
気づかない間に人を傷つけてるよ
そういう性格なら、もうどうしようも無いから仕方ないけど
982 :
981 :2013/04/02(火) 07:02:39.47
無慈悲な一等ごめん待機
とはいえ、色んな処理の更に内部で使うような関数だと、
上手く抽象化出来ない、あるいはしないほうが良い場合もあるよなー。
そういう時どうしてる?
内部用なんだから関数名なんか気にする必要ないじゃん!と言われればそれまでなんだけども。
>>980 次スレお願いしてもいい?
よしきた
>>982 別人です まぎらわしかったか
内部用というかほんの一時的な処理に使うだけの変数は、きちんとした名前をつけると、
なにか重要なことに使ってるような誤解を与えかねないから、適当につけてる。
hogeCountとかsplitedFooとか。
あとこまかいところのコードをいじるのはたぶん重大なインシデントがある時だと思うから、
わかり辛い箇所なら、変数名よりもコメントに労力を割くべきだと思ってる
ファイルのパスと、そのファイルのサイズを格納する構造体の名前は、 何が良いでしょうか struct ????? { const char * p_path; size_t size; }; FileDescriber では少し意味が曖昧な気がします。 何というか、ディレクトリツリーという一つの大きな入れ物の中で、 あるファイルはここからここまでの範囲にあるという事を示すイメージです。 p_path で先頭ポインタを指し、size で大きさを示す、みたいな。
>>990 ファイルを複数選択するイメージなら Item
992 :
990 :2013/04/02(火) 22:23:57.49
>>991 ありがとうございます。
しかし、Item も Describer と同じように、
今回の要求に対しては懐が広すぎる感があります。
どのようなファイルかという情報はまったく無いです。
単にファイルの位置と大きさという2の情報を格納するだけです。
たとえば後で、この構造体にファイル拡張子の情報も入れようとか、
そんなことはありません(むしろ入れてはいけない)。
これがもしファイルではなく幾何学的な空間を表しているなら、
Range とか Region などと名付けたいところです。
994 :
デフォルトの名無しさん :2013/04/02(火) 22:41:56.93
___
| |
| |
|
>>1 .|
| の |
,,,. | 墓 | ,'"';,
、''゙゙;、). | | 、''゙゙;、),、
゙''!リ'' i二二二二!゙''l!リ'''゙
‖ `i二二二!´ ‖
昌 |: ̄ ̄ ̄ ̄:| 昌
| ̄:|_|;;;l"二二゙゙l;;|_| ̄:| チーン
| :|::::::| |;;;;;;;;;;| |::::| :|
| :|::::::|┌─┐|::::| :|
./゙゙└‐┴ ┴l,,,,,,,,,,l┴┴‐┘゙゙゙゙\
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
 ̄|三|三三|三三三三|三三|三| ̄
| |::: |: : : : |:: | |
| |::: |: : : : |:: | |
/_|::: |: : : :.|:: :|_ヽ
_|___|;;;;;;;;;;|,;,;,,,,,,,,,,,,,,,;,;,|;;;;;;;;;;|___|_
l;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l
>>990 その「ファイル」っていうのは俺様用語?
同じ値をパスって言ったり位置って言ったりもそうだが、それ以外にも
全体的に何を言ってるのかよくわからない。
996 :
990 :2013/04/02(火) 22:56:28.71
>>995 いえ、ファイルは Linux や Windows などの普通のファイルです。
>>992 でパスの事を位置と言ったのは、
その後の「もしファイルではなく幾何学的な空間を表しているなら」
という喩えを理解していただけるようにと、伏線を張っただけで、
同じ意味です。
> 全体的に何を言ってるのかよくわからない。
最初に言いましたが、ファイルのパスとサイズを格納する構造体の名前を考えています。
すいません、どの辺りが分かりにくいでしょうか。
できる限り詳しく説明したいと思います。
少なくともパスとサイズが範囲を表現している、という発想は謎だなあ。
俺もItemが良いと思うが… それならFileじゃだめなのか?
やっぱり何度読んでも質問者の意図が理解できないなあ。 いつでもファイルシステムから取得できるはずのサイズを、なぜあえてパスと一緒に 構造体にキャッシュしておきたいのか、そのあたりの動機を説明しないと 適切な命名は難しいと思う
1000 :
デフォルトの名無しさん :2013/04/02(火) 23:10:48.18
ちーん
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。