クラス名・変数名に迷 ..
94:デフォルトの名無しさん
16/10/21 23:40:59.85 SHIfRlxP.net
>>92
線形探索ってどこから出てきたん?
95:デフォルトの名無しさん
16/10/21 23:42:03.35 gbFOKPXv.net
>>93
Findの中身を書いてみ
96:デフォルトの名無しさん
16/10/21 23:46:12.52 SHIfRlxP.net
>>94
return Music.Where(expression);
97:デフォルトの名無しさん
16/10/21 23:47:53.74 gbFOKPXv.net
>>95
次はWhereの中身
98:デフォルトの名無しさん
16/10/21 23:48:45.91 SHIfRlxP.net
こっちのほうがいいか?
return Music.Where(predicate);
99:デフォルトの名無しさん
16/10/21 23:51:49.18 SHIfRlxP.net
>>96
そこから先はフレームワークの仕事だ
すぐには書けないよ
100:デフォルトの名無しさん
16/10/21 23:53:19.16 vcl3xMBv.net
Linq使うならなおのことGet***は愚行だろ
せっかく自由にジャンルを新規追加できるようにデータを保持してるのに、新規追加のたびにGet***メソッドが爆誕するのは本末転倒
一部のジャンルのみGet***が実装されてるってのも気色悪いし
101:デフォルトの名無しさん
16/10/21 23:59:09.23 SHIfRlxP.net
>>99
なんか勘違いしてるがハードコード版をいちいち追加する必要はないぞ
俺そんなこと言ったっけ?
要件で必要になった有用なクエリをカプセル化するんだよ
今の文脈ではGetPopsがそれに該当すると仮定している
102:デフォルトの名無しさん
16/10/22 00:01:26.99 DAj343hD.net
>>100
だからそれが気色悪い
自分一人でシコシコ作ってる分にはそれで良いかもしれないが、チームで作る場合には
一部だけしか実装されてないgetとか吐き気がするわ
103:デフォルトの名無しさん
16/10/22 00:07:27.80 IweOgR7T.net
取得時に必ず実行したい処理(ログの掃き出しとかキャッシュの作成とか)を追加しようと思ったときに
Get系のメソッドが複数あると全部に手を加えなきゃいけなくなるから乱立は避けるべきやで
104:デフォルトの名無しさん
16/10/22 00:13:54.97 e4+LVHZw.net
GetPopsくんはお前らより周回遅れだから放置してもええんやで
無理に相手しなくても
105:デフォルトの名無しさん
16/10/22 00:55:11.05 tiqhYV+3.net
>>101
最後は感情論になっちゃうんだ
106:デフォルトの名無しさん
16/10/22 01:00:34.32 jx4+pi2S.net
>>102
そういうのはAOPなどの工夫で解決するべき問題
手で書くなんて時間の無駄はやめること
Getだろうがなんだろうがメソッドがいくつあっても手間にはならない
107:デフォルトの名無しさん
16/10/22 01:14:48.18 ms5m8DIE.net
>>104
感情論じゃあないだろう…
規則性が崩れた実装は混乱の元になる
やっぱりこの子まだまだ経験ないな
108:デフォルトの名無しさん
16/10/22 01:21:45.68 iQvw8haZ.net
いい加減、スレタイとテンプレ読めない奴は命名規則・設計スレでも立ててそっちでやれ
109:デフォルトの名無しさん
16/10/22 01:22:14.23 nW+Ca5Fr.net
>>106
優れた規則性を持っているでしょ?
必要十分なコード書けってだけの話
君のように気に入らないから必要なコードを書かない訳でもないし
使いもしないコードを書く訳でもない
無駄なコードもコードの不足も実装を大いに混乱させるものだよ
君はそろそろ入門書を卒業して実社会でコードに触れるべきだ
110:デフォルトの名無しさん
16/10/22 01:27:33.06 aPWQrVEE.net
>>108
もうとっくに10年以上働いてるわけだが
社員A「演歌取得メソッドどこにある? え?ないの?」
社員B「軍歌取得メソッドどこにある? え?ないの?」
社員C「民謡取得メソッドどこにある? え?ないの?」
社員D「演歌取得メソッドどこにある? え?ないの?(実はAが作ったので存在する)」
こんなやり取りを延々と続ける気か?
111:デフォルトの名無しさん
16/10/22 01:35:05.87 ms5m8DIE.net
>>108
Get***は無駄なコードだよ
汎用性の高いFindがあるなら他は蛇足でしかない
カプセル化するにしてもジャンルを引数で指定してリストを返す取得メソッドが限度だな
112:デフォルトの名無しさん
16/10/22 02:03:39.73 OXRjJseY.net
>>109
それは管理能力が欠如してるだけ
10年ね
>>110
無駄なものもあれば必要なものもある
パラメタライズされたメソッドを使うか明示的なメソッドによるパラメータの削除を使うか
どちらが常に正しいということはない
113:デフォルトの名無しさん
16/10/22 02:10:12.20 e4+LVHZw.net
> 明示的なメソッドによるパラメータの削除を使う
ホビープログラマかな?
114:デフォルトの名無しさん
16/10/22 02:12:26.69 WU36rjz+.net
お前ん中ではそうなんだろうな、ってこういう場面で使うんだろうねw
連想配列で済むものをいちいちGetXXX用意するっていかにもダメグラマが考えそうな設計だねw
115:デフォルトの名無しさん
16/10/22 02:16:18.96 aPWQrVEE.net
>>111
本来必要のない部分で無駄な管理を発生させてる時点でお粗末な仕事よ
繰り返すけど、お前さんのそのやり方はサンプルプログラムに毛が生えたようなもんをシコシコと一人で作ってる学生の間でしか通用しない
116:デフォルトの名無しさん
16/10/22 02:16:49.75 WU36rjz+.net
これ繰り返しになるけど、いつもテンプレをコピペして直接命名の話題ではないがそれに関連する
真面目な議論をぶっ壊そうとする馬鹿がこのくっだらないヨタ話に参加してるのは間違いないけど、
どの面下げてやってるんだろうな
117:デフォルトの名無しさん
16/10/22 02:23:40.15 OXRjJseY.net
>>113
OOPを学ぶことを勧める
>>114
何度も言っているが必要かどうかは場合による
明
118:示的なメソッドにする価値がない場合もあるし明示的なメソッドにしなかったことによって無駄な管理が増えることもある プログラマにとってバランス感覚は重要なセンスだ そしてバランスを取ることを最初から放棄することが最も愚かな選択であることは言うまでもない
119:デフォルトの名無しさん
16/10/22 02:30:22.79 /AjGkbek.net
>>116
明示的なメソッドにするなら最初から全種類明示的なものを用意しなきゃダメだよ
>>109の例で言えば、社員Aのときは「明示的にしなくても良い」と判断してFindを使って演歌取得を実装したが、
社員Dの頃には「演歌取得を頻繁にやるから明示的に用意しよう」と言ってGetEnkaを作るなどと
開発が進むにつれて事情が変わることは珍しくない
このとき、同じ演歌取得なのにFindで取得している箇所とGetEnkaで取得してる箇所が混在することになるか、
Aが実装した箇所を探し回ってGetEnkaに書き換える修正作業が入ることになる
とてもじゃないが綺麗なプロジェクトとは言い難い
120:デフォルトの名無しさん
16/10/22 02:34:22.94 WU36rjz+.net
OOPw
噴飯ものとはこのことかw
モノホンのダメグラマだなw
121:デフォルトの名無しさん
16/10/22 02:47:14.01 eh8upSc0.net
新卒社員に最初の研修で叩き込むレベルのことすら理解できてない若造が
プログラマを語っちゃってんだからギャグにしか見えんな
122:デフォルトの名無しさん
16/10/22 05:05:48.36 nST3ahFj.net
連想配列でも別に良いっちゃ良いんだけど(もちろん状況によるが)
IDE先生が補完してくれるかどうかが一番の課題よね
変数名やクラス名を付けるときって、
IDEの機能に引っ張られるってこと、結構多いんじゃない?
123:デフォルトの名無しさん
16/10/22 05:34:57.07 NzADNRlY.net
最近質問が少なすぎて、一つの質問で(無意味に)100レス引っ張る傾向がある
124:デフォルトの名無しさん
16/10/22 07:44:36.75 DYgWbh/+.net
リテラル文字列使うセンスは理解できん
125:デフォルトの名無しさん
16/10/22 08:22:44.12 LhJjURpJ.net
>>122
その通り
dao.find("ROCK");
これは論外
即解雇
dao.find(MUSIC_GENRE.ROCK);
よくあるパターンだけど長いし読みにくい
職場文化的にオブジェクトの定義と定数の定義が離れる傾向にありコードの凝集度も低いためオブジェクト指向的には悪手
入力補完を何回もしなければならない
間違っちゃいないがスマートじゃない
dao.findRock();
スッキリしていて読みやすく柔軟
振る舞いが全てクラスに凝集しているオブジェクト指向的良設計
入力補完の回数も少なくてすむ
クールな人はこれを選ぶ
126:デフォルトの名無しさん
16/10/22 08:23:25.65 hBp8S2CN.net
>>120
テキストエディタなら文字列リテラルも補完してくれるけど、IDEは補完してくれないものなのか
127:デフォルトの名無しさん
16/10/22 08:36:42.19 DYgWbh/+.net
>>123
音楽のジャンルだったら俺なら列挙型だな
例えば人の性別程度なら下の書き方にするかもね
128:デフォルトの名無しさん
16/10/22 09:16:07.42 gU77zXKz.net
>>123
foobar2000みたいにジャンルをユーザーが自由に設定できるような場合はどうするの?
URLリンク(www.foobar2000.org)
129:デフォルトの名無しさん
16/10/22 10:17:13.07 Me0jAF9q.net
リテラルに拘ってるやつがレベル低いとおもうけどなw
GetPops同等のメソッド量産せずに、っていう例でしかないだろ>>76は
>>126
ふつうはそう作るよな
ソフトウェア側からは単にユーザの入力文字列としか認識しない
pops = musicRepository.GetPops();
こんなのが出てくる余地はない
出るとしたら
list = musicRepository.Get(inputstr);
この形式しかありえない
130:デフォルトの名無しさん
16/10/22 10:34:42.47 WDS1fqif.net
>>126-127
なんど同じことを聞くんだ
バカなのか?
131:デフォルトの名無しさん
16/10/22 10:36:19.57 WDS1fqif.net
>>127
君の狭い世界ではそうなんだろうな
132:デフォルトの名無しさん
16/10/22 10:45:57.22 s+2RjA6Z.net
言い負かそうとせずにこれ以上は平行線だから終わりってならないのが不思議
133:デフォルトの名無しさん
16/10/22 10:51:00.38 /a8S//3o.net
>>122
サンプルコードと言うことすら理解できないんだな w
134:デフォルトの名無しさん
16/10/22 10:53:20.14 NzADNRlY.net
1
135:デフォルトの名無しさん
16/10/22 10:58:37.57 /a8S//3o.net
>>125
ジャンル増減する度にコードに手を入れるの?
法令とか規格で決まっててほとんど変更されないような選択肢なら列挙もあるかもしれないけど
136:デフォルトの名無しさん
16/10/22 11:23:09.18 DYgWbh/+.net
>>133
たかが音楽のジャンル程度なら俺は列挙型だな
自由にユーザーが追加できるようにするならリテラル文字列にするしかないけど
137:デフォルトの名無しさん
16/10/22 11:26:00.78 XrOB7U1S.net
昨日から何度か例に出てる音楽再生アプリだったら特定ジャンルのみ抽出する処理を固定で書く価値は確かにあまりないだろう
しかし例えば音楽ダウンロード販売サイトオーナーの顧客の要望により期間限定でポップスキャンペーン用の特設サイトを新規画面で素早く作りたいといった場合には特定ジャンルの抽出処理を定義済みクエリとして使い回す価値は大きい
こういった様々な状況を想定できず音楽再生アプリでは必要ないから全てが同じように必要ないんだ音楽再生アプリで使うのと同じ形式しかありえないんだと思い込んでしまう浅はかさが素人感を醸し出している
業務でプログラムを書いたことがある人間ならこのような視野の狭い思い込みなどしない
138:デフォルトの名無しさん
16/10/22 12:27:05.54 4bv8Zxei.net
>>135
もういい加減こんなアホな話やめて欲しいし、そもそも何の話をしてるのかも
いまいちよくわからんが、
(1) よく使う「特定ジャンルの抽出処理」はメソッドとして用意すべき
(2) 個々のジャンル全てについて対応する抽出メソッドを用意すべき
恐らく(1)を否定する人はいない。
否定されてるのは(2)
こんなの絵に描いたようなダメな奴がやりそうなことだ。
139:デフォルトの名無しさん
16/10/22 12:37:03.46 W/E63lh4.net
>>136
状況を理解できてないぞ
(1)を否定するバカが少なからず居て粘着しているんだ
140:デフォルトの名無しさん
16/10/22 12:39:53.81 4bv8Zxei.net
いやいないと思うけど。
まあ「べき」は言い過ぎだった。
よく使う処理をショートカットするメソッドが「あってもいい」。
そもそもメソッドとはそういうものだし。
141:デフォルトの名無しさん
16/10/22 12:41:26.84 NzADNRlY.net
どうでもいい
142:デフォルトの名無しさん
16/10/22 12:44:34.83 nST3ahFj.net
>>124
お前は何を言ってるんだと言いたいところだが
その辺は全て補完機能の性能によるとしか言えんじゃろ
143:デフォルトの名無しさん
16/10/22 13:24:10.25 s+2RjA6Z.net
どうでもいい(どうでもよくない)
144:デフォルトの名無しさん
16/10/22 13:35:00.80 hBp8S2CN.net
>>140
・補完機能の優秀なIDEに乗り換える
・pluginで補完機能を拡張する
・IDE開発者に追加機能要望を出す
対策はたくさんあるのに何もせず、今使っているIDEにコードを最適化するのは勿体ないと
145:いう話
146:デフォルトの名無しさん
16/10/22 14:19:07.11 JI+4c/sU.net
>>138
使っても良いではなく使うべき
定義済みの部分集合の要件が変わった時に安全に対処できる
147:デフォルトの名無しさん
16/10/22 14:40:57.39 k8mamnQ3.net
どうでも良いけどfindRockとかfindPopも命名としては悪い
findSMAP(歌手)とかfind80s(年代)とかジャンル以外による検索を追加したときに、検索キーが異なるfind×××がゴチャ混ぜで大量に並ぶことになる
「ジャンルがRock」であることが分かる命名にすべき
148:デフォルトの名無しさん
16/10/22 15:16:25.99 nST3ahFj.net
>>142
それもそうだな。
しかし、連想配列の文字リテラルまで補完できるってのは普通に知らんかった。
言語によるのかしらね。
149:デフォルトの名無しさん
16/10/22 15:32:40.56 9XGd15T1.net
IDEで保管できてもリテラル使って辞書にアクセスとかやめてくれ
自殺者が普通にいるこの業界でそれは殺人行為に等しい
150:デフォルトの名無しさん
16/10/22 15:39:36.54 nST3ahFj.net
>>146
ローカルでしか使わんならそれでもいいけど
そうじゃないなら定数を使って欲しいところね
というわけで適切な定数名を考えよう(スレ的な意味で
151:デフォルトの名無しさん
16/10/22 17:03:27.92 /a8S//3o.net
>>146-147
動的に増やしたい時はどうするんだ?
152:デフォルトの名無しさん
16/10/22 17:09:30.19 nST3ahFj.net
動的に増やしたい場合で、
ソースにリテラルを直接書くことって、あんまり無さそう
もちろん "ID-0042" のような自動生成される文字列はあるにしても
前半だけでも定数化するとかの手段は模索したいなあ
153:デフォルトの名無しさん
16/10/22 17:11:57.64 VPAELI2D.net
この手の話を聞くたびに、後々増える可能性があるものはxmlでもcsvでも構わないから外部ファイルに出しとけよと思う
内部処理はfind(string category)でええわ
追加するたびにコード修正&再ビルドが必要な作りはメンテ性最悪
154:デフォルトの名無しさん
16/10/22 17:13:30.29 hmjQA6vV.net
ほんと、たったそれだけのことなのにな
なぜかメソッドのシグネチャじゃなくて
呼び出し例のリテラル部分にひっかかってる子がいるけど
155:デフォルトの名無しさん
16/10/22 18:12:39.08 PmLwi55w.net
>>149
まだ言ってるのか、どんだけ周回遅れよ w
> 動的に増やしたい場合で、
> ソースにリテラルを直接書くことって、あんまり無さそう
⇒ >>127
156:デフォルトの名無しさん
16/10/22 18:23:40.26 rJrHw2K4.net
>>150
複雑な業務システムだとオレオレ定義ファイルが複雑化、巨大化してコードよりメンテナンス性が悪くなる
そんなものをメンテナンスするぐらいならハードコードしたほうがまだマシ
モダンな言語ならリビルド不要な拡張方法なんていくらでもあるし
157:デフォルトの名無しさん
16/10/22 18:23:56.20 lAgDZlKo.net
>>150
ステップ数でお給料が増減する文明圏の人たちになんてことを
158:デフォルトの名無しさん
16/10/22 18:37:34.74 VPAELI2D.net
>>153
商用なら音楽データの管理なんかそれこそRDBに置くべき案件
ましてや巨大なプロジェクトなら列挙型なんか論外中の論外だわ
159:デフォルトの名無しさん
16/10/22 18:43:34.46 /a8S//3o.net
>>153
> モダンな言語ならリビルド不要な拡張方法なんていくらでもあるし
例えばなに?
160:デフォルトの名無しさん
16/10/22 18:44:10.43 rJrHw2K4.net
>>155
当たり前だろ
今そんな話はしてない
161:デフォルトの名無しさん
16/10/22 18:45:08.68 rJrHw2K4.net
>>156
class , interface
基本だろ?
162:デフォルトの名無しさん
16/10/22 18:47:55.55 VPAELI2D.net
>>157
RDBに置くのにオレオレ定義とかハードコーディングとかアホなのか
所詮カテゴリなんてマスターデータの一種だろ
そんなものをいちいちハードコードするな
163:デフォルトの名無しさん
16/10/22 18:48:50.40 IpUTRyqC.net
>>152
それはコードが無駄に長くなるだけ
164:デフォルトの名無しさん
16/10/22 18:54:59.13 IpUTRyqC.net
>>74
getElementsByTagName, getElementsByClassName, getElementById 派
>>76-77
querySelectorAll 派
こんな感じ
応用力が高いのは後者、パフォーマンスが高いのは前者
165:デフォルトの名無しさん
16/10/22 18:59:54.45 iLkbIGXh.net
>>161
それすらないんだよね前者は
彼が主張してんのが
getElementsByGenreだったらそうだろうけど
getElementsPopsだからね
ここには巨大な隔たりがある
型と値の違いがある
166:デフォルトの名無しさん
16/10/22 19:00:02.31 gYvFPuft.net
マイクロ秒単位でシビアな応答速度が求められるものならまだしも、たかが音楽管理ツールにパフォーマンスを求めたって仕方あるまいて
マシンパワーの1%も使ってないだろう
167:デフォルトの名無しさん
16/10/22 19:03:01.93 gYvFPuft.net
>>162
ByGenreなら大いにアリだな
getPopsはどう考えても頭おかしい
key-valueで言うところのvalueに紐付けてメソッドを作るとかギャグだわ
168:デフォルトの名無しさん
16/10/22 19:03:46.45 rJrHw2K4.net
>>159
だから今そんな話してないだろ
増え続けるRDBへのクエリをどう管理するかって話で>>150はファイルで管理をすると言っているがそんなことをするぐらいならハードコードしろと言っている
マスターデータをハードコードとかどっから出てきたんだよ
169:デフォルトの名無しさん
16/10/22 19:05:51.49 x4x3zU66.net
>>165
マスターの管理は小規模なら外部ファイル、商用ならRDBにしろって話なんだが
RDBを外部ファイルで管理って頭沸いてんの?
170:デフォルトの名無しさん
16/10/22 19:09:18.63 IpUTRyqC.net
>>162
自分は汎用性と拡張性しか考えてなかった
例えば、>>161で特定の属性名を持つ要素ノード群を得るAPIを拡張したいとする
前者は getElementsByAttributeName を追加し、後者は querySelectorAll で属性セレクタを扱えるように拡張する
特価型APIを増やしていくか、汎用性の高いAPIを一つだけ用意するか、の違い
171:デフォルトの名無しさん
16/10/22 19:10:09.83 IpUTRyqC.net
特価型→特化型
172:デフォルトの名無しさん
16/10/22 19:10:17.82 rJrHw2K4.net
>>164
もしかして根本的なところから理解してないのか?
ここでいうGetPopsのPopsとはgenre=="Pops"のmusicのことじゃないぞ
もっとドメインレイヤよりの定義を持った集合にPopsという名前をつけたものだ
最も単純なシステムではたまたま両者は一致するというだけで現実のシステムではそんなに単純ではない
173:デフォルトの名無しさん
16/10/22 19:10:57.24 rJrHw2K4.net
>>166
だめだ全く理解してない
174:デフォルトの名無しさん
16/10/22 19:14:14.98 2RMhh+15.net
>>169
getpops本人まだいたのかよ
よくあんなアホらしいもんを思いついたもんだな
うちのアルバイトでももうちょいまともなもん作るぞ
175:デフォルトの名無しさん
16/10/22 19:15:38.57 wVjPdD/+.net
>>169
>>89を読み直してこい
176:デフォルトの名無しさん
16/10/22 19:16:45.35 yvrzDyTu.net
↓以下、ゲッポ君の「俺意外全員がバカ、世界のみんなが間違ってる」の主張をお楽しみください
177:デフォルトの名無しさん
16/10/22 19:19:25.85 rJrHw2K4.net
>>172
いつの話してんだ
話題は常に変化するもの
流れを呼んでこい
178:デフォルトの名無しさん
16/10/22 19:20:25.73 wVjPdD/+.net
>>174
それお前の中で変化してるだけじゃねーの
179:デフォルトの名無しさん
16/10/22 19:22:51.88 rJrHw2K4.net
>>173
世界は言い過ぎだけどこのスレ程度のレベルじゃ冗談抜きにその通りだと思うよ
180:デフォルトの名無しさん
16/10/22 19:23:36.80 eh8upSc0.net
さすがに頭おかしい
181:デフォルトの名無しさん
16/10/22 19:29:20.29 eh8upSc0.net
特別何かをするわけでもないただのエイリアスを無闇に増やすな
なんて新入社員研修で教えてることなんだが、なんでこんなことでグダグダといつまでも騒いでんだよ
182:デフォルトの名無しさん
16/10/22 19:29:22.73 rJrHw2K4.net
>>177
だって君ら書き込みみれば
183:かるけどズブのアマチュアだろ? オレはいちおう金もらってシステム開発してるからね
184:デフォルトの名無しさん
16/10/22 19:30:25.32 eh8upSc0.net
>>179
22で入社してもう今年で37なんだが
185:デフォルトの名無しさん
16/10/22 19:33:12.94 rJrHw2K4.net
>>180
まあそういう人もいるよな
メゲズに頑張ってくれ先輩
186:デフォルトの名無しさん
16/10/22 19:33:59.10 wVjPdD/+.net
>>179
そんな珍しくもなんともないもんで自分が特別だと思いこんでたわけか
バイトを始めた学生か何かか?
187:デフォルトの名無しさん
16/10/22 19:37:48.27 eh8upSc0.net
>>181
メゲるも何も、呆れしか感じんぞ
改めて見てやるが、getPopsの中身の処理を書いてみな
188:デフォルトの名無しさん
16/10/22 19:40:01.84 lAgDZlKo.net
職業プログラマが何かの箔になると思ってる子をいじめるのはそれぐらいにしなさい
189:デフォルトの名無しさん
16/10/22 19:46:56.14 rJrHw2K4.net
>>183
return Music.Where(popsPredicate);
述語は要件と顧客の気分次第で不定な
190:デフォルトの名無しさん
16/10/22 19:48:14.90 eh8upSc0.net
>>185
なるほど
findないしそれに該当する汎用アクセサは?
191:デフォルトの名無しさん
16/10/22 19:54:00.26 rJrHw2K4.net
>>186
Music
192:デフォルトの名無しさん
16/10/22 19:55:53.56 eh8upSc0.net
>>187
うん??
Musicはメンバ等ではなくグローバルに置いてるのか?
ってことはgetPopsもグローバル?
193:デフォルトの名無しさん
16/10/22 20:01:05.09 rJrHw2K4.net
>>188
return Music;
って書けばお気に召すのかな?
こっちはちっぽけなスマホで打ってるんだ
察してくれ
194:デフォルトの名無しさん
16/10/22 20:05:28.90 4bv8Zxei.net
何でもいいけどいい加減もう止めたらどうだろう。
有意義な議論なら俺個人はどんどんやってほしいけど、
今のこれはあまりに下らなすぎる。
195:デフォルトの名無しさん
16/10/22 20:06:13.44 eh8upSc0.net
>>189
それにしてもだなあ。。。
カプセル化の何の意味もない構造に頭痛がして来たが、それはひとまず置いておくにしても
要するにgetPopsはただのエイリアス、ラッパーだろう?
getPopsが作られる前、またはそれを知らないメンバが実装した箇所ではfindが使われてる可能性がある
同じものを取って来るのに2種類以上の取得方法があるのは好ましくない
196:149
16/10/22 20:09:05.84 nST3ahFj.net
ごめん>152の言ってる意味が分からない。
自分が周回遅れなのは間違いないんだけれども。
もちろん>127を参照しろということは分かるんだが
127のどこが、ソース中に書かれる文字列をキーとして使う処理の例や説明なの?
197:デフォルトの名無しさん
16/10/22 20:16:35.71 /a8S//3o.net
>>158
リビルド不要?
最近の言語は class や interface とやらでリビルドせずに enum の要素増やしたり GetEnka( ) を追加できるのか?
198:デフォルトの名無しさん
16/10/22 20:20:59.15 /a8S//3o.net
>>192
マジで言ってるならもう少し頑張った方がいいと思う
少なくとも >>127 にはリテラル文字列はないだろ
199:デフォルトの名無しさん
16/10/22 20:22:12.22 rJrHw2K4.net
>>191
カプセル化は十分だよ
たったこれだけのクラスインターフェースからクラスの実装詳細やデータ層の構造までわかるのかい?
始まりはともかく今はもうGetPopsはただのエイリアス・ラッパーではない
ドメインで定義されたなんらかの有用なサブセットを取得するGetPopsと名付けられたメソッドだ
なんらかの有用なサブセットとはドメインの用語でつまりポップスのことだがポップスは単にGenre=="pops"を満たすmusicということではない
また今後ドメインの深化に追従してメソッド名が変わるかもしれないが今はまだGetPopsでよい
GetPopsを使う場面で汎用メソッドを使う事は確かに害悪でプログラマは反省しなければならない
しかしメソッドのみを使い同じ述語をあちこちにばらまくのもまた害悪だ
幸いにも開発環境やアナライザは日々賢くなっている
重複したコードをメソッドに一本化する作業はそれほど手間はかからない
気合を入れて一度やってしまえばその後の述語の変更は一回で済む
しかし述語をあちこちにばらまいたまま放置すれば述語の変更のたびに面倒な作業を強いられる
200:デフォルトの名無しさん
16/10/22 20:25:01.74 IpUTRyqC.net
要するに、単なるラッパーであるgetpopsを提唱したらフルボッコに論破されたから
意味を差し替えて俺は正しいと言い張ってるわけね
201:デフォルトの名無しさん
16/10/22 20:31:33.39 rJrHw2K4.net
>>193
enumはポリモーフィックなクラスファミリに置き換えられるし置き換えるべきだ
クラスファミリーにクラスを追加するのに全体のリビルドは必要ない
GetEnkaが必要になったとして追加するクラスを賢く選択すればリビルドの必要もなくシステムを拡張できる(なにも馬鹿正直に既存のリポジトリに追加する必要はない)
既存のクラスにどうしても追加したい場合は部分的なリビルドが必要になるが全体をリビルドする必要はない
202:デフォルトの名無しさん
16/10/22 20:32:37.44 rJrHw2K4.net
>>196
実にシステム開発的な流れだろう?
203:デフォルトの名無しさん
16/10/22 20:34:43.03 IpUTRyqC.net
>>198
そういうのはただの屁理屈と言う
204:デフォルトの名無しさん
16/10/22 20:39:11.57 rJrHw2K4.net
>>199
というかこの流れもある程度予測してGetPopsを最初にメソッド化したと言っていい
205:デフォルトの名無しさん
16/10/22 20:40:15.05 nST3ahFj.net
>>194
大真面目に頑張った結果なんだが
お前さんの言うとおり、まさに「>127にリテラルはない」としか読めない。
そもそも>149のどこを否定してるの?
206:デフォルトの名無しさん
16/10/22 20:41:14.01 eh8upSc0.net
>>195
そりゃ十数年も新人教育やってりゃ大体の構造は手に取るように分かるさ
先程の例ではMusicインスタンスを直接外部に渡してしまうのがまずい
どうしてもgetPopsを作るなら「汎用アクセサは用意しない」という回答が正解だったんだが
しかし、抽象的な表現で逃げるのは君の良くない癖だな
たまにそういう子も入ってくるけど
207:デフォルトの名無しさん
16/10/22 20:43:22.25 IpUTRyqC.net
>>200
中身のコードを書いてみせた時点で想定しきれてないな
まるで中学生の屁理屈じゃあないか
ホントに働いたことがあるのかどうかも疑わしい
208:デフォルトの名無しさん
16/10/22 20:45:42.06 rJrHw2K4.net
>>202
お前が書けと言ったんだろうが〜
というか汎用メソッドをパブリックにした覚えもないしMusicがミュータブルであると言った覚えもないな
これでいいかおっさん?
209:デフォルトの名無しさん
16/10/22 20:48:06.11 eh8upSc0.net
>>204
俺は「汎用アクセサは?」としか聞いてないが
後付けも良くない癖だぞ、君
そういう子は大抵長続きしない
210:デフォルトの名無しさん
16/10/22 20:50:01.78 rJrHw2K4.net
>>205
子供かw
211:デフォルトの名無しさん
16/10/22 20:50:53.25 smXSLIN9.net
200 : デフォルトの名無しさん 2016/10/22(土) 20:39:11.57 ID:rJrHw2K4
>>199
というかこの流れもある程度予測してGetPopsを最初にメソッド化したと言っていい
↑さすがにワロタわw
キミ、いじめられっこの経験あるやろw
泣いてないモン!って言いなれてるなさすが
212:デフォルトの名無しさん
16/10/22 20:52:35.58 eh8upSc0.net
>>206
言ってないものを言ったと言い張られても困る
213:デフォルトの名無しさん
16/10/22 20:52:51.02 /a8S//3o.net
>>197
> モダンな言語ならリビルド不要な拡張方法なんていくらでもあるし
って豪語してたのに
> 全体をリビルドする必要はない
ってだけなのな
そんなの動的リンク使えばいくらでもできるわな w
214:デフォルトの名無しさん
16/10/22 20:56:10.95 /a8S//3o.net
>>201
> そもそも>149のどこを否定してるの?
マジで言ってるの?
ちゃんと引用してるんだが...
> ソースにリテラルを直接書くことって、あんまり無さそう
215:デフォルトの名無しさん
16/10/22 20:56:20.59 rJrHw2K4.net
>>207
すまん
子供の頃はいじめっ子だったわ
いわゆる学校のボスザル的チンピラ
216:デフォルトの名無しさん
16/10/22 20:58:24.55 rJrHw2K4.net
>>209
そうだよ
適切に処置すればリビルドなしでシステムを拡張できる
幾らでもできるからさっきそう言ったじゃん?
217:デフォルトの名無しさん
16/10/22 21:00:10.95 xVGM3Eif.net
リビルドしてんじゃねーか
218:デフォルトの名無しさん
16/10/22 21:04:05.92 nST3ahFj.net
>>210
ますます分からん
「ソースにリテラルを書くことはない」という主張の否定として
「ソースにリテラルは書かずにこうする」という例を挙げるのは、
話の流れとして成立するの?
議論とかディベートとか、あんまり学んでこなかったからなあ。
すまん
219:デフォルトの名無しさん
16/10/22 21:15:11.07 NG/YSHI2.net
>>212
いやリビルドしてんだろカス
220:デフォルトの名無しさん
16/10/22 21:19:28.67 OSlnnavW.net
>>214
周回遅れ
って言う言葉もわからんの?
> 「ソースにリテラルを書くことはない」という主張の否定として
否定なんてしてないぞ
まだそんなこと言ってるのかよ
って言ってるだけ
ディベートとか以前にまず正しい日本語を学ぶべきかと
221:デフォルトの名無しさん
16/10/22 21:19:28.86 vcedYMQM.net
あのさあ、おまえらタグって言葉は知ってるんだよな?
222:デフォルトの名無しさん
16/10/22 21:20:47.17 OSlnnavW.net
>>212
はいはい、嘘つきはもう来なくていいから
223:デフォルトの名無しさん
16/10/22 21:39:06.58 nST3ahFj.net
>>216
ああそういうことか、すまんかった
224:デフォルトの名無しさん
16/10/24 10:20:14.55 UouFXqTF.net
>>54から話広がり過ぎワロタ
225:デフォルトの名無しさん
16/10/24 10:48:41.37 fQGKWk+u.net
基本外野が喚くところですし
226:デフォルトの名無しさん
16/10/24 12:44:29.11 83bvzfHf.net
画面遷移メソッドの名前なんですがどちらが優れていますか???
openXxxWindow(p)
openYyyWindow(p1, p2)
openZzzWindow()
openWindow("Xxx", p)
openWindow("Yyy", p1, p2)
openWindow("Zzz")
227:デフォルトの名無しさん
16/10/24 12:46:27.62 +WgIUVwT.net
>>222
それ名前の問題じゃないだろ。
228:デフォルトの名無しさん
16/10/24 13:00:17.56 csInVVUs.net
>>222
完全にアルツハイマーだな。
229:デフォルトの名無しさん
16/10/24 13:37:47.14 fQGKWk+u.net
>>222
Xxx, Yyy, Zzz, p, p1, p2の補足が欲しい
230:デフォルトの名無しさん
16/10/24 15:21:51.22 pKBfRUrb.net
>>225
Xxx, Yyy, Zzzは画面名で英語の文字列です
p, p1, p2は次の画面に渡すパラメータで画面によって異なります
231:デフォルトの名無しさん
16/10/24 15:28:35.97 5ENMhkpM.net
>>1
> 命名規則や設計の善し悪しについて議論するのは基本的に禁止。
そもそもこれしか話すことないのになぜ禁止したし
232:デフォルトの名無しさん
16/10/24 15:50:27.65 fQGKWk+u.net
>>227
xyz座標と思ったわw
Win32APIならCreateWindowってのがある
233:デフォルトの名無しさん
16/10/24 15:56:52.07 +RICRJtL.net
てめえみたいなゴミがギャーギャー喚いてうぜえからだよ
234:デフォルトの名無しさん
16/10/24 16:11:48.75 Gldo3h3g.net
>>226
正直、画面の基底クラスを作って各画面を継承で実装した方がスッキリ書ける案件だと思うけど…
どうしてもopenWindowで実装したいなら後者で
似たような動作をする関数(win標準のcreateWindow)が既にあるなら使い方も同じ感じにしたほうが分かりやすい
235:デフォルトの名無しさん
16/10/24 16:20:55.50 f1Oob2xq.net
幼稚なバカが悪乗りして悪ふざけでやってるレスにマジレスする奴も重症だな
236:デフォルトの名無しさん
16/10/24 18:29:15.85 wn6/eztm.net
>>227
名前をレスせず、命名規則や設計の善し悪しのレスしかしないバカがスレを消費するだけで
一向に命名しない流れが続いたから禁止された。
何年も前の話。
ここ最近のテンプレ読めないバカが集まって、やはり一致した結論が出てないのを見て分かるだろ。
このスレは「○○について名前を考えてください」というお題に答えるだけのマジレス歓迎の大喜利スレ。
237:デフォルトの名無しさん
16/10/24 18:34:05.48 Ri+KQSou.net
次スレは議論も禁止したほうがいい
質問者が求めてるのはズバリかヒントのワードであってバカどもの薀蓄なんてお呼びじゃない
238:デフォルトの名無しさん
16/10/24 18:41:13.01 Ja2raL71.net
議論じゃないんだな
戦争なんだな
テーマに対する意見を交わすんじゃなくて
相手に対する攻撃を応酬し合ってるんだから
239:デフォルトの名無しさん
16/10/24 18:45:32.24 f1Oob2xq.net
禁止して実効性があるの?
ないのは明白だよねw
前にも書いたが、テンプレを引用して絡んでくるバカが登場する時としない時があるのは何故?
要するに、本来スレ違いの議論にそいつ自信が参加してる時には現れないのは明白なわけ。
そして、これは個人的な感想(しかし自信はある)だが、実にどうでもいいお馬鹿な「議論」
が続いている時に限ってそのおバカは現れない。まあ語るに落ちてるよね。
要するに、ずいぶん前も書いたけど、「〜禁止」なんてルールはご都合主義のバカに他人のレスに絡む口実を与えて、
かえってスレが荒れる原因を作るだけ。
240:デフォルトの名無しさん
16/10/24 18:52:04.73 R8FyZAi8.net
マウンティング犬は今日も元気です
241:デフォルトの名無しさん
16/10/24 18:55:23.90 wn6/eztm.net
>>235
禁止してないから早速死んでくれていいよ
ってくらい無能な長文だね。
242:デフォルトの名無しさん
16/10/24 18:57:37.38 fQGKWk+u.net
>>235
> テンプレを引用して絡んでくる
って事は「命名規則や設計の善し悪しについて議論」してたんだよな?
その割には「マジレスする奴も重症」って矛盾してね?
243:デフォルトの名無しさん
16/10/24 19:02:36.61 f1Oob2xq.net
>>238
日本語でお書きください
244:デフォルトの名無しさん
16/10/24 20:14:28.55 fQGKWk+u.net
>>239
どこがわからない?
命名規則や設計の善し悪しについて議論してたからテンプレを引用して絡まれたんだろ?
245:デフォルトの名無しさん
16/10/24 20:32:37.69 f1Oob2xq.net
>>240
何を言ってるのかさっぱり意味が分からん。
246:デフォルトの名無しさん
16/10/24 20:42:00.45 fQGKWk+u.net
>>241
そうか
じゃあそのままでいいわ
247:デフォルトの名無しさん
16/10/24 21:19:09.43 XjvnPt+s.net
>>235をサニタイズするよ
禁止して実効性があるの?
ないかもね // 未検証な事柄を主観で断定しない
/* 思い込みと私怨の開陳は全カット */
禁止を押し付けらるのってなんか嫌だし(´・ω・`) // 個人的な感情であると説明しつつAAで和ます
248:デフォルトの名無しさん
16/10/24 21:40:24.47 bN8c+nPb.net
こいつの言語サニタイズしたほうがいいな
249:デフォルトの名無しさん
16/10/24 21:59:58.35 PrHBZIpa.net
このくっそ下らねぇやりとりで200レスも消化するとか底辺はやることが違うなと思う
250:デフォルトの名無しさん
16/10/24 22:17:53.78 mxK0EHtA.net
こんな塵芥と一緒にするとか底辺に失礼だろ
251:デフォルトの名無しさん
16/10/25 05:19:39.47 OZkbpJ7G.net
設計の善し悪しまで踏み込んでるのにタグ知らなかったんだぜ。
252:デフォルトの名無しさん
16/10/25 07:34:03.48 MZfG2R+8.net
この場合のタグって何?
253:デフォルトの名無しさん
16/10/25 08:05:43.55 zO0NytLF.net
値札のことだよ
254:デフォルトの名無しさん
16/10/25 09:19:12.44 g86pOwEK.net
サイズだろ
255:デフォルトの名無しさん
16/10/25 09:52:03.08 n342IJVH.net
例えるなら、人が道を聞いてるのに服装や交通ルールから説明してるんだよなあ
でも道順を全く説明できないただの交通ルールオタク
256:デフォルトの名無しさん
16/10/25 09:58:26.93 6yXN+QBc.net
不良品タグはってゴミ置き場にポイが妥当
257:デフォルトの名無しさん
16/10/25 10:56:42.10 s9TG/wfT.net
このスレッドは落として
設計・命名スレにしようや
命名と設計は不可分だからな
258:デフォルトの名無しさん
16/10/25 12:04:09.41 SxIO+8ai.net
14年続くスレを独断で終了させて立て直すとはさすが無能タグ
無能レスの応酬でなに一つ解決しないのにそんなスレが機能する訳ないだろ
14年分レス見てからテンプレ形成に至った意味を理解しろやハゲ
259:デフォルトの名無しさん
16/10/25 12:08:46.85 ZMREunEJ.net
設計まで口出しするなら質問時に言語とコードも出してもらわないと話にならないな
260:デフォルトの名無しさん
16/10/25 12:14:47.88 n342IJVH.net
ちょっと考えれば分かることだけど、質問者の言語やコーディング規約や社風や趣味を
許容できない奴が宗教論争をおっぱじめるのが目に見えてる
つーか既になってる
261:デフォルトの名無しさん
16/10/25 12:27:30.19 EzZ4fPwl.net
14年続けてこの有様じゃろくな奴がいなかったんだろうな
潰したほうが賢明だよ
まだ宗教論争のほうが実りがある
262:デフォルトの名無しさん
16/10/25 12:44:39.57 qCdUY5e1.net
・14年ずっと同じ人がはりついているわけではないので継続年数は関係ない
・この有様→つぶした方がマシになる根拠がない(設計に口出しすると何がマシなのだ?)
263:デフォルトの名無しさん
16/10/25 13:12:06.50 1R5yIvw6.net
潰すも何も、需要があると信じているなら新スレにさっさと移動すればいいだけの話。
設計・命名スレ
スレリンク(tech板)
264:デフォルトの名無しさん
16/10/25 21:01:29.23 U4JQUv53.net
スレが用意されると (書いてもいい場所が用意されると) 急に静かになるわけね
265:デフォルトの名無しさん
16/10/25 21:18:23.14 Tozirg6q.net
リクエストを処理する
の処理はどんなのがいいですかね
266:片山博文MZ ◆T6xkBnTXz7B0
16/10/25 21:35:01.01 tNFHqmMD.net
respond
267:デフォルトの名無しさん
16/10/25 22:29:29.89 QNrvjVG6.net
>>261
HandleRequests
DealRequests
268:デフォルトの名無しさん
16/10/25 22:41:57.40 Tozirg6q.net
ちょっと抽象的な質問でしたね
単語調べた結果respondに決めました
ありがとうございます!
269:デフォルトの名無しさん
16/10/26 00:29:53.63 8ZG+uxSI.net
特殊処理したいファイルを絞る正規表現の文字列の変数名をregex_specialFilesみたいにしたくなるのですがまずいでしょうか
実際にはspecialにはもっと具体的な単語が入ります
specialFilesRegexだとspecialがどこにかかるか分からない気がしてしっくりこないんです
270:デフォルトの名無しさん
16/10/26 00:46:49.43 Hu8g6Oi9.net
>>265
かっこつけて(?)無理に前置詞を省こうとするから意味不明な名前になるんだと思う
基本英語そのままでOK
RegexForFilesTo特殊処理
個人的には正規表現文字列をRegexと表現するのは嫌いなので、
PatternForFilesTo特殊処理
の方がいいと思う。
271:デフォルトの名無しさん
16/10/26 01:02:23.89 8ZG+uxSI.net
>>266
なるほどその通りですね
前置詞が完全に頭から抜けてました
regexも確かにpatternの方が分かりやすそうです
ありがとうございます、スッキリしました
272:デフォルトの名無しさん
16/10/26 01:43:11.56 LebVIXiL.net
いやむしろ説明的な長い変数名は良い習慣ではない
273:デフォルトの名無しさん
16/10/26 09:10:48.26 R7bTf3Ct.net
俺も変数名を文章っぽくにするのは好きじゃないな。
スコープがおかしな事になってるときになりがちだし。
274:デフォルトの名無しさん
16/10/26 09:49:31.37 EekeRq3r.net
>>269
では対案をどうぞ
275:デフォルトの名無しさん
16/10/26 11:08:46.69 i9LqHSRB.net
>>265
ハードコーディングしないでちゃんと名前でリソース管理したほうがいいよ
new regex(resouceManager.getString("pattern for special files"))
こうしておかないと正規表現の数が増えるたびにコードの書き換え、リビルド、テスト、公開、とめんどくさい作業をしなければならないから最悪
276:デフォルトの名無しさん
16/10/26 12:33:54.58 EekeRq3r.net
>>271
スレ違いの上に、ほとんど強迫神経症の態度だねそれは。
277:デフォルトの名無しさん
16/10/26 12:42:16.41 wESs4v7p.net
>>271のやり方でも数がふえたらリビルドが必要な件
278:デフォルトの名無しさん
16/10/26 14:41:24.69 4rKIhUw9.net
【質問者が”設計変更まで視野に入れつつ”命名に困ってここに来てる】
と思うなら、これ作ってくれてるんだから移動誘導待機なりしてくれ。
設計・命名スレ
スレリンク(tech板)
ここのスレは設計がクソだったとしても質問者のレベルの範囲で返しとけばいいんだよ。
279:デフォルトの名無しさん
16/10/26 14:49:22.45 CNqsRIZ6.net
そうそう
聞くとしても名前を考えてるオブジェクトが何するかくらいでいい
他は余計な事考えないでいい
280:デフォルトの名無しさん
16/10/26 16:24:13.43 i9LqHSRB.net
質問者に許されるレス内容
@背景と機能の説明
A候補として考えてる名前(もしあれば)
Bサンプルコード(もしあれば)
回答者に許されるレス内容
@機能に付けるべき名前(機能1つに対して1つの識別子)
これ以外の書き込みは禁止とする
281:デフォルトの名無しさん
16/10/26 16:47:17.25 Kd62j3g9.net
自分でやっといって何を言ってるんだw
282:デフォルトの名無しさん
16/10/26 17:51:29.14 7vN4PYAf.net
ここまで来ると、マジでアスペか何かだな
空気を読むとか一切できなさそう
283:デフォルトの名無しさん
16/10/26 18:41:32.26 nn4J9Ce2.net
>>276
馬鹿かこいつw
284:デフォルトの名無しさん
16/10/26 19:10:56.46 HUHPMrwb.net
>>227-229
君たちはなんでそんなに頭が悪いの?
285:デフォルトの名無しさん
16/10/26 19:17:15.22 HUHPMrwb.net
レス番を間違えちゃった
まあ大事なことだから二回書いてもいいよね
>>277-279
君たちはなんでそんなに頭が悪いの?
286:デフォルトの名無しさん
16/10/26 19:49:54.50 DCJLb856.net
MainがOFFなら
AもBもOFF
MainがONなら
AとBの個別設定を参照
この場合の個別設定を参照する部分の名前はどうする?
287:デフォルトの名無しさん
16/10/26 20:02:22.65 Kd62j3g9.net
>>282
そんな抽象的な要件だけで名前付けろって無理があると思うけど・・・
288:デフォルトの名無しさん
16/10/26 20:29:17.43 LebVIXiL.net
そもそもMainの設定を参照する部分の名前はどうしたんだよw
個別の場合だけわざわざ別の名前にしたいのか?面倒な奴だなw
289:デフォルトの名無しさん
16/10/26 20:31:23.26 2dETNhOD.net
命名云々よりリーダブル意識しろ
290:デフォルトの名無しさん
16/10/26 20:37:53.55 Vi7enIW1.net
OFFとかONとかいわれましてもw
291:デフォルトの名無しさん
16/10/26 21:18:14.00 DCJLb856.net
>>284
Mainは 基本設定 Basic かなって思ってる
同じ名前にすんの?
292:デフォルトの名無しさん
16/10/26 21:25:29.98 R7bTf3Ct.net
設定を持ってくるメソッド名の話?
293:デフォルトの名無しさん
16/10/26 21:28:37.46 R7bTf3Ct.net
>>270
せめてspecialPatternくらいで問題ないような設計にすべき
294:デフォルトの名無しさん
16/10/26 21:37:32.89 DCJLb856.net
>>288
その話
基本設定受け取るのと個別設定を受け取るのは別にしてある
295:デフォルトの名無しさん
16/10/26 21:47:36.81 Kd62j3g9.net
>>289
それが可能かは質問者しか分からない。
普通に考えて、可能ならわざわざ質問しないだろう。
不可能な可能性が皆無ならともかく、そうでないのであればスレの趣旨を尊重して
素直に質問者の問題に解答すべきだ。
296:デフォルトの名無しさん
16/10/26 22:44:11.46 DvJWGDCx.net
スレチだから議論するなよ
297:デフォルトの名無しさん
16/10/26 23:11:00.34 8ZG+uxSI.net
今更ですが>>265はあるGUIのツールに埋め込むコードの一部の話です
正規表現は処理対象ファイルを指定する箇所の設定入力部に書いてあるので設計でどうこうというのは無理そうです
ツールの動きを無理にコードで制御しようとしてるので名前に無理が生じるのは仕方ないかもしれないですね…
298:デフォルトの名無しさん
16/10/26 23:44:24.00 4rKIhUw9.net
ということ。
一々設計レベルから作り直せると思ってる暇プログラマーは、どうぞ新スレに移動してください。
高尚な思想を元に数レスで一同を納得させられる流れを見せつけてくれるでしょう。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
95日前に更新/268 KB
担当:undef