クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
クラス名、変数名のつけ方に悩んだら書き込むスレです。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/ そうですか、型はUriですね。もちろん、文字列にして内部でUriにしてもいいですが。
で、そのUriのパスのフォームからリソースタイプを判定するのですが。
Uriはビルトインクラスなので、メソッド追加できません。拡張メソッドみたいのもありませんし。 後、解析結果なんですが1つのリソースタイプだけじゃなく複数の情報が返されるのです。
たから、現状クラス名がUriParsedResultとかにしてて..
後parse以外にanalyzeとか思いつきましたがなんか大袈裟というか 最初のbool isAResourceUri
で、返される情報は1つだけみたいな誤解を与えてしまいましたすみません web全然知らんけど、要するに実際にファイルをwebから拾って中身を見て解析するわけじゃなく、
単純にパスの拡張子を見るだけってこと?
そうならそこを強調しないとまずいよねたぶん。知らんけど。
適当な名前空間に収まってる前提で
ResourceType PathParser.GetType(Uri uri) そうですね。実際にWebから中身拾ってくるわけじゃありません。例えば
http://hoge.com/users/[userId]
このUriならuserを表すuri
http://hoge.com/tweets/[tweetId]
このUriならtweetをあらわす
これを解析してどのリソースを表すかと、例えばuserを表すuriなら抜き出したuserIdも返す感じです >>750
> Uriはビルトインクラスなので、メソッド追加できません。
言語がわからんけど(Javaのfinal classとかC#のsealed classとかで)派生できないようにされてるの? >>754
これ、そもそもURIはリソースを指しているんじゃなくて、
アプリケーション(?)の種類とそのパラメータを表してるんじゃないの?
その意味じゃ全然URIじゃないねw ResourceUri ResourceUri.of(Uri uri)
ResourceUriはtypeやidなどを持つ getURIInfo
これなら、いろいろふんわりやから気にならんやろ。w >>759
RESTのUriはあんな感じですよね。
>>760
ふんわりしてていいかもですね。 A, ファイルをバイナリとして開いて検索
B, 起動中のプロセスのメモリを検索
検索部分は共通した処理だから同じクラスでやりたい
この場合はクラス名何がいいかな?
MemorySearchとかだとBだけになるし
BinarySearchだとメモリもバイナリでいいの?ってならないかな? >>763
class BinarySearch {
public BinarySearch(String FileName){ … }
public BinarySearch(Pid ProcessId){ … }
…
}
みたいな感じでいいんじゃね? Binary searchは「二分探索」って意味になるからそれは避けたほうがよいと思う >>763
検索対象のデータはストリームみたいに抽象化するんだろうから、
「何から」検索するかではなく「何を」検索するかに注目して
名前を付けた方がいいんじゃない?
だとするとざっくり検索って言われてもな感じ。
これだとFinderとかSeekerとかぐらいしか言いようがないよね Seeker
Searcher
SearchEngine ありがとう
A, バイナリエディタの検索部分
B, メモリエディタの検索部分
検索部分だけのプロジェクトを作ってAとBに使い回すなら
両方で違和感の無い名前がいいよなってのが経緯
「何を」と言われると
A, 修正箇所
B, 値の変動に応じて絞り込み検索してアドレスを特定
こうなるから同じにせずに分けた方がいいのかなと思えてきた
でもやってる事は同じだから共通化させたいけどこういう時は分けるもんなんかな? >>770
よほど特殊な機能を持ってるなら別だけど単なる検索機能だけならコード量もたいしたことないだろうから俺なら別々にしておくと思う 共通部分をis-aなりhas-aなりで共通化することに問題はないと思う 簡単な名前でいいならBinaryDataSearcher
Dataみたいな語は情報量が少ないから削られがちだけど、この位置のDataを無造作に省略すると修飾先が変わっておかしなことになる
もう少し真面目に考えると、バイナリかテキストかという初歩的な分類用語よりも、エンディアンとか解釈した結果のバイトストリームを扱ってるならそういう名前の方が適切
ほかには多少語弊が生じるけど、お好みでProcessとかProgramとかExecutableあたりの語を使ってもいいかも >>770
要するに、
(1) ストリームの中から
(2) 指定されたバイト列に完全一致する場所を探す
ってことね。部分一致とか、パターンマッチと、CRC的な符号が一致するとか、そういうのじゃないわけだ。
じゃあ「バイト列の探し屋」か?
ByteSequenceFinderとかByteArraySeeker みたいな感じ? Cで言えばstrstrのバイナリ版GNU拡張のmemmemだよね。
ファイルが対象だとしてもmmapすれば同じだし。 そこまで抽象化するなら検索アルゴリズムの実装になるから検索アルゴリズムの名前でいいんじゃ ありがとう
そう、完全一致だけで部分とかパターンとかは無し
この流れをヒントにして考えてみるよ
ありがとう テキスト検索で、検索ボックスに入力する文字列と検索対象の文字列(本文)はどう名付けるのが無難ですか? >>779
前者はkeyword?
後者は置かれる文脈次第だろうね。シンプルにtextで通じるならそれでいいと思う
他の候補は
target, targetText, scannedText, searchee
ググってみたがsearcheeって言葉は正式な英語じゃない(当たり前か)
でも意味は分かると思う box, search という単語を変数名に入れた方がいいと思う
同じような変数が何種類か出てくることになると思うので 検索文字列はsearchStringがよく使われる印象
boxみたいにUIの形状に基づく変数名は本当にそれが妥当なのかよく考えてから付けたい UI要素につける名前なのか
UIから受け取った検索文字列と検索対象文字列を一時的に格納するローカル変数につける名前なのか
それを渡す検索メソッドの引数につける名前なのか
コンテキストによって適切な名前は変わってくるから
それを共有しないと時間の無駄 普通に考えれば>>779の人が検索ボックスと言ってるのは
その方が話が早いからでUI要素の名前を聞いてるわけではないと思うよ
英語のkeywordに相当する日本語って意外とないから。
検索文字列とか言っても見つけ出したい文字列じゃなくてスキャンされる方の
文字列を指してると誤解される可能性がある。 例えば、Twitterのツイートがあります。ツイートが他のツイートへの返信の場合、
どのツイートへの返信かを表すIN_REPLAY_TO_TWEET_IDみたいのがあります。
で、この逆の関係を表現したいのです。
あるツイートがあって、このツイートへ返信してるツイートのIDsを表す場合
なんて名前がいいでしょうか? この手のってコード書いてると訳分からんようになるんだよなー 連投すまん
上2レスをまとめて書いたらNGワードで蹴られたから分けてみたら通った
ERROR: Rock54: Warning:NG〜ってやつ
何じゃそら 788のにそのまんま返してしまったけど、replyだったねw >>789で終わってたw
逆にこれ以外に何があるんだw
ついでに、IN_REPLAY_TO_TWEET_IDなんて意味不明だから
素直にparentとかした方がいいんじゃないの? in reply to tweet id は返信先のツイートのIDって意味じゃないですかね?確かTwitterAPI のJSONはこういう名前のフィールド持ってたから外人の人が命名しただろうから、盲目的に信じてたが、おかしいのか? Tweetクラスに、InReplyToプロパティとRepliesプロパティ追加しとげばいいか。どっちがどっちになりそうだけど仕方ないのか in_reply_to_tweet_idってのはTwitter APIの仕様だから変えるのはいささか難しいだろうな
リプライオブジェクトを格納するrepliesと、リプライIDだけを格納するreplyIDsを名前で区別したい場合はある
名前に対称性を持たせるならreply_tweet_ids つか今見ると俺がreplayだったのか。すまん、typoしてました >>795のparentというアイデアを借りて、
単にParentとChildren。これじゃ何の親子関係か分かりづらい?のでReplyParentとReplyChildrenじゃくどい?
で最後InReplyToとReplies
皆さんはどれがお好みでしょうか? 特定のツイートとリプライは1対Nの参照関係だけど親子関係ではないし
ドメイン用語にParentやChildは無いのでそういうのは入れないほうがベター
InReplyToとRepliesがいい 循環てw
明日書かれるツイートに今日返信できるのかwww ついでに言うと、論理的には木構造は循環する可能性を必ずしも排除しないはず。
ツイートは循環なんかしないけどね >>802
ツイートとツイートの関係(=relationship)の話と
それをプログラムで扱う際にどういうデータ構造で表現するのかという話はレイヤーが違う
親子関係じゃないということとツリー構造で扱うということは両立しうる話
特定のデータ構造で扱うことを前提とした命名をすべき状況で
ツリー構造に依存した名前にしたければそうすればいい ツリー構造であるかどうかを議論してもしょうがないと思うぞ
ツリーの関係性を有するデータの名前に漏れなくChildrenをつけるべきか?
これは常には成立しないよな
ツリー以前に、単なる1:Nの親子関係を有するデータにも同じことがいえる
雇用関係ならEmployerとEmployeesが妥当であって、EmploymentParentとEmploymentChildrenという命名は拙い >>806
なるほど、では君はファイルシステムで上位のディレクトリのことを親って言わないんだねきっと。
どういう問題領域のどういう対象であろうと、それが木構造にみなせる以上、親は親だ。
普通はそう考えると思うけど 「金槌しか道具を持っていない人は、何もかも釘であるかのように取り扱う」by マズロー >>809
ふつうじゃねえよ。異常。
独立したものの参照関係がツリーのように見えているだけで、本質的には親子関係が成立するツリーじゃないぞ。 >>811
それは君がツリーっていう言葉の語感に影響されているだけ。
だからUIみたいに「見える化」されているものだけを指すと勘違いしてるんだろう。
抽象的な思考が苦手なタイプによくある勘違いだ。
木構造は単に論理的な関係を表現しているだけだ。
っていうか自分でツイートとそれに対するリプの関係を図示してみろって。
それ、ツリーそのものだろアホか。
っていうかだから、直上のディレクトリを親と言うのか言わないのか、答えてみろって。
頭悪いにも程があるよほんと >>810
こいつも何か言ってるつもりなんだろうけど馬鹿だよねw
悪いけど「バカの一つ覚え」なのはそっちの方だ。
何もそれを表現するより具体的な表現や用語があるのなら
木構造だの親だの、そんな抽象的な言葉を使つ必要なんかない。
ディレクトリの例もそうだが、それがないから「親」と呼べばいいじゃないかと言ってる。
なのにこの手の御仁は「もっと具体的な言葉を使うべきだ!!!」というバカの一つ覚え。
笑えるね 本件はツリーだけど親子関係ではない
ディレクトリではなくメールボックスをツリー表示したようなものだから、
返信メールを子とは言わないしレス元のメールを親とは言わないけどツリーではあると
と横からレス >>814
論理的な関係を表現していると言ってるそばからこれだ。
何を言ってるのか意味が分からないよ。 あ・・・この人は・・・
君以外全員馬鹿ってことでいいよ
円満解決だ いやいや、全てにおいてあなたの大勝利で結構ですよ
その他の犬共に侮蔑の言葉を投げつけてくださいワンワン しかし、ツイートとリプの関係を図示するってそんな難しいか?w
10歳ぐらいの子供でも図示なんかしなくても頭の中で描けると思うけど。
それ以前に親が変だと思うならもっとふさわしい表現を出せばいいのに。
ここそういうスレでしょ。
少なくともin reply toじゃ「に対する返信」で、意味不明は言い過ぎとしても
分かりやすいとは言えないよね。 見た感じメインは罵倒みたいだし議論する気には見えないな
おっとワンワンワンワンww >>813
具体的な表現がないって、InReplyToとRepliesというまさに具体的な回答が出てるだろ
その回答を論理的に否定しないと皆は納得しない
お前がなんで不満なのかはわかるよ
英語ネイティブであるAPI設計者の名付けに対して
> IN_REPLAY_TO_TWEET_IDなんて意味不明だから
なんて赤っ恥なツッコミをしてしまったから引っ込みがつかなくなったんだろ?
でももういいだろ
間違えることもある
そこからどう行動するかが大事なんじゃないのか >>819
言えないよね、っていうのは感覚だよね
女子っぽく同意を求めてもそれなと答えてくれるのは仲のいい子だけ
最終的に感覚に頼るしかないなら、自分の感覚と他人の感覚を同じように尊重することだ
しかし周囲が全員、低い英語力のコーダーしかいない環境ではChildrenの方が通りがいいケースはあるだろうな ID:ZDqxsHuV 必死過ぎて見てて恥ずかしくなる >>815
そうそう、1対Nになる論理的な関係はすべて木構造ですよねw
論理的な関係で言えばデスヨね
「論理的」とは何か「関係」とは何か
それすら理解できてないバカには何を言っても無駄ですよw
図示してツリーになるやつは全部Parent/Childrenですもんね
抽象的思考が苦手なバカwはこんな簡単なことも理解できないんですかね?
「バカの一つ覚え」とはよく言ったもんですねw 他人をバカにするなら
少しは書き込みを見直した方が良いかと >>806
構造まで名前に入れるのはプログラムの世界では良くあることだよ >>815
君が論理的にっていいながらディレクトリ構造を持ちだして親子親子言ってるから、
メールボックスのツリー構造を例に出してこれは親子とは言わないよなってツッコんだら
意味が分からないとかもっとふさわしい条件とか、君こそ馬鹿の一つ覚えの
主張しかせず全くツッコミ内容に触れずに相手を馬鹿にすることに全力賭けてるもんだから、
ワンワンとしか言えないなって話になる 有向グラフなのか無向グラフなのか
順序関係なのか半順序関係なのか
この辺で親子という表現を使うかどうかが決まる この件が親子関係になるんなら、この一連のレスバにも親子関係があることになるが
ちょっと意味が分かりませんね >>830
決まらん。
ひょっとして、ツリーバカと同一人物? 各ノード
親は高々1人
子はゼロ人以上
ループはない
グラフでいうと
親から子への有向単純グラフ
全ての点は、それに向かう辺が1個以下
閉路は含まない
連結の条件は不要かな >>825-826
ちょ、皮肉殺しのマジレスやめてー 自分が分かってない事を分かってないってほんと怖いね 皮肉って言葉の意味わかってんのかコイツ
自分が議論に窮した時に使う言い訳じゃねえんだぞ >>829
メールボックスのツリー構造も親子というと思うけど
なぜディレクトリは親子で、メールボックスは親子ではないの?
構造はどちらも同じだろ >>841
俺の親はお前なの?
俺が>>829にも安価付けてレスしたら兄弟にもなるの?
ディレクトリ構造とは全く違うわな >>842
安価もツリーと見なしたら、親子関係にあるとも言えるでしょ
見方によって変わるものを、一面だけ見て決めつけるのも違うと思うんだがな 「お前を俺の親と見なしたら、親子関係にあるとも言えるでしょ」w メール
送信者→親
受信者→子
受信者が送信者に返信
元の送信者→親であり子になる
受信者も→親であり子になる
だからおかしくね?って話だと思ってた 別にコードを書くにおいてメールを親子関係としてネーミングするのは自由にしたらいいと思うけど、
送信者X→相手A,B,C
A返信→X
B返信→X,A,C
この組み合わせが変わったりして続くとか普通にあるから、親子関係に当てはめられても人間から見て分かりやすいか?って話
元レスのtwitterの件も同じカテゴリ
もちろん親子関係が成立するメールもあるけど、必ずしもそうならないって話
なのでディレクトリとは明確に違う(ハードリンク云々はおいといて) まだこの話してるのか
いやメールのスレッドが親子じゃないという例は微妙かなと思ったよ
でも蒸し返してもいいことないぞ
結局スレの趣旨的にはメールの返信元にあたる変数をParentと名付けるのが妥当かどうかという話になる
どう考えてもReplyToだろ
RFCで定められたスタンダードにはかなわんということでFA
もうこの話は勘弁 元の話はTwitterやぞ
何がRFCやねんアホか 何の用語に採用されてようと意味が通じれば別にいいんだけど、
in reply to ってたぶん副詞句なんだよね。
まあそういう不細工さには目をつぶるとしても、
InReplyToっていうメンバー変数を持つクラスのインスタンスがあるとして、
InReplyToのtoがInReplyTo自身に掛かるのか、それともそれを内包する
インスタンスの方に掛かるのか、自明じゃないように感じるよね
parentならこういう曖昧さの問題は存在しない >>849
前置詞句は使い方次第で副詞句にも形容詞句にもなる
中学校で習わなかった?
A tweet in reply to the tweet
Tweetクラス/構造体のInReplyToで保持してるTweet IDがどれを指してるのか誤解のしようがない ■ このスレッドは過去ログ倉庫に格納されています