クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
クラス名、変数名のつけ方に悩んだら書き込むスレです。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part27
http://echo.2ch.net/test/read.cgi/tech/1476572490/ 本来は親子でないものに「parent」とかつけたら、そのほうがややこしくてたまらんわ。 グラフ理論とか知ったら発狂しそうだね
なんでこれがpathなんだとか、どこがheadなんだとか >>848
最初の元ネタはTwitter
最近になって841が蒸し返したのはメールの親子関係をツリーと呼ぶ是非の話
Twitter APIはInReplyTo
メールはReplyToヘッダがRFCで定められてる
スレの趣旨は変数名として何が妥当か
流れを理解せずに勘違いで罵ってるアホはお前だよ >>850
何を言ってるのか意味が分かんないねw
それ、which is が省略されてるんじゃないの?w
それ以前にtoがどっちに掛かるのか自明でない、という反論として成立していない >>852
抽象と具象の違いってわかる?
わっかんねえんだろうなあ。 お前らの対立軸はマクロで見るかミクロで物事を見るかの違いだな。
メールやツイートの返信関係は、マクロで見るとツリーではない。というのも、返信と全く関係ない独立したメールがあるからこれらを考慮して全体として見るとツリーにはなってない。
実際に返信関係あるメールだけのミクロで見ればツリーになるけど。 プログラマーって中1レベルの英語も理解できないんだねw ディレクトリ構造の場合は必ずルート以外は親いるから、まさしくツリーになるけど。
メールやツイートの場合は返信と関係ない独立したメールのインスタンスが存在するから、返信関係はツリーであるとは言わん。
もちろん、実際返信関係が成り立っってるミクロな部分だけ見ればツリーだけど。 >>853
Twitterの話→ディレクトリ構造を例に親子関係論展開→Twitterは親子関係じゃない→
ディレクトリ構造を再度提示してこいつが親子なのにTwitterが親子じゃないのはおかしい→
本筋はこれだ
この流れにメールを例に出した横槍が入ってるだけで、この横槍にまた亀レス横槍が入ってる構造に
お前がRFCを持ちだして「本筋」にFAを突きつけてるアホ丸出しの構造だ
この親子関係wwくらい理解してから発言しとけ
まあこんな奴が居るからレス安価(メール)は親子関係じゃ分かりにくいよってなるわけだが >>860
それってWindowsみたいにドライブ毎にルートがあるような感じじゃないの? >>863
何を言いたいのか意味不明なんだけど…
どこからムリヤリとか出てきたんだ? ディレクトリ構造がツリーの親子だって?
よしハードリンクの話をしようぜ
ジャンクションでループを作ろう 実際の親子でも近親相姦とかあるわけでそんな例外的な話でドヤるのはどうかと思うなw クソくだらない話が延々と続いてるのでちょうどいいかなと
それとも有意義な議論だったのかこの状況 結局バカの壁は厳然として存在する、という事実が再確認されたまでだよ
世の中には具象の中に抽象的な構造を見出す類の思考がどうやっても出来ない人が存在する、というねw ツリー構造という具象でしか見れてないことにすら気付かないツリーボーイww >>868
いやまったく。
具象と抽象の具合を図るのが命名の妙であり、このスレの目的。
なんでもかんでも抽象化すればいいってもんではない。
たまたまツリーに見えたとしても、本質的にツリーとして表現するべきかどうかを考えんとな。 何度も同じ話を繰り返すのも壁の向こう側の人の特徴>>813
壁の向こう側の人は、
- 自分を包含するディレクトリを親と呼ばないのか、と問われても答えずに流す
- in reply toは「〇〇に対する返信」だが、「に対する返信」という変数名では○○に何が入るのか不明確
だと指摘されても反論せずに流す
要するに他人と議論する以前に自分自身を欺いている。
自分に自信がないから、間違いを認めるのが怖いんだろう。 ○○に何が入るのか、じゃなくて変数に何が入るのか、だね訂正します >何度も同じ話を繰り返すのも壁の向こう側の人の特徴>>813
>要するに他人と議論する以前に自分自身を欺いている。
>自分に自信がないから、間違いを認めるのが怖いんだろう。
みんながお前に対して思ってることそのままでワロタww tweetが「ふつうにツリー構造」とか言っちゃった>>802君いきしてるぅ?? >InReplyToっていうメンバー変数を持つクラスのインスタンスがあるとして、
>InReplyToのtoがInReplyTo自身に掛かるのか、それともそれを内包する
>インスタンスの方に掛かるのか、自明じゃないように感じるよね
↑コレを↓コレに都合よく変換してあるあたり「自分に自信がないから、間違いを認めるのが怖いんだろう。」
>- in reply toは「〇〇に対する返信」だが、「に対する返信」という変数名では○○に何が入るのか不明確 表示がツリーのようにされるだけ。
データの構造は別。 いや、fooとどちらがいいか議論が必要ではないだろうか…?
fooならbar、bazと続くが、hogeはどうだ
piyoなのかhugaなのか
実に悩ましい 私の頭を見ながらhogehoge言ったことを後悔させてやる Load(????) <-> Save(保存・記録)
Read(読み込み) <-> Write(書き込み)
Loadも読み込みでOK? >>885
むしろreadは読み込まない。
読み込むとはつまり読込先が存在するということ
"read data to an array"とは普通書かないのでは? >>885
カタカナで「ロード」「セーブ」でええやん?
もうリッパに日本語やろ。 「load read 違い」でググってみた
Load->読み込む・読んで込める・読んでから変数にセットするまでを「込んでる」
Read->読む・読むことにだけフォーカスしている・読んだ後はタッチしてない、知らん
こんな感じでいいのだろうか
確かに意識してなかったけどソースコードはそんな組み方になってたので勝手に納得してみました
皆さんありがとう ていうか>>886さんの言ってることを今さら理解できました
すみませんでした x = ReadHoge()
LoadHoge(out x)
こういうことか? LoadはよりCPUに近い場所に移動させるイメージだな readもloadも同じく低速媒体から高速媒体に移動するイメージでしょ
readはシリアルやストリームから一定量または全量読み進める感じ
媒体を読む(read)行為そのものに意識があり対象データが何かは必ずしも問わない
loadはオブジェクトやプログラム等の有意のデータ単位を読んで所定位置に載せる感じ
読み込まれる情報に意識があり何がどこに読み込まれるのかだいたい分かってる
loadのコアイメージは読むことではなく、積み荷を載せること
弾丸を弾倉にリロードする感じ fp=Load("第一章")
Read(fp, data)
printf(data) → 何でもないようなことが幸せだったと思う クラス名変数名より一歩前の話です
会計時の支払い方法で現金・クレジットカードが選べる簡易レジシステムなんですが、
最近流行り(?)のバーコード(QR)コード決済を追加してくれという流れになり、その表題を「キャッシュレス」
と指示されたのですが、クレカもそうやん・・・と思うのでバーコード(QR)という名前でもいいと思うのですが、
この第三枠目にはバーコード(QR)決済のみならず現金・クレジット以外という意味も含まれる可能性があるようです
なおさらここはキャッシュレスじゃないだろ・・・と思うのですが、どういう名前が最適かご指南ください 電子マネー:ElectricMoney
電子決済:ElectricPayment, EPOS
クレカ以外のキャッシュレス:CashlessButCredit
でもキャッシュレスでいいって言ってるんだからいいじゃんキャッシュレスで。
ああ、クレカ以外のキャッシュレスを狭義のキャッシュレスって言ってるんだなって分かるでしょ >>899
「QRコード」は登録商標やぞ。
細かいことを気にするなら、そもそも候補に入れるな。w
一般名なら二次元バーコードかマトリックスコードか。
将来にも通じる名前というなら、「other」「etc」とかにせざるを得ないやろ。
しかし、>>900の言うように、こだわらずに指示に従っとくのも一理。
そいつのせいにしとけばいいんだよ。
コメントに明記しといたれ。w >>899
そのくくりそのものが典型的な仕様崩壊パターン。
一つ追加して、また一つ追加して複数のものになって名前が崩壊する。
英語ならOthersとするしかない。 ElectricPaymentに一票
Othersもいいけど、電子決済以外の支払い方法が増えたらまた新しい名前を追加することになると見た 皆さんありがとうございます
>>900
キャッシュレスでも通じる感じですか・・・自分の頭が固いのかもですねw
>>901
確かにQRはダメですね
自分の流儀で行けば二次元バーコードですが、マトリックスコードもいいですね
キャッシュレス指示してる人がキャッシュレス連呼止まらないので、
コメントで愚痴を各方向に向かいつつありますが・・
>>904,905
後から増える懸念がとてもあります
ブランド種別や締め日などのワードがちらっと顔を覗かせていますが、
そこまでやるとやり過ぎ論で今のところ防がれています 例えば、メーラーアプリがあるとします
既読管理ができるとして、メール一覧画面において既読のメールを未読と区別するため未読より全体を暗く?表示したりしますがこの名前をお願いします
まず、日本語名からお願いします
暗く?以外にふさわしい表現ありますでしょうか 強調表示 = highlighting
視覚効果の選択肢は知らない
メーラーならオリジナルの方法にこだわるより既存の物に右へ倣えした方がいいと思うけど、
メーラーじゃないんだよね read の過去分詞が read で区別がつかなくて困るとかか? >>908
名前を付けようとしてる対象が適切でないように思う
個別のスタイルを適用できる要素として既読メールや未読メールがあって
それらに既定のスタイルやユーザーがカスタマイズしたスタイルを適用してるだけなので
この場合の暗くするという処理(というか設定によっては暗くなる状態)に名前はついてないしつけるべきでもない
例えばcssなら.UnreadMessageBodyや.ReadMessageBodyみたいなclassを定義して
それぞれにcolor, font-size, background-colorなんかを指定するだけ 対処済
低優先
低重要
とか?
区別したい趣旨や目的が不明瞭なら、これくらい抽象的な名前かな? うーん。アイテムはメールで例を出しましたが、ツイートであったり5chならレスであったりメールと似たようなものです。それの「既読・未読」管理します
で、その暗く?するという視覚効果を適用するかしないかをオプションでユーザーに選択できるようにしたくて >>909
「既読を〰�キる」じゃなく、その逆の発想の「未読を強調表示する」も考えましたがどいなんでしょうね
もうちょっと考えてみます >>913-914
だから未読/既読を管理すればいいなら例えばIsUnreadとか逆にIsAlreadyReadとかでいいんじゃね? >>914
(例)macOSのMail.appの設定にあるチェックボックス
- Display unread messages with bold font
- 未読メッセージをボールドフォントで表示
ユーザーにスタイルの選択肢は与えず
あくまで「既読を暗くする」って感覚にこだわりたいなら
上の例で「強調表示する」ではなく「ボールドフォントで表示する」になってるように
「暗くする」とはどういうことなのかをもう少し詳細度を落として考えたほうが良い >>916
暗くするって、具体的にはビューの上に不透明度?Opacityを設定したビューを重ねて合成表示すると全体的に輝度が下がって暗くなる
そんな実装です
>>917
あー。なんかdimってありましたね。どっかで見た記憶があるが思い出せない dimよさそうですね。
dim background for? read mails
日本語があれやな.. つか、連投すみません。
>>916
未読をボールドフォントで表示する方法もありましたね。アイデアありがとうございます。そっちの方が見やすいかもしれません。試してみます。 ○○ファイルを削除する関数の名前に統一性もなくDeleteやRemoveを使ってたのが発覚
ここはまあDeleteに統一かなと思ったけど、気にしすぎかな? 統一しようぜ
核となるニュアンスは取り除く(re-move)だからファイル消去にremoveはかなり微妙 removeが微妙かどうかはコンテキスト次第
同じモジュール内にもかかわらず
同じ意図で異なる名前を使ってるなら統一したほうがベター >>923-924
やはりまずは統一ですね
ところで、linuxがrmだったりdosはファイルがdel、ディレクトリがrmdir、
win32apiもファイルがDeleteFile、ディレクトリがRemoveDirectoryだったりするのはなぜでしょう? 渡された日付がおかしな日付だったらおかしな部分を0にして返す関数名をお願いします
例えばうるう年ではないのに2/29が渡されたり、4/31というようなあり得ない日付は、
2/0、4/0として返すようにします
13/1みたいなのだと、0/1として返します
ここでは0にしていますが、おかしいものはxxxに統一しておくことで後々一々日付範囲チェック
しなくてもxxxなら異常値として処理できるように意図しています 13/31の日付はどう判定すべきなんだろうw
しかし、変なら変だと素直に教えてくれりゃいいのに、
わざわざ別の変な値に変換して返す関数ってずいぶんと意地悪な仕様だなw >>927
ちょっと抽象的かなと
>>928
顧客情報に誕生日欄があり、UI側では異常な数値は設定できないようになっており
誕生日が不明な部分(何年のみ、何月生まれのみという事だけ分かるなど)
というケースもあり得る感じになっています
分かっている部分はデータが入っており、未設定・不明部分は0としてデータセットします
問題は、CSVから顧客情報をインポートする場合に2/31のような異常な日付データが入ってくることがあり、
これをインポート時に処理しておきたいということです
13/31の場合は、実処理は月を先に処理するので0/31となって終わります
これはまあ、日だけデータがあってもどうしようもないのであってないようなものです
年や月が正常ならば日を正確に処理するようにしています >>929
よく分からないなあ。
不正な値は未知の値と見なして「未知な値」を表す値に変換して正規化するってこと?
NormalizeInvalidAsUnknown
それなら13/31は0/0に変換すべきじゃないの?
年が不明で月日だけ分かるケースはあるかもしれないが、
常識的には月が不明なら日付も不明とすべきじゃないのかな >>930
> 不正な値は未知の値と見なして「未知な値」を表す値に変換して正規化するってこと?
そういうことです
データそのものは色々な使い方をするので、その色々な処理で一々不正な日付かも知れない
というチェックを入れるよりは、最初から未定義として設定しておこうかと
> それなら13/31は0/0に変換すべきじゃないの?
これは確かに無意味なので0/0の方がいいので、そのようにします parse date string
mask invalid date string
annotate invalid date string
format invalid date string
set zero to invalid date string
設計的には妥当な入力は日付型として扱った方が堅牢
無効な値を残しておきたいなら生年月日の入力値と生年月日を別に持てばいい >>929
まあ、日付オブジェクトの(拡張)メソッドくらいのつもりだったからな。
じゃあ、グローバル関数のつもりで。
invalidate unacceptable parts of date 皆さんありがとうございました
mask invalid〜辺りで行きます
> 設計的には妥当な入力は日付型として扱った方が堅牢
一般店舗でのデータなので、客が誕生日を書いてくれないことが多くこのような仕様になっています メソッドならzeroizateInvalid
関数ならzeroizateInvalidDate バックエンドから戻ってきたフォームのエラーフラグをフォームに反映させるクラス、または関数の名前 class Reflector
class FormReflector extend Reflector
class FormErrorReflector extend FormReflector >>939
ありがとう!2番目採用したいと思います 英語的にはそのreflectの使い方は誤用じゃないかな
設計的にもupdateView(response)やdisplayErrors(errors)で対処できるような構造にしたほうがいい気がする このスレまだあったんだね
まあ質問者さんがいいならいいんでないの?
そもそも質問内容もあいまいだし。
submitされた後で複数の入力項目のエラーをまとめて
UIに反映するタイプのアプリなのかな?
IndicateErrorstとかNotifyErrorsとかの方がいいように思っちゃうけど
まあ細かい話が分からんので何ともいえんね。 FormReflectorをValidatorにmixinとかするとスマートかなっておもた Taskってマルチスレッドで並列実行的な意味合いが大きいの?
単純に処理を数珠つなぎに登録して別の箇所で実行していく
Task/TaskList的なものはなんて名前つけるのが一般的なの? コマンドパターンに近そうなのでCommandかな
単に関数のリストならfunc_listやfn_listみたいなのにするかも >>944
https://e-words.jp/w/%E3%82%BF%E3%82%B9%E3%82%AF.html
によればtask≒threadみたいなニュアンスがあるらしい。
文脈次第のような気もするけど。
Commandは良さげに聞こえるね。あとはActionとか?
「TaskList的なもの」はSequenceってとこ?
こっちの実装によっては個々のアイテムの呼称については
必ずしも明確にしなくても良いような気もする。
まあ、コメントやドキュメントを書くときに名称がないと困るかもしれんけど タスクはTaskでええやろ。
マルチスレッドかどうかは実装の話やし。
で、そういうリストはQueueやないか? TRONではスレッドのことタスクって言うんだったっけ リバースアセンブラでopcodeとoperandをひとまとめにしたデータクラスってどう命名するのがいいですかね?
Operationだとプログラミング中で使うのに含意が広すぎる気がするんですよね
現状ではInstructionを略してInstにしてるんだけど >>950
instructionでもoperationでもどっちでもいいと思うけどCPUのアーキテクチャー
関係の用語としてはinstructionの方が一般的みたいな印象はあるね。
opcode = operation codeなんだからoperationの方が素直な気もする反面
確かにより一般的なinstructionの方が変な誤解がないような気もする。
あえてこの2つ以外を選択する理由はないようが気がする。 レス数が950を超えています。1000を超えると書き込みができなくなります。