クラス名・変数名に迷ったら書き込むスレ。Part27 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2016/10/16(日) 08:01:30.20ID:NOg6ZxxU命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part26
http://echo.2ch.net/test/read.cgi/tech/1450622191/
0153デフォルトの名無しさん
2016/10/22(土) 18:23:40.26ID:rJrHw2K4複雑な業務システムだとオレオレ定義ファイルが複雑化、巨大化してコードよりメンテナンス性が悪くなる
そんなものをメンテナンスするぐらいならハードコードしたほうがまだマシ
モダンな言語ならリビルド不要な拡張方法なんていくらでもあるし
0154デフォルトの名無しさん
2016/10/22(土) 18:23:56.20ID:lAgDZlKoステップ数でお給料が増減する文明圏の人たちになんてことを
0155デフォルトの名無しさん
2016/10/22(土) 18:37:34.74ID:VPAELI2D商用なら音楽データの管理なんかそれこそRDBに置くべき案件
ましてや巨大なプロジェクトなら列挙型なんか論外中の論外だわ
0156デフォルトの名無しさん
2016/10/22(土) 18:43:34.46ID:/a8S//3o> モダンな言語ならリビルド不要な拡張方法なんていくらでもあるし
例えばなに?
0157デフォルトの名無しさん
2016/10/22(土) 18:44:10.43ID:rJrHw2K4当たり前だろ
今そんな話はしてない
0158デフォルトの名無しさん
2016/10/22(土) 18:45:08.68ID:rJrHw2K4class , interface
基本だろ?
0159デフォルトの名無しさん
2016/10/22(土) 18:47:55.55ID:VPAELI2DRDBに置くのにオレオレ定義とかハードコーディングとかアホなのか
所詮カテゴリなんてマスターデータの一種だろ
そんなものをいちいちハードコードするな
0160デフォルトの名無しさん
2016/10/22(土) 18:48:50.40ID:IpUTRyqCそれはコードが無駄に長くなるだけ
0161デフォルトの名無しさん
2016/10/22(土) 18:54:59.13ID:IpUTRyqCgetElementsByTagName, getElementsByClassName, getElementById 派
>>76-77
querySelectorAll 派
こんな感じ
応用力が高いのは後者、パフォーマンスが高いのは前者
0162デフォルトの名無しさん
2016/10/22(土) 18:59:54.45ID:iLkbIGXhそれすらないんだよね前者は
彼が主張してんのが
getElementsByGenreだったらそうだろうけど
getElementsPopsだからね
ここには巨大な隔たりがある
型と値の違いがある
0163デフォルトの名無しさん
2016/10/22(土) 19:00:02.31ID:gYvFPuftマシンパワーの1%も使ってないだろう
0164デフォルトの名無しさん
2016/10/22(土) 19:03:01.93ID:gYvFPuftByGenreなら大いにアリだな
getPopsはどう考えても頭おかしい
key-valueで言うところのvalueに紐付けてメソッドを作るとかギャグだわ
0165デフォルトの名無しさん
2016/10/22(土) 19:03:46.45ID:rJrHw2K4だから今そんな話してないだろ
増え続けるRDBへのクエリをどう管理するかって話で>>150はファイルで管理をすると言っているがそんなことをするぐらいならハードコードしろと言っている
マスターデータをハードコードとかどっから出てきたんだよ
0166デフォルトの名無しさん
2016/10/22(土) 19:05:51.49ID:x4x3zU66マスターの管理は小規模なら外部ファイル、商用ならRDBにしろって話なんだが
RDBを外部ファイルで管理って頭沸いてんの?
0167デフォルトの名無しさん
2016/10/22(土) 19:09:18.63ID:IpUTRyqC自分は汎用性と拡張性しか考えてなかった
例えば、>>161で特定の属性名を持つ要素ノード群を得るAPIを拡張したいとする
前者は getElementsByAttributeName を追加し、後者は querySelectorAll で属性セレクタを扱えるように拡張する
特価型APIを増やしていくか、汎用性の高いAPIを一つだけ用意するか、の違い
0168デフォルトの名無しさん
2016/10/22(土) 19:10:09.83ID:IpUTRyqC0169デフォルトの名無しさん
2016/10/22(土) 19:10:17.82ID:rJrHw2K4もしかして根本的なところから理解してないのか?
ここでいうGetPopsのPopsとはgenre=="Pops"のmusicのことじゃないぞ
もっとドメインレイヤよりの定義を持った集合にPopsという名前をつけたものだ
最も単純なシステムではたまたま両者は一致するというだけで現実のシステムではそんなに単純ではない
0170デフォルトの名無しさん
2016/10/22(土) 19:10:57.24ID:rJrHw2K4だめだ全く理解してない
0171デフォルトの名無しさん
2016/10/22(土) 19:14:14.98ID:2RMhh+15getpops本人まだいたのかよ
よくあんなアホらしいもんを思いついたもんだな
うちのアルバイトでももうちょいまともなもん作るぞ
0172デフォルトの名無しさん
2016/10/22(土) 19:15:38.57ID:wVjPdD/+>>89を読み直してこい
0173デフォルトの名無しさん
2016/10/22(土) 19:16:45.35ID:yvrzDyTu0174デフォルトの名無しさん
2016/10/22(土) 19:19:25.85ID:rJrHw2K4いつの話してんだ
話題は常に変化するもの
流れを呼んでこい
0175デフォルトの名無しさん
2016/10/22(土) 19:20:25.73ID:wVjPdD/+それお前の中で変化してるだけじゃねーの
0176デフォルトの名無しさん
2016/10/22(土) 19:22:51.88ID:rJrHw2K4世界は言い過ぎだけどこのスレ程度のレベルじゃ冗談抜きにその通りだと思うよ
0177デフォルトの名無しさん
2016/10/22(土) 19:23:36.80ID:eh8upSc00178デフォルトの名無しさん
2016/10/22(土) 19:29:20.29ID:eh8upSc0なんて新入社員研修で教えてることなんだが、なんでこんなことでグダグダといつまでも騒いでんだよ
0179デフォルトの名無しさん
2016/10/22(土) 19:29:22.73ID:rJrHw2K4だって君ら書き込みみればわかるけどズブのアマチュアだろ?
オレはいちおう金もらってシステム開発してるからね
0180デフォルトの名無しさん
2016/10/22(土) 19:30:25.32ID:eh8upSc022で入社してもう今年で37なんだが
0181デフォルトの名無しさん
2016/10/22(土) 19:33:12.94ID:rJrHw2K4まあそういう人もいるよな
メゲズに頑張ってくれ先輩
0182デフォルトの名無しさん
2016/10/22(土) 19:33:59.10ID:wVjPdD/+そんな珍しくもなんともないもんで自分が特別だと思いこんでたわけか
バイトを始めた学生か何かか?
0183デフォルトの名無しさん
2016/10/22(土) 19:37:48.27ID:eh8upSc0メゲるも何も、呆れしか感じんぞ
改めて見てやるが、getPopsの中身の処理を書いてみな
0184デフォルトの名無しさん
2016/10/22(土) 19:40:01.84ID:lAgDZlKo0185デフォルトの名無しさん
2016/10/22(土) 19:46:56.14ID:rJrHw2K4return Music.Where(popsPredicate);
述語は要件と顧客の気分次第で不定な
0186デフォルトの名無しさん
2016/10/22(土) 19:48:14.90ID:eh8upSc0なるほど
findないしそれに該当する汎用アクセサは?
0187デフォルトの名無しさん
2016/10/22(土) 19:54:00.26ID:rJrHw2K4Music
0188デフォルトの名無しさん
2016/10/22(土) 19:55:53.56ID:eh8upSc0うん??
Musicはメンバ等ではなくグローバルに置いてるのか?
ってことはgetPopsもグローバル?
0189デフォルトの名無しさん
2016/10/22(土) 20:01:05.09ID:rJrHw2K4return Music;
って書けばお気に召すのかな?
こっちはちっぽけなスマホで打ってるんだ
察してくれ
0190デフォルトの名無しさん
2016/10/22(土) 20:05:28.90ID:4bv8Zxei有意義な議論なら俺個人はどんどんやってほしいけど、
今のこれはあまりに下らなすぎる。
0191デフォルトの名無しさん
2016/10/22(土) 20:06:13.44ID:eh8upSc0それにしてもだなあ。。。
カプセル化の何の意味もない構造に頭痛がして来たが、それはひとまず置いておくにしても
要するにgetPopsはただのエイリアス、ラッパーだろう?
getPopsが作られる前、またはそれを知らないメンバが実装した箇所ではfindが使われてる可能性がある
同じものを取って来るのに2種類以上の取得方法があるのは好ましくない
0192149
2016/10/22(土) 20:09:05.84ID:nST3ahFj自分が周回遅れなのは間違いないんだけれども。
もちろん>127を参照しろということは分かるんだが
127のどこが、ソース中に書かれる文字列をキーとして使う処理の例や説明なの?
0193デフォルトの名無しさん
2016/10/22(土) 20:16:35.71ID:/a8S//3oリビルド不要?
最近の言語は class や interface とやらでリビルドせずに enum の要素増やしたり GetEnka( ) を追加できるのか?
0194デフォルトの名無しさん
2016/10/22(土) 20:20:59.15ID:/a8S//3oマジで言ってるならもう少し頑張った方がいいと思う
少なくとも >>127 にはリテラル文字列はないだろ
0195デフォルトの名無しさん
2016/10/22(土) 20:22:12.22ID:rJrHw2K4カプセル化は十分だよ
たったこれだけのクラスインターフェースからクラスの実装詳細やデータ層の構造までわかるのかい?
始まりはともかく今はもうGetPopsはただのエイリアス・ラッパーではない
ドメインで定義されたなんらかの有用なサブセットを取得するGetPopsと名付けられたメソッドだ
なんらかの有用なサブセットとはドメインの用語でつまりポップスのことだがポップスは単にGenre=="pops"を満たすmusicということではない
また今後ドメインの深化に追従してメソッド名が変わるかもしれないが今はまだGetPopsでよい
GetPopsを使う場面で汎用メソッドを使う事は確かに害悪でプログラマは反省しなければならない
しかしメソッドのみを使い同じ述語をあちこちにばらまくのもまた害悪だ
幸いにも開発環境やアナライザは日々賢くなっている
重複したコードをメソッドに一本化する作業はそれほど手間はかからない
気合を入れて一度やってしまえばその後の述語の変更は一回で済む
しかし述語をあちこちにばらまいたまま放置すれば述語の変更のたびに面倒な作業を強いられる
0196デフォルトの名無しさん
2016/10/22(土) 20:25:01.74ID:IpUTRyqC意味を差し替えて俺は正しいと言い張ってるわけね
0197デフォルトの名無しさん
2016/10/22(土) 20:31:33.39ID:rJrHw2K4enumはポリモーフィックなクラスファミリに置き換えられるし置き換えるべきだ
クラスファミリーにクラスを追加するのに全体のリビルドは必要ない
GetEnkaが必要になったとして追加するクラスを賢く選択すればリビルドの必要もなくシステムを拡張できる(なにも馬鹿正直に既存のリポジトリに追加する必要はない)
既存のクラスにどうしても追加したい場合は部分的なリビルドが必要になるが全体をリビルドする必要はない
0198デフォルトの名無しさん
2016/10/22(土) 20:32:37.44ID:rJrHw2K4実にシステム開発的な流れだろう?
0199デフォルトの名無しさん
2016/10/22(土) 20:34:43.03ID:IpUTRyqCそういうのはただの屁理屈と言う
0200デフォルトの名無しさん
2016/10/22(土) 20:39:11.57ID:rJrHw2K4というかこの流れもある程度予測してGetPopsを最初にメソッド化したと言っていい
0201デフォルトの名無しさん
2016/10/22(土) 20:40:15.05ID:nST3ahFj大真面目に頑張った結果なんだが
お前さんの言うとおり、まさに「>127にリテラルはない」としか読めない。
そもそも>149のどこを否定してるの?
0202デフォルトの名無しさん
2016/10/22(土) 20:41:14.01ID:eh8upSc0そりゃ十数年も新人教育やってりゃ大体の構造は手に取るように分かるさ
先程の例ではMusicインスタンスを直接外部に渡してしまうのがまずい
どうしてもgetPopsを作るなら「汎用アクセサは用意しない」という回答が正解だったんだが
しかし、抽象的な表現で逃げるのは君の良くない癖だな
たまにそういう子も入ってくるけど
0203デフォルトの名無しさん
2016/10/22(土) 20:43:22.25ID:IpUTRyqC中身のコードを書いてみせた時点で想定しきれてないな
まるで中学生の屁理屈じゃあないか
ホントに働いたことがあるのかどうかも疑わしい
0204デフォルトの名無しさん
2016/10/22(土) 20:45:42.06ID:rJrHw2K4お前が書けと言ったんだろうが〜
というか汎用メソッドをパブリックにした覚えもないしMusicがミュータブルであると言った覚えもないな
これでいいかおっさん?
0205デフォルトの名無しさん
2016/10/22(土) 20:48:06.11ID:eh8upSc0俺は「汎用アクセサは?」としか聞いてないが
後付けも良くない癖だぞ、君
そういう子は大抵長続きしない
0206デフォルトの名無しさん
2016/10/22(土) 20:50:01.78ID:rJrHw2K4子供かw
0207デフォルトの名無しさん
2016/10/22(土) 20:50:53.25ID:smXSLIN9>>199
というかこの流れもある程度予測してGetPopsを最初にメソッド化したと言っていい
↑さすがにワロタわw
キミ、いじめられっこの経験あるやろw
泣いてないモン!って言いなれてるなさすが
0208デフォルトの名無しさん
2016/10/22(土) 20:52:35.58ID:eh8upSc0言ってないものを言ったと言い張られても困る
0209デフォルトの名無しさん
2016/10/22(土) 20:52:51.02ID:/a8S//3o> モダンな言語ならリビルド不要な拡張方法なんていくらでもあるし
って豪語してたのに
> 全体をリビルドする必要はない
ってだけなのな
そんなの動的リンク使えばいくらでもできるわな w
0210デフォルトの名無しさん
2016/10/22(土) 20:56:10.95ID:/a8S//3o> そもそも>149のどこを否定してるの?
マジで言ってるの?
ちゃんと引用してるんだが...
> ソースにリテラルを直接書くことって、あんまり無さそう
0211デフォルトの名無しさん
2016/10/22(土) 20:56:20.59ID:rJrHw2K4すまん
子供の頃はいじめっ子だったわ
いわゆる学校のボスザル的チンピラ
0212デフォルトの名無しさん
2016/10/22(土) 20:58:24.55ID:rJrHw2K4そうだよ
適切に処置すればリビルドなしでシステムを拡張できる
幾らでもできるからさっきそう言ったじゃん?
0213デフォルトの名無しさん
2016/10/22(土) 21:00:10.95ID:xVGM3Eif0214デフォルトの名無しさん
2016/10/22(土) 21:04:05.92ID:nST3ahFjますます分からん
「ソースにリテラルを書くことはない」という主張の否定として
「ソースにリテラルは書かずにこうする」という例を挙げるのは、
話の流れとして成立するの?
議論とかディベートとか、あんまり学んでこなかったからなあ。
すまん
0215デフォルトの名無しさん
2016/10/22(土) 21:15:11.07ID:NG/YSHI2いやリビルドしてんだろカス
0216デフォルトの名無しさん
2016/10/22(土) 21:19:28.67ID:OSlnnavW周回遅れ
って言う言葉もわからんの?
> 「ソースにリテラルを書くことはない」という主張の否定として
否定なんてしてないぞ
まだそんなこと言ってるのかよ
って言ってるだけ
ディベートとか以前にまず正しい日本語を学ぶべきかと
0217デフォルトの名無しさん
2016/10/22(土) 21:19:28.86ID:vcedYMQM0218デフォルトの名無しさん
2016/10/22(土) 21:20:47.17ID:OSlnnavWはいはい、嘘つきはもう来なくていいから
0219デフォルトの名無しさん
2016/10/22(土) 21:39:06.58ID:nST3ahFjああそういうことか、すまんかった
0220デフォルトの名無しさん
2016/10/24(月) 10:20:14.55ID:UouFXqTF0221デフォルトの名無しさん
2016/10/24(月) 10:48:41.37ID:fQGKWk+u0222デフォルトの名無しさん
2016/10/24(月) 12:44:29.11ID:83bvzfHfopenXxxWindow(p)
openYyyWindow(p1, p2)
openZzzWindow()
openWindow("Xxx", p)
openWindow("Yyy", p1, p2)
openWindow("Zzz")
0223デフォルトの名無しさん
2016/10/24(月) 12:46:27.62ID:+WgIUVwTそれ名前の問題じゃないだろ。
0224デフォルトの名無しさん
2016/10/24(月) 13:00:17.56ID:csInVVUs完全にアルツハイマーだな。
0225デフォルトの名無しさん
2016/10/24(月) 13:37:47.14ID:fQGKWk+uXxx, Yyy, Zzz, p, p1, p2の補足が欲しい
0226デフォルトの名無しさん
2016/10/24(月) 15:21:51.22ID:pKBfRUrbXxx, Yyy, Zzzは画面名で英語の文字列です
p, p1, p2は次の画面に渡すパラメータで画面によって異なります
0227デフォルトの名無しさん
2016/10/24(月) 15:28:35.97ID:5ENMhkpM> 命名規則や設計の善し悪しについて議論するのは基本的に禁止。
そもそもこれしか話すことないのになぜ禁止したし
0228デフォルトの名無しさん
2016/10/24(月) 15:50:27.65ID:fQGKWk+uxyz座標と思ったわw
Win32APIならCreateWindowってのがある
0229デフォルトの名無しさん
2016/10/24(月) 15:56:52.07ID:+RICRJtL0230デフォルトの名無しさん
2016/10/24(月) 16:11:48.75ID:Gldo3h3g正直、画面の基底クラスを作って各画面を継承で実装した方がスッキリ書ける案件だと思うけど…
どうしてもopenWindowで実装したいなら後者で
似たような動作をする関数(win標準のcreateWindow)が既にあるなら使い方も同じ感じにしたほうが分かりやすい
0231デフォルトの名無しさん
2016/10/24(月) 16:20:55.50ID:f1Oob2xq0232デフォルトの名無しさん
2016/10/24(月) 18:29:15.85ID:wn6/eztm名前をレスせず、命名規則や設計の善し悪しのレスしかしないバカがスレを消費するだけで
一向に命名しない流れが続いたから禁止された。
何年も前の話。
ここ最近のテンプレ読めないバカが集まって、やはり一致した結論が出てないのを見て分かるだろ。
このスレは「○○について名前を考えてください」というお題に答えるだけのマジレス歓迎の大喜利スレ。
0233デフォルトの名無しさん
2016/10/24(月) 18:34:05.48ID:Ri+KQSou質問者が求めてるのはズバリかヒントのワードであってバカどもの薀蓄なんてお呼びじゃない
0234デフォルトの名無しさん
2016/10/24(月) 18:41:13.01ID:Ja2raL71戦争なんだな
テーマに対する意見を交わすんじゃなくて
相手に対する攻撃を応酬し合ってるんだから
0235デフォルトの名無しさん
2016/10/24(月) 18:45:32.24ID:f1Oob2xqないのは明白だよねw
前にも書いたが、テンプレを引用して絡んでくるバカが登場する時としない時があるのは何故?
要するに、本来スレ違いの議論にそいつ自信が参加してる時には現れないのは明白なわけ。
そして、これは個人的な感想(しかし自信はある)だが、実にどうでもいいお馬鹿な「議論」
が続いている時に限ってそのおバカは現れない。まあ語るに落ちてるよね。
要するに、ずいぶん前も書いたけど、「〜禁止」なんてルールはご都合主義のバカに他人のレスに絡む口実を与えて、
かえってスレが荒れる原因を作るだけ。
0236デフォルトの名無しさん
2016/10/24(月) 18:52:04.73ID:R8FyZAi80237デフォルトの名無しさん
2016/10/24(月) 18:55:23.90ID:wn6/eztm禁止してないから早速死んでくれていいよ
ってくらい無能な長文だね。
0238デフォルトの名無しさん
2016/10/24(月) 18:57:37.38ID:fQGKWk+u> テンプレを引用して絡んでくる
って事は「命名規則や設計の善し悪しについて議論」してたんだよな?
その割には「マジレスする奴も重症」って矛盾してね?
0239デフォルトの名無しさん
2016/10/24(月) 19:02:36.61ID:f1Oob2xq日本語でお書きください
0240デフォルトの名無しさん
2016/10/24(月) 20:14:28.55ID:fQGKWk+uどこがわからない?
命名規則や設計の善し悪しについて議論してたからテンプレを引用して絡まれたんだろ?
0241デフォルトの名無しさん
2016/10/24(月) 20:32:37.69ID:f1Oob2xq何を言ってるのかさっぱり意味が分からん。
0242デフォルトの名無しさん
2016/10/24(月) 20:42:00.45ID:fQGKWk+uそうか
じゃあそのままでいいわ
0243デフォルトの名無しさん
2016/10/24(月) 21:19:09.43ID:XjvnPt+s禁止して実効性があるの?
ないかもね // 未検証な事柄を主観で断定しない
/* 思い込みと私怨の開陳は全カット */
禁止を押し付けらるのってなんか嫌だし(´・ω・`) // 個人的な感情であると説明しつつAAで和ます
0244デフォルトの名無しさん
2016/10/24(月) 21:40:24.47ID:bN8c+nPb0245デフォルトの名無しさん
2016/10/24(月) 21:59:58.35ID:PrHBZIpa0246デフォルトの名無しさん
2016/10/24(月) 22:17:53.78ID:mxK0EHtA0247デフォルトの名無しさん
2016/10/25(火) 05:19:39.47ID:OZkbpJ7G0248デフォルトの名無しさん
2016/10/25(火) 07:34:03.48ID:MZfG2R+80249デフォルトの名無しさん
2016/10/25(火) 08:05:43.55ID:zO0NytLF0250デフォルトの名無しさん
2016/10/25(火) 09:19:12.44ID:g86pOwEK0251デフォルトの名無しさん
2016/10/25(火) 09:52:03.08ID:n342IJVHでも道順を全く説明できないただの交通ルールオタク
0252デフォルトの名無しさん
2016/10/25(火) 09:58:26.93ID:6yXN+QBc■ このスレッドは過去ログ倉庫に格納されています