◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

オブジェクト指向システムの設計 173 [無断転載禁止]©2ch.net YouTube動画>1本 ->画像>1枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1502182334/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2017/08/08(火) 17:52:14.38ID:4Kd2O+xB
前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113

類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714

2デフォルトの名無しさん2017/08/08(火) 18:08:45.58ID:ZsjYzbGD
前スレ >>996
> 関数型はそれが出来るというより
> 意図的に排除する仕組みが言語仕様で用意されているといったほうがいいな
ほう

では、「発送済みなら注文キャンセルできない」コードを示してみて

32017/08/08(火) 19:29:01.58ID:y4ztJzgK
一体何がおかしかったのかわからん。

4デフォルトの名無しさん2017/08/08(火) 21:34:38.17ID:OPNa8W2g
>>1
クソスレをさも当然のように張るなゴミ屑
PHPでも使って死んでろゴミ屑
死ねゴミ屑

5デフォルトの名無しさん2017/08/08(火) 21:44:02.11ID:jXIjDDES
>>2
違う話に移る前に

> 関数型はそれが出来るというより
> 意図的に排除する仕組みが言語仕様で用意されているといったほうがいいな

ということには納得したの?

6デフォルトの名無しさん2017/08/08(火) 22:54:20.01ID:m8GLf68F
別のスレからだけど丁度よいタイミングだったから転載するわ

413 名前:デフォルトの名無しさん[sage] 投稿日:2017/07/23(日) 00:54:24.08 ID:4pTb5xvQ [2/2]
           ┌─マシン語
           │
言語のレベル─┼─低級言語
           │            ┌─コンパイラ型
           └─高級言語─┤ 
                         └─インタプリタ型
        ┌─手続き型
        │
        │         ┌─宣言型
        │         │
文法──┤         ├─関数型
        │         │
        └ 非手続き型─┼─論理型
                   │
                   ├─グラフィック型
                   │
                   └─問い合わせ
                           
パラダイム──オブジェクト指向
                           
http://webrylabo.blogspot.jp/2009/11/blog-post_28.html
2009年11月28日土曜日

7デフォルトの名無しさん2017/08/08(火) 23:06:11.89ID:QlAWaCDH
構造化手法がないぜ!

8デフォルトの名無しさん2017/08/08(火) 23:12:19.94ID:m8GLf68F
それは俺も思った
手続き型のカテゴリにでも入れとけばよいんじゃないですかね

オブジェクト指向はレシーバーにメッセージをディスパッチするってだけの事だから
特にどこに属するってものでも無いのが良くわかるな

9デフォルトの名無しさん2017/08/09(水) 10:30:25.52ID:44tTrGN4
>>5
> 違う話に移る前に
違う話って何?
もともとの話なんだけど

> ということには納得したの?
納得するかどうかは、コード見てからだね

10デフォルトの名無しさん2017/08/09(水) 10:42:09.50ID:44tTrGN4
話がずれないように軽くまとめとくと、注文のキャンセル問題には三つの着眼点がある

1. キャンセルすることを禁止されているため呼べない(権限による制限など)
2. キャンセルは許可されているが、すでにキャンセル不可の状態になっている
 (キャンセル可否チェックの時点で、既に発送済みだった場合)
3. キャンセルは許可されていてキャンセル可能状態だが、実行してみたらキャンセルできなかった
 (トランザクションの一貫性の問題)

11デフォルトの名無しさん2017/08/09(水) 13:20:32.85ID:sH0CwjHm
キャサリンの本当の状態はいくつあるん?

12デフォルトの名無しさん2017/08/09(水) 13:24:49.74ID:sH0CwjHm
権限なし
権限あり
  アクティブ
  非アクティブ
    問い合わせ中
    済み
    うんこ中

リザルト
  うんこ
  非うんこ

13デフォルトの名無しさん2017/08/09(水) 21:30:53.29ID:6lirvFze
>>9
じゃあこの話に戻ろうかね

> 関数型はそれが出来るというより
> 意図的に排除する仕組みが言語仕様で用意されているといったほうがいいな

14デフォルトの名無しさん2017/08/09(水) 21:31:43.00ID:6lirvFze
関数型に言語仕様で用意されている
"意図的に排除する仕組み"とはなに?

15デフォルトの名無しさん2017/08/09(水) 22:02:15.81ID:hEgnFYnk
そんなの自分で勉強しろよ
何でも教えてもらえると思うな

16デフォルトの名無しさん2017/08/09(水) 22:06:00.81ID:hEgnFYnk
手続き型言語は副作用があるのが前提で
その場合、結果が処理順に影響するけど
関数型言語は意図的にそれを排除する仕組みがある
それだけ

17デフォルトの名無しさん2017/08/09(水) 22:18:24.91ID:6lirvFze
>>16の説明に納得してから
次の話題に入りましょう

18デフォルトの名無しさん2017/08/09(水) 22:27:55.99ID:eM0BjlR2
意図的に副作用を排除するって大雑把すぎるな
そんなん言ったらどの言語でも同じ

19デフォルトの名無しさん2017/08/10(木) 11:40:37.46ID:3830aR0n
>>16
その仕組みを説明しなよ

20デフォルトの名無しさん2017/08/10(木) 11:46:48.00ID:91EfFD+U
手抜き型言語ってか

21デフォルトの名無しさん2017/08/10(木) 11:49:51.99ID:sRASy4ht
片っ端からImmutableにしとけば副作用なんて簡単に排除できるわな

22デフォルトの名無しさん2017/08/10(木) 12:28:26.86ID:3830aR0n
DBに保存とか表示するとか出力も副作用だろ

23デフォルトの名無しさん2017/08/10(木) 12:36:34.29ID:sRASy4ht
それは期待する振る舞いだから副作用とは言わん

242017/08/10(木) 12:42:06.85ID:JPFASHG9
>>23
その意味の「副作用」って薬とかのそれじゃないの?

25デフォルトの名無しさん2017/08/10(木) 12:46:42.98ID:sRASy4ht
>>24
状況次第

26デフォルトの名無しさん2017/08/10(木) 12:53:02.81ID:dTV8MPgF
なんでも状況次第になるね

27デフォルトの名無しさん2017/08/10(木) 12:53:54.30ID:3830aR0n
副作用の定義からかよ
ロジックや計算という作用と、出力等の副作用を分けましょうね
って指針じゃないの

28デフォルトの名無しさん2017/08/10(木) 12:59:33.35ID:sRASy4ht
この業界ってなんでも状況次第だろう
状況無視して単語と意味を1:1で紐付けるのは素人の考え方

292017/08/10(木) 13:03:48.96ID:JPFASHG9
副作用の無い、と聞くと、永続化しないもので、リエントラント可能で、入力と出力が常に一定、とイメージしてしまうな。
そういう意味ではDB保存するデータを作る部分が副作用無い関数で、実際に保存する部分がデータを作る部分に対する副作用と言うか作用そのものなのか。

30デフォルトの名無しさん2017/08/10(木) 13:19:54.10ID:Jc4Vqs2x
物理的に見ればどんな処理だろうと副作用を避けることはできない
なので、どこまでを副作用とみなすか? という定義の話になる
そしてそれはコンテキストに依存した問題だ

31デフォルトの名無しさん2017/08/10(木) 13:36:05.56ID:HGihyxQL
とりあえずJava、C++、C#などのOOPは手続き型のOOPだから
それで問題ない

32デフォルトの名無しさん2017/08/10(木) 13:40:11.21ID:Jc4Vqs2x
それはマルチパラダイムでしょ

33デフォルトの名無しさん2017/08/10(木) 15:09:36.27ID:HGihyxQL
じゃ、手続き型のマルチパラダイム言語だね

34デフォルトの名無しさん2017/08/10(木) 15:14:43.44ID:TjDaZrJ6
プログラミングにおける副作用(ふくさよう)とは
ある機能がコンピュータの(論理的な)状態を変化させ
それ以降で得られる結果に影響を与えることをいう
代表的な例は変数への値の代入である

352017/08/10(木) 15:26:35.32ID:JPFASHG9
>>30
微妙に賛同しかねるな。
クエリ言語系は、純粋なものと純粋ではないものを別けて考えてると思う。
オブジェクト指向でもなんでも。
SQLのSelectとか、XQueryでの検索とか、色々。
couchdbなんかは、純粋でないものがホントに更新系みたいな書き方できるし、純粋でない操作をされたらその段で他の純粋な操作の結果を先に作りに行くから、問い合わせ滅茶苦茶早いし。
避ける事は出来ないが、コンテキスト依存ならしっかり決めた方が幸せでは?

36デフォルトの名無しさん2017/08/10(木) 21:20:10.00ID:x7OPh5BN
現在の日時を取得するDate.now()は
副作用がある関数でしょうか?

37デフォルトの名無しさん2017/08/10(木) 21:37:57.25ID:TjDaZrJ6
>>36
ないでしょ
関数を呼び出すことによって時間が変化してるわけじゃないんだから

38デフォルトの名無しさん2017/08/10(木) 21:44:10.82ID:x7OPh5BN
ではランダムな値を返してくれる関数は
副作用があるのでしょうか?

39デフォルトの名無しさん2017/08/10(木) 21:45:09.99ID:TjDaZrJ6
Date.now()を使った関数は参照透過性を満たさないだろうけど
副作用がないならば参照透過性を満たす は偽ってことですな

40デフォルトの名無しさん2017/08/10(木) 21:45:55.45ID:TjDaZrJ6
>>38
疑似乱数であれば内部に状態を保持してるはずよ
なので副作用はある

41デフォルトの名無しさん2017/08/10(木) 21:57:53.53ID:x7OPh5BN
>>40
外から見えない内部状態の変化でも
副作用ってことになるの?
じゃあSQLのselect実行して実行ログ記録された場合は
副作用になるの?

42デフォルトの名無しさん2017/08/10(木) 22:05:21.46ID:TjDaZrJ6
>>41
| 副作用(ふくさよう)とは
| ある機能がコンピュータの(論理的な)状態を変化させ
| それ以降で得られる結果に影響を与えること

擬似乱数の場合は内部の状態を変化させてその後の結果に影響を与えるから副作用だよ

ファイルの入出力が副作用だからログの記録も副作用なんじゃないかな
実行ログを結果と見るのだろうね

43デフォルトの名無しさん2017/08/10(木) 22:31:11.05ID:2UCJzaDv
レジスタを書き換えたら副作用な

44デフォルトの名無しさん2017/08/11(金) 09:48:48.76ID:uuzmQ1J4
>>36
副作用と呼ぶかどうかは置いといても
テストしやすいようにラップしとくとこだな
乱数も

45デフォルトの名無しさん2017/08/11(金) 10:17:57.22ID:3EZq4DC0
int unkoHash(int x) {
Random r = new Random(x);
int n = r.nextInt();
for (int i = 0; i < 10; ++i) n ^= r.nextInt();
return n;
}

乱数を使ってるが副作用は全くないぞ
何度も言ってるけどこの業界は何もかもが状況次第でしかないんだよ
乱数なら副作用だとかそういった固定観念はくその役にも立たない

46デフォルトの名無しさん2017/08/11(金) 10:33:25.53ID:hC5ICppb
>>45
何それ?
乱数テーブルどうなってんの?
毎回同じテーブルになるんだろうな?

47デフォルトの名無しさん2017/08/11(金) 13:15:09.86ID:qKco1j+0
>>45
状況次第なのはIT業界にかぎらず全部そうだと思うんだよ
状況次第と言うことに意味があるとは思えないなあ
そんなの当たり前じゃん
人間はいつか死ぬんだよと言ってるようなものじゃん

48デフォルトの名無しさん2017/08/11(金) 13:22:25.81ID:3EZq4DC0
>>46
状況次第

49デフォルトの名無しさん2017/08/11(金) 13:24:52.94ID:3EZq4DC0
>>47
誰が何と言っても全ては状況次第という真実からは逃れられない
全て状況次第と言うことが意味がないのと同じくらい
状況を無視して議論することもまた意味がない

50デフォルトの名無しさん2017/08/11(金) 13:26:53.02ID:qKco1j+0
>>48
いやいや、副作用がないと言ってるんだから
副作用がないという仮定のもとでは毎回同じテーブルになるっしょ
こういう状況ではこうなりますみたいに論理展開しないと

>>49
状況次第と言ってるだけで状況を無視してるのはそっちだと思うけど

51デフォルトの名無しさん2017/08/11(金) 13:47:51.60ID:3EZq4DC0
>>50
unkoHashが毎回同じ値を返すとしても
必ずしも毎回同じ乱数テーブルである必要はないんだよ
たまたま同じ結果を返す乱数テーブルを動的に切り替えてもいいししなくてもいいでしょ
つまり乱数テーブルが固定かどうかは状況次第ってわけ

52デフォルトの名無しさん2017/08/11(金) 13:57:55.98ID:qKco1j+0
>>51
たまたまだったら副作用がないことが保証されなくない?
たまたまうまくいくものを副作用が全くないと言うのはなんか怪しくない?

53デフォルトの名無しさん2017/08/11(金) 14:08:18.96ID:3EZq4DC0
>>52
読み違えてるよ

54デフォルトの名無しさん2017/08/11(金) 14:09:19.21ID:qKco1j+0
状況次第だ(状況を分析できるとは言ってない)みたいな

何を聞いてもケースバイケースとしか言わない人って
ちょっと怪しいよね

55デフォルトの名無しさん2017/08/11(金) 14:12:54.09ID:3EZq4DC0
>>54
どう言い繕っても何事も状況次第であるってのは避けようがないんだよ
怪しいだのなんだのと人を貶めるような発言をしてもその事実は変わらない

56デフォルトの名無しさん2017/08/11(金) 14:17:11.67ID:qKco1j+0
>>55
自分の言説がどういう状況で成り立つのが説明することから
逃げるために一般的すぎて何の情報も持たない状況次第と
いう言葉を使っておられるのかなって思うんだよね

57デフォルトの名無しさん2017/08/11(金) 14:18:50.88ID:3EZq4DC0
>>56
状況次第であることを認めず分析や定義を怠る事
これがもっとも愚かな行いである

58デフォルトの名無しさん2017/08/11(金) 14:22:33.35ID:qKco1j+0
>>57
状況次第なのは当たり前じゃん

こういう状況ではこうなりますという選択肢が自分の中にあって
今の話の状況はこれに該当するからこうなるよって示すのが
状況を分析して示すってことなのかなと

単に状況次第だと言うのはその分析して示すっていう過程が抜けてるかなと
それを愚かな行いだと言うのならちゃんとやってよって思う

59デフォルトの名無しさん2017/08/11(金) 14:29:58.15ID:ppZy/8OZ
>>45
そもそもこのクソコード乱数テーブルの初期化が考慮されてねぇ
副作用以前の欠陥コードだろうが
でも状況次第(周りも全員馬鹿)でいいコードポジなんだろうな

60デフォルトの名無しさん2017/08/11(金) 14:31:36.29ID:3EZq4DC0
>>58
取り組むべき問題があればやってるが、
今はそうじゃなく、何事も状況次第ということがわからない人たちに啓蒙してるんだよ

61デフォルトの名無しさん2017/08/11(金) 14:32:59.82ID:ppZy/8OZ
>>60
そいつらの態度も状況次第だろうが
黙って見てろよチンカス

62デフォルトの名無しさん2017/08/11(金) 14:33:24.85ID:3EZq4DC0
>>59
周回遅れ

63デフォルトの名無しさん2017/08/11(金) 14:33:55.72ID:3EZq4DC0
>>61
意味不

64デフォルトの名無しさん2017/08/11(金) 14:34:59.14ID:qKco1j+0
>>60
当たり前すぎて言わないだけで状況次第がわからない人っていないと思うんだよ
各々が状況を分析してこうなんじゃないかと述べてると思うんだよ
ケース・バイ・ケースは便利な言葉だけれどもちょっと議論には向かないかなと

65デフォルトの名無しさん2017/08/11(金) 14:35:14.35ID:ppZy/8OZ
>>60
状況次第(お前が嫌われてる)の判断の結果としてそうなってんじゃねーの?(笑)

66デフォルトの名無しさん2017/08/11(金) 14:36:18.35ID:qKco1j+0
>>62
ちょっと待ってくれ、周回遅れは別に悪いことじゃないだろ
掲示板での議論ってそういう時間的な差を埋められるから良いと思うんだよな

67デフォルトの名無しさん2017/08/11(金) 14:36:37.06ID:ppZy/8OZ
>>63
まあ、それも状況次第じゃねーの?

68デフォルトの名無しさん2017/08/11(金) 14:36:41.01ID:3EZq4DC0
>>64
いやこのスレにはわかってない奴が結構いるぜ
匿名だから人数はわからんが
まあ過去ログ見てきなよ俺の言ってること実感できるから

69デフォルトの名無しさん2017/08/11(金) 14:36:58.95ID:ppZy/8OZ
>>66
それも状況次第だよね

70デフォルトの名無しさん2017/08/11(金) 14:37:27.04ID:3EZq4DC0
>>65
すまんもう少しわかりやすく
母国語でいいから

71デフォルトの名無しさん2017/08/11(金) 14:37:48.34ID:ppZy/8OZ
>>70
状況次第だよね

72デフォルトの名無しさん2017/08/11(金) 14:38:35.21ID:ppZy/8OZ
イザナミだ

73デフォルトの名無しさん2017/08/11(金) 14:40:41.14ID:3EZq4DC0
>>66
それも状況次第だな
非リアルタイムな対話のツールとして有用性はある
でもトンチンカンな意見で過ぎ去った話題を掘り起こそうとする変なのも呼び寄せてしまうデメリットもある

74デフォルトの名無しさん2017/08/11(金) 14:41:27.21ID:ppZy/8OZ
>>73
仮にそれをAとする

75デフォルトの名無しさん2017/08/11(金) 14:44:46.14ID:qKco1j+0
>>68
それってただのバイアスじゃない?
議論って各々がそれぞれの仮定をおいて意見を出し合うものだから
この人の意見はこういう仮定だなーというふうに理解しなきゃいけなくて
他の状況が考えられるから状況次第だとわかってないみたいに結論するのは拙いかなと

76デフォルトの名無しさん2017/08/11(金) 14:45:43.48ID:ppZy/8OZ
>>75
イザナギだ

77デフォルトの名無しさん2017/08/11(金) 14:48:31.40ID:qKco1j+0
>>73
議論が広まるのは良いことじゃん
トンチンカンというのはちょっと感情的かなと

78デフォルトの名無しさん2017/08/11(金) 14:50:48.61ID:3EZq4DC0
>>75
問題はその仮定を共有しないことな
ある程度、話を進めた後で、酷いコードや前提条件を出してきて
あ、こいつこんな世界観で議論してたんだ、アホくさ〜
とか、よくあるじゃん
酷いのになると、自分が業務で扱ってるシステムを前提に(当然他の人はそんなもん知らん)話を進めたりする

79デフォルトの名無しさん2017/08/11(金) 14:51:48.06ID:3EZq4DC0
>>77
広がる状況ならいいけどな
この状況では明後日の方向に進むだけだろう

80デフォルトの名無しさん2017/08/11(金) 14:52:33.11ID:ppZy/8OZ
>>77
それも状況次第だよね〜
って散々小学生のときにやったぜ

状況次第って言ってもビジネスでは
事象が滅茶苦茶多くて把握するのも手に負えないのか
少なくとも10パターン程度で他の人間の手を借りれば把握できるのか
規模の目算ぐらいは立ててから相談しねーと無能の烙印を押されるけどな

81デフォルトの名無しさん2017/08/11(金) 14:58:26.69ID:qKco1j+0
>>78
ネットで検索すればわかるようなことより自分の経験で語る人の意見って貴重だと思うよ
そういう世界があるだなとかそういうシステムを保守することになったら参考にしようとかさ
他人の世界を自分の世界に取り込むことこそ議論の醍醐味だよ
セルが人造人間18号を吸収したときとか興奮したでしょ? 完全体目指してるんでしょ? 丸ごと吸収したらいいよ!

82デフォルトの名無しさん2017/08/11(金) 14:59:39.51ID:3EZq4DC0
>>81
語る前に状況説明しろって言ってんだけど

83デフォルトの名無しさん2017/08/11(金) 14:59:59.85ID:ppZy/8OZ
>>82
イザナミだ

84デフォルトの名無しさん2017/08/11(金) 15:03:08.85ID:qKco1j+0
>>79
議論の方向性って別に気にする必要なくない?
こっちじゃなきゃ嫌なの!みたいな思いを持ち込む必要なくない?

85デフォルトの名無しさん2017/08/11(金) 15:04:59.57ID:ppZy/8OZ
>>84
有意義な方がいいと思うが
仮にそれをAとする

86デフォルトの名無しさん2017/08/11(金) 15:05:57.37ID:qKco1j+0
>>82
相手も何を説明すれば良いのかわからないのじゃないかな
なかなか難しいからね、面と向かって話してても誤解することもあるし
ほんと会話って難しい

87デフォルトの名無しさん2017/08/11(金) 15:07:11.11ID:ppZy/8OZ
>>86
(*゚∀゚)じゃあ、お互い何話してるかわからないんだよw

88デフォルトの名無しさん2017/08/11(金) 15:10:53.65ID:qKco1j+0
>>87
そういうこともあるよ、会話が上手なベテランの人でさえあるよ
自分の理解をこまめに示して確認しながらすすめるしかないんじゃないかな

892017/08/11(金) 15:23:45.68ID:BPqPzkT9
状況次第ではないように、何故定義できないのか?
俺は事実、「副作用の無いもの」が、参照透過であるはずだと思ってしまってたし。
有意義だと思うんだけどな。

90デフォルトの名無しさん2017/08/11(金) 15:26:33.67ID:ppZy/8OZ
>>88
ねーよ
テメーのまわりに比較的キチガイが集中してんだろ

91デフォルトの名無しさん2017/08/11(金) 15:27:43.27ID:qKco1j+0
>>90
ねーのかよ!クズが!死ね!!

92デフォルトの名無しさん2017/08/11(金) 15:27:52.81ID:qKco1j+0
論破しました

93デフォルトの名無しさん2017/08/11(金) 15:29:55.10ID:ppZy/8OZ
そもそもまともな上司は状況次第なんて報告は許さない
社会に出てからは聞き慣れない言葉だよね
クソ報告したやつは終電まですべてのケースを記述する始末書でも出してろ

94デフォルトの名無しさん2017/08/11(金) 15:30:46.02ID:kSH7ofFJ
逮捕されるかどうかはJK次第

95デフォルトの名無しさん2017/08/11(金) 15:34:46.80ID:qKco1j+0
>>93
その上司ホントにまともか?

96デフォルトの名無しさん2017/08/11(金) 15:38:16.98ID:ppZy/8OZ
>>95
もちろん
状況次第だろw

97デフォルトの名無しさん2017/08/11(金) 15:44:28.97ID:qKco1j+0
>>96
まともな上司が状況次第を許さないから状況次第は許されないんだというわけだろ
上司のまともさが状況次第だとするなら状況次第が許されないことも状況次第になるわけだから
状況次第が許される可能性が存在することが否定されないわけだから
ゆえに状況次第なのは状況次第ってことになるから結局お前状況次第って言いたいだけなんじゃないの?
状況次第ってそんなに言いたいかねその感覚わからんわ

98デフォルトの名無しさん2017/08/11(金) 15:53:24.92ID:ppZy/8OZ
>>97
仮にそれをAとする

99デフォルトの名無しさん2017/08/11(金) 15:56:11.97ID:O4emMrUA
仮なので本当はAではない

100デフォルトの名無しさん2017/08/11(金) 16:03:05.42ID:ppZy/8OZ
イザナミだ

101デフォルトの名無しさん2017/08/11(金) 17:06:21.52ID:7B9fqweO
「あ」とかいう次世代言語議論スレにもいる手帳持ちの糞コテここにもいたのかよ

102デフォルトの名無しさん2017/08/11(金) 17:09:11.74ID:ppZy/8OZ
>>101
そんなスレ全く興味無いが
仮にそれをAとする

103デフォルトの名無しさん2017/08/11(金) 17:22:25.79ID:4bbWTV9L
372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子が求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

104デフォルトの名無しさん2017/08/11(金) 17:35:59.16ID:boTWV/1Y
すげー伸びてるときは読まなくていい法則

105デフォルトの名無しさん2017/08/11(金) 17:40:46.75ID:ppZy/8OZ
>>104
イザナミだ

1062017/08/11(金) 23:54:31.04ID:zyovbRWQ
>>101
手帳なんかもっとらんぞw

107102017/08/12(土) 13:42:25.09ID:A4v2+zpK
なんだ、この程度のコードも示せないのか

108デフォルトの名無しさん2017/08/12(土) 13:58:11.29ID:mnq0jZNZ
>>107
お前、どこ中?

109デフォルトの名無しさん2017/08/12(土) 15:22:29.61ID:VqNg7Zuq
>>107
模範コードをおなしゃす

110デフォルトの名無しさん2017/08/12(土) 15:23:50.47ID:1uDJW21d
>>109
仮にその模範コードをAとする

111デフォルトの名無しさん2017/08/12(土) 15:25:11.50ID:VqNg7Zuq
状態が受注のレコード持ってきて更新かけるだけなんじゃないのかな
2,3は楽観同時実行制御でいいし1は権限テーブル用意すれば良い

112デフォルトの名無しさん2017/08/12(土) 16:14:24.62ID:A/BCmj8c
>>110
イザナミか?

113デフォルトの名無しさん2017/08/12(土) 16:18:03.62ID:mnq0jZNZ
>>112
イザナミだ

114デフォルトの名無しさん2017/08/12(土) 16:24:20.41ID:A4v2+zpK
>>109
いやいや、オブジェクト指向スレでオブジェクト指向だったらどうしましょうねって場に、
関数型ならできるよって切り込んできたんだから、じゃコード示してみてってなるでしょ

115デフォルトの名無しさん2017/08/12(土) 16:27:08.00ID:A4v2+zpK
いちいち念押ししながらじゃないと話が発散してしまうのがうざいんだが、

> 関数型はそれが出来るというより
> 意図的に排除する仕組みが言語仕様で用意されているといったほうがいいな
これを示してくれってことね

116デフォルトの名無しさん2017/08/12(土) 16:34:56.80ID:VqNg7Zuq
>>115
経緯を一から全部まとめた方がいんじゃないかな
オブジェクト指向ではこう書くけどと示されていたら
答えやすいんじゃない? そういうとこちゃんとやろうよ

117デフォルトの名無しさん2017/08/12(土) 16:39:35.44ID:A4v2+zpK
>>116
オブジェクト指向でどうやるかは、前スレでさんざん話でたでしょ
また繰り返したいの?

118デフォルトの名無しさん2017/08/12(土) 16:41:04.74ID:VqNg7Zuq
>>117
このスレで問うならそれくらいやるべきだと思うよ
自分でコード書いてオブジェクト指向ならこうやるって
示して関数型ならどうやる?って聞くんだよ
答えやすい状況を作るのが君の仕事だろ

119デフォルトの名無しさん2017/08/12(土) 16:43:04.72ID:A4v2+zpK
>>118
君の好奇心を満たすために俺がいるわけじゃない
まとめたいなら君がすれば?

で、前スレ >>996が俺の質問をさらに無視するもよし
別に誰も困らないよ

120デフォルトの名無しさん2017/08/12(土) 16:44:09.89ID:A4v2+zpK
>>118
つか、前スレ>>996までの流れ全部読んでからレスしろ

121デフォルトの名無しさん2017/08/12(土) 16:44:52.54ID:mnq0jZNZ
結局、掲示板でオブジェクト指向の話するとこうだからなぁ

122デフォルトの名無しさん2017/08/12(土) 16:47:24.11ID:A4v2+zpK
>>121
それは、
・オブジェクト指向を好む者は、一般に言ってまともな会話ができない
・オブジェクト指向の話をすると、他パラダイム信奉者が必ず邪魔に入る
のどっち?

123デフォルトの名無しさん2017/08/12(土) 16:47:25.02ID:mnq0jZNZ
せめて模範になるソースとか落ちてないのかね?
誰でもダウンロードできるところに
できれば動くのがいいっていうか動くの必須だな

124デフォルトの名無しさん2017/08/12(土) 16:49:29.81ID:VqNg7Zuq
>>120
それは無茶でしょ

このスレに持ち込むのなら改めて流れをまとめて
提示しないと無責任だよ

125デフォルトの名無しさん2017/08/12(土) 16:49:55.46ID:A4v2+zpK
はぁ?
ドアなんちゃら問題みたいな話じゃなくて、>>10の話だぞ
なんで湖畔となるコードなんぞいるんだ?

126デフォルトの名無しさん2017/08/12(土) 16:50:22.02ID:mnq0jZNZ
>>122
ソースを元にああだこうだって議論ができないのよ
githubにうpって上げるでもあればいいけどね
そもそもオブジェクト指向派は理想ばっかり掲げて
君らが素晴らしいとするソースの一枚でも俺に見せてみろという感じはある

127デフォルトの名無しさん2017/08/12(土) 16:51:09.56ID:A4v2+zpK
>>124
> このスレに持ち込むのなら改めて流れをまとめて
> 提示しないと無責任だよ
前スレ終了直前で話をぶっこんできて、何の説明もないまま>>5みたいなことを言い出すのは無責任じゃないのか?

128デフォルトの名無しさん2017/08/12(土) 16:51:52.62ID:VqNg7Zuq
>>10 の話がただの覚書みたいになってるから
みんな答えにくいんじゃないかな

仕様とコードをまとめてできれば経緯もまとめて欲しいけど
そうやってきちんとした形で提示した方が良いと思うよ

129デフォルトの名無しさん2017/08/12(土) 16:52:29.11ID:A4v2+zpK
>>126
なんだ、「他パラダイム」の人だったか

オブジェクト指向スレ荒らすのやめるか、自説を展開するならコードで説明してくれないかな

130デフォルトの名無しさん2017/08/12(土) 16:52:55.77ID:VqNg7Zuq
>>127
>>5には納得したの? ちゃんと答えなよ

131デフォルトの名無しさん2017/08/12(土) 16:53:58.03ID:A4v2+zpK
>>128
> みんな答えにくいんじゃないかな
前スレ>>996に質問してるだけなんですが

話に割り込むなら、前スレの流れ読んでからにしてくれよ
いちいち相手するの面倒

132デフォルトの名無しさん2017/08/12(土) 16:54:26.68ID:A4v2+zpK
>>130
> >>5には納得したの? ちゃんと答えなよ
>>9

133デフォルトの名無しさん2017/08/12(土) 16:54:54.32ID:VqNg7Zuq
>>132
何のコードなの?

134デフォルトの名無しさん2017/08/12(土) 16:55:26.44ID:VqNg7Zuq
きちんとまとめてないからこうやっていちいち聞かなきゃいけないでしょ?
だからちゃんとまとめなよ

135デフォルトの名無しさん2017/08/12(土) 16:55:47.89ID:A4v2+zpK
>>133
君は知らなくていいよ

136デフォルトの名無しさん2017/08/12(土) 16:56:16.70ID:A4v2+zpK
>>134
君、前スレ>>996なの?

137デフォルトの名無しさん2017/08/12(土) 16:57:03.57ID:VqNg7Zuq
他人にコードで示して欲しいならきちんと仕様をまとめて
オブジェクト指向ではこう実装しますって参照実装も示さないと
何を書けばいいのかわからないよね
相手の立場に立って考えて欲しい

138デフォルトの名無しさん2017/08/12(土) 16:57:45.25ID:A4v2+zpK
>>137
で、君、前スレ>>996なの?

139デフォルトの名無しさん2017/08/12(土) 16:58:20.29ID:VqNg7Zuq
>>135
このスレに書き込んだ時点で俺を始めこのスレを見てる人は
すべてを知る必要があるだから聞いているんだ

>>136
違うよ、まったくの別人だよ

140デフォルトの名無しさん2017/08/12(土) 16:58:35.89ID:VqNg7Zuq
>>138
違うっつってんだろ

141デフォルトの名無しさん2017/08/12(土) 16:59:42.84ID:VqNg7Zuq
>>996からのみ返信欲しいならダイレクトメールを送るべき
このスレに書き込んだ時点で他の大勢に見てもらいたいという
思いがあるわけだから、その責任を果たさなければいけない

142デフォルトの名無しさん2017/08/12(土) 17:00:06.39ID:A4v2+zpK
>>139
> すべてを知る必要があるだから聞いているんだ
じゃ、前スレ読めば?
なんで君のために前スレのダイジェスト作んなきゃならないの?

>>140
違うなら説明する必要するないよね
俺の質問相手は、前スレ>>996なんだから

143デフォルトの名無しさん2017/08/12(土) 17:00:23.16ID:VqNg7Zuq
スレに書き込むならスレを読む人全員にわかるように書きなさいよ

144デフォルトの名無しさん2017/08/12(土) 17:00:40.50ID:A4v2+zpK
2017年にもなって2ch初心者かよ

んじゃ、NGね

145デフォルトの名無しさん2017/08/12(土) 17:01:46.71ID:VqNg7Zuq
>>142
俺だけじゃないスレを読む人全員のためにまとめるべき
なぜならば君はこのスレに書き込んでいるからだ
このスレが君だけのものだったらそんなことしなくていいよ
だけど違うよね?このスレは俺のものであり、みんなのものだよ
君のプライベートなやり取りを書き込むスレじゃない

146デフォルトの名無しさん2017/08/12(土) 17:02:37.46ID:VqNg7Zuq
>>144
掲示板っていうのは皆のものなんだよ
君だけのものじゃないんだよ
俺とみんなのものなんだよ
逃げるのみっともないよ

147デフォルトの名無しさん2017/08/12(土) 17:06:50.53ID:A/BCmj8c
マジでイザナミ感あってマジでウケるんですけっっど

148デフォルトの名無しさん2017/08/12(土) 17:07:24.12ID:VqNg7Zuq
僕の発言はすべて>>996に宛てたものですっていうのなら
アンカーを付けるべきなんだよね
それをやってないのは邪な思いがあるからだよね
まるでこのスレでみんながそれを議論していたかのように思わせたい
甚だ汚い思いがあったからそうしたんだよ
話詰めたら>>996との個人的なやり取りだから干渉しないで欲しいと言うわけだろ
姑息、ただただ姑息

149デフォルトの名無しさん2017/08/12(土) 17:09:30.95ID:VqNg7Zuq
ときどきNG解除して書き込み覗いてるんだろうな

            _,,..r'''""~~`''ー-.、
            ,,.r,:-‐'''"""~~`ヽ、:;:;:\
           r"r          ゝ、:;:ヽ
   r‐-、   ,...,, |;;;;|       ,,.-‐-:、 ヾ;:;ゝ
   :i!  i!  |: : i! ヾ| r'"~~` :;: ::;",,-‐‐-  `r'^!
    !  i!.  |  ;| l|  ''"~~   、      i' |
     i! ヽ |  | |    ,.:'"   、ヽ、   !,ノ
    ゝ  `-!  :| i!  .:;: '~~ー~~'" ゛ヾ : : ::|          イェーイ、みてるぅ〜?
   r'"~`ヾ、   i! i!   ,,-ェェI二エフフ : : :::ノ~|`T
  ,.ゝ、  r'""`ヽ、i! `:、   ー - '" :: : :/ ,/
  !、  `ヽ、ー、   ヽ‐''"`ヾ、.....,,,,_,,,,.-‐'",..-'"
   | \ i:" )     |   ~`'''ー---―''"~
   ヽ `'"     ノ

150デフォルトの名無しさん2017/08/12(土) 17:10:46.60ID:A4v2+zpK
そうは言っても、俺も少しは親切心があるからな

前スレで
class Order {
  private bool isCancelable() {}
  public void cancel() {
    if (!isCancelable()) {
      // エラー処理(例えば例外をthrow)
    }
    // 実際のキャンセル処理
  }
}
というコードに対して、「闇が深い」という判定が下り、そこから話が紛糾したりした
前スレ>>996ならどんなコードにするんですかね

151デフォルトの名無しさん2017/08/12(土) 17:15:58.30ID:VqNg7Zuq
>>150
えぇ!! >>10 がこれになるんすか!?
権限の制限も発送済みの状態も全然盛り込まれてないじゃない
これは闇が深いと言われても致し方ないかと

152デフォルトの名無しさん2017/08/12(土) 17:17:45.53ID:VqNg7Zuq
三つの着眼点をまったく無視したコードじゃないっすか!?
マジっすか? これでホントにダイジョブなんすか?

153デフォルトの名無しさん2017/08/12(土) 17:20:23.01ID:4XMrLP7t
煽るだけの無能は消えてほしい

154デフォルトの名無しさん2017/08/12(土) 17:20:41.59ID:VqNg7Zuq
発注・受注・納品・キャンセルは
業務アプリではよくあるものなので
SIer戦士は得意なんじゃないかな

155デフォルトの名無しさん2017/08/12(土) 17:21:56.43ID:VqNg7Zuq
>>153
なんすかそれ? 俺のこと煽ってんすか?

156デフォルトの名無しさん2017/08/12(土) 17:21:59.07ID:A4v2+zpK
という煽りを自分はしてもいいんだという謎立場

157デフォルトの名無しさん2017/08/12(土) 17:23:59.73ID:VqNg7Zuq
煽ることで >>150 のコードを引き出した僕の力量を認めて欲しい

158デフォルトの名無しさん2017/08/12(土) 17:29:36.48ID:mnq0jZNZ
仮に>>150をAとする


イザナミだ

159デフォルトの名無しさん2017/08/12(土) 17:35:15.42ID:VqNg7Zuq
>>158
なるほどな、ところでイザナミって何だ?

160デフォルトの名無しさん2017/08/12(土) 17:46:07.32ID:VqNg7Zuq
コーディングよりはデータモデリングの方が
重要になってくるかなと

ユーザ -> ロール -> 権限
受注 -> 受注明細
受注 -> ユーザ

エンティティを分けるとしたらこうかな

イミュータブルデータモデル(入門編)
https://www.slideshare.net/kawasima/ss-40471672

関数型に適したデータの持ち方はこれとか

updateを行わずにinsert/deleteでやりくりするのだけれども
数百万のデータ扱うときにそういうやり方ってio的に厳しくないかな
SIer戦士の知見を伺いたいね

161デフォルトの名無しさん2017/08/12(土) 18:28:09.46ID:mnq0jZNZ
>>159
つgoogle「イザナミだ ナルト」

読むとこのスレが丁度術にかかってるみたいで笑えるぞ!

162デフォルトの名無しさん2017/08/12(土) 18:31:25.69ID:rhDkRh0m
>>160
IOっていってもほとんど読み取りだからな
キャッシュすりゃいいわけよ
キャッシングはイミュータブルな構造との相性もいい

163デフォルトの名無しさん2017/08/12(土) 18:54:00.06ID:mnq0jZNZ

164デフォルトの名無しさん2017/08/12(土) 20:33:40.23ID:A/BCmj8c
イザナミすらしらんゴミがイキってて笑える
夏休みの宿題済ませてこいよカース

165デフォルトの名無しさん2017/08/12(土) 21:35:51.52ID:/aCqunE6
>>6
それ宣言型、関数型、論理型が並列に並んでるのおかしいね。

166デフォルトの名無しさん2017/08/13(日) 00:33:44.55ID:PA7iDDOj
なんか一人か二人荒らしまわってる連続投稿君がいるみたいだけど
>>115
は元々
Java、C++、C#などは副作用を前提にプログラムを書くスタイルを基調としているから
手続き型言語のグループに入るけど
関数型はそれを意図的に排除する仕組みが言語仕様で用意されている
ってことまでしか言ってないからね
排除された結果、自分が思ったコードが書けなかったとしても、それは関係ない
だから類似コードを示す必要性は全くない
例えば論理型言語のPrologで注文受注のコード書いてたらバカだろ
もしくはGPUのシェーダー用のプログラミング言語(HLSLとか)で
注文受注のコード書いてたらバカだろ
あえてバカみたいなことはする必要ないんじゃないかな

167デフォルトの名無しさん2017/08/13(日) 00:46:50.01ID:PA7iDDOj
ID:A4v2+zpKが如何にキチガイか理解していただけただろうか
まぁ18も連投している時点で明らかなわけだが
付き合いきれまい

168デフォルトの名無しさん2017/08/13(日) 01:19:09.93ID:vem2Phjv
最近jsでデータの整理整頓をしない環境にいたので覗きに来ました

169デフォルトの名無しさん2017/08/13(日) 02:02:44.19ID:s7ggTJlx
>>166
逃げてるだけじゃん

170デフォルトの名無しさん2017/08/13(日) 02:13:02.78ID:PA7iDDOj
本題は、JavaやC++やC#は手続き型言語のグループに入るって部分であって
関数型は〜の部分は、少なくともこれらの言語は関数型では無い
っていう例で挙げているだけにすぎず
関数型言語で受注プログラムを解くとか解かないとか
そういう話は一切してないし
関数型だとキレイに書けるとも一言も言ってないし、全く言及してない

171デフォルトの名無しさん2017/08/13(日) 04:32:44.46ID:POaPVjZW
こうなってるけどな

http://mevius.2ch.net/test/read.cgi/tech/1467992113/991-996
関数型言語では言語仕様で、手続き型言語の欠点を意図的に排除する仕組みが用意されている

1722017/08/13(日) 09:49:26.83ID:5DDetRBZ
一体何だったのか?

173デフォルトの名無しさん2017/08/13(日) 10:41:24.21ID:PA7iDDOj
文章を勝手に改変して「こうなってるけどな」と言われても

174デフォルトの名無しさん2017/08/13(日) 10:42:40.19ID:PA7iDDOj
>関数型はそれが出来るというより
>意図的に排除する仕組みが言語仕様で用意されているといったほうがいいな
ってしっかり書いてあるだろ

175デフォルトの名無しさん2017/08/13(日) 10:44:34.68ID:PA7iDDOj
そしてこれは本題ではなく
JavaやC++やC#は手続き型言語のグループに入る
ってことを説明する、そうじゃないものを例に挙げたまでだ
関数型言語で受注プログラムを書くとか書かないとか
まったく言及してない

176デフォルトの名無しさん2017/08/13(日) 11:12:14.57ID:fnleBiCA
手続き型に構造型にしやすくするための構文を追加したのが構造型言語
その構造型言語にオブジェクト指向しやすくするための構文を
追加したのがオブジェクト指向言語

そしてオブジェクト指向言語に内包される手続き型と構造型部分に
関数型言語の特徴を組み込むのが今のトレンド

177デフォルトの名無しさん2017/08/13(日) 11:16:07.23ID:KfX/mNRe
逝っとけオブジェクト指向

178デフォルトの名無しさん2017/08/13(日) 12:21:52.31ID:PA7iDDOj
構造「型」言語とか言ってる時点で
何の信ぴょう性もないもんだな

179デフォルトの名無しさん2017/08/13(日) 12:29:06.82ID:H1VKWZTL
すいません、どなたかセックスさせてください

180デフォルトの名無しさん2017/08/13(日) 15:54:04.19ID:3dVRXwBQ
>>173-174
こういうことだろ

http://mevius.2ch.net/test/read.cgi/tech/1467992113/991-996
関数型言語では
手続き型言語の欠点である順番やタイミングに依存する方式から逃れること
が出来るというよりは
手続き型言語の欠点である順番やタイミングに依存する方式を
意図的に排除する仕組みが言語仕様で用意されているといったほうがいいな

181デフォルトの名無しさん2017/08/13(日) 16:18:25.24ID:47VquCRx
なんだよ関数型崇拝者はまだ全く説明できないで同じこと繰り返しているのかよ

182デフォルトの名無しさん2017/08/13(日) 16:21:51.11ID:7Wtpo09/
>>180


> 手続き型言語の欠点である順番やタイミングに依存する方式を
> 意図的に排除する仕組みが言語仕様で用意されているといったほうがいいな

ってなんだよ
エアプか?

183デフォルトの名無しさん2017/08/13(日) 16:29:40.28ID:3dVRXwBQ
>>182
前スレのID:m8GLf68Fがそう言ってるってことなんだがな

184デフォルトの名無しさん2017/08/13(日) 16:50:18.17ID:rW1u58p9
そんな仕組みないです
参りました
ごめんなさい勢いで言っただけなんです
許してください🙇🙇‍♀

185デフォルトの名無しさん2017/08/13(日) 21:19:15.64ID:7Wtpo09/
ん?今何でもするって言ったよね?

186デフォルトの名無しさん2017/08/13(日) 22:52:25.17ID:fz0hXT5l
言ってないんだよなぁ

187デフォルトの名無しさん2017/08/19(土) 19:12:00.14ID:y/QCc+p9
>>10
1. 権限管理
2. キャンセル可否のビジネスルール
3. 同時実行制御
っていうレイヤーの異なる3つをごちゃまぜにしてるからダメなんだろ
データモデルの良し悪しとは全く別次元の話だわ

188デフォルトの名無しさん2017/08/19(土) 19:20:57.01ID:fow9w/9c
常識的に考えるとそれらは別のレイヤーでやるよな
ただあの人みたいにいずれも検証だから同じレイヤーでやるみたいな派閥もあるみたいだね

1892017/08/19(土) 19:42:05.97ID:b1lc6Upk
>>187
cancelメソッドとそれが不可能だって例外ですべてハンドリングするのも同じ次元だけどな。
>>188
検証としては同じレイヤでやるが、実際の処理を同じものが持つかどうかは別だぞ。
検証処理を行うのは一人がやるべきだし、それぞれのステートにおいて適切なロジックがやるべき。
そのロジックの結果同士の和とか積になるよね、って。
そうしないと優先順位が生まれたときに、あとから定義したりしていなかった優先順位の解釈を、既に散在してしまったチェックロジックに入れて行くことになってしまう。
データが一人でやるべきものではなくて、ビジネスロジックが検証してやるべきものだ、って話だよ。

190デフォルトの名無しさん2017/08/19(土) 22:03:05.65ID:y/QCc+p9
>>>187
権限がなければキャンセル処理を実行できないようにしたいのであれば、例えばキャンセルボタンをグレーアウトさせればいい
その場合、権限ないにも関わらずにcancelメソッドが呼び出された場合は業務エラーじゃなくシステムエラーだから扱いが異なる
最終的な実装はどうあれ同じ次元として扱ってるとまともな設計にはならないよ

191デフォルトの名無しさん2017/08/19(土) 22:24:13.25ID:y/QCc+p9
アンカ間違えてた
>>187じゃなく>>189

下の3つを「検証」って言葉で一括りにしてるとプログラムの大半はなんらかの検証処理になっちゃう可能性がある
検証って言葉をどういう意味で使ってるのかとか、何に対する検証なのかを考えたほうがいい気がする
ロジックの散在とか優先順位の解釈とか言いたいことは分からなくはないけどね

1. 注文がキャンセル可能かどうか
2. ユーザーがキャンセルの実行権限があるかどうか
3. キャンセル実行時にデータ整合性が保証できるかどうか

1922017/08/20(日) 07:16:27.75ID:mQe7YUF9
>>190
それは、キャンセルボタンが押せるかどうかの判定で、キャンセルができるかどうかの判定と似てるが違うものだよ。
キャンセルボタンではキャンセルできないけど、電話してオペレーターにキャンセルしたい、と頼めばやってくれる、とか。

>>191
そうだな。言葉が悪いか。
状態検証
権限検証
整合性検証
は、すべて「検証」ロジックが呼び出すべき処理、って感じかな。

193デフォルトの名無しさん2017/08/20(日) 08:59:15.38ID:dgrWF/1p
>>192
引っ込みつかなくなったのはもうわかったから

194デフォルトの名無しさん2017/08/20(日) 13:53:16.66ID:m8177A+a
implements ICancelable
でいいだろこれでコンパイルも通る

おまえら、たったこの1行のコードもひねり出せない無能のチンカスガイジ低級プログラマ土方ジャップランド土人だったのか?

195デフォルトの名無しさん2017/08/21(月) 00:11:33.04ID:+nwikK0h
何がええんや

196デフォルトの名無しさん2017/08/21(月) 00:14:41.29ID:+nwikK0h
100歩譲って無能のチンカスガイジは認めるわ
土方プログラマっていうのもまあ分かる
しかしジャップランド土人というのもそのとおりだ

197デフォルトの名無しさん2017/08/21(月) 01:07:09.51ID:7hohe37q
>>192
>すべて「検証」ロジックが呼び出すべき処理、って感じかな。

そのすべてを呼び出す「検証」ロジックって何ぞな?

198デフォルトの名無しさん2017/08/21(月) 03:03:23.75ID:eGD2En39
>>196
認めすぎィ!

1992017/08/21(月) 07:29:55.85ID:H2KMBRSF
>>197
あー、確かに。それは微妙か。
データフローとか、ジョブの検証フェーズになるだろうね。

200デフォルトの名無しさん2017/08/21(月) 19:51:47.16ID:Kzr43Eyo
話は変わるが
私はユーザーオペレーションのミスも例外で処理する(例外シナリオ)
これは一番やりたいことを最も早く簡潔に書くためだ(メインシナリオ)
やりたいことが出来ないのはシステムにとって致命的だが、ミスは回避できる特に開発段階では
ミスかどうか早めに自発的に判断するのはやぶさかではないが、そこでも例外を投げて例外シナリオであることを明示する

システムにとって必要不可避なユースケースを最小で実現するためだ
問題があれば聞かせてほしい

201デフォルトの名無しさん2017/08/21(月) 21:02:35.44ID:TUwJwlJW
>>200
前にそれやったらロジックが複雑になったことある

202デフォルトの名無しさん2017/08/21(月) 21:28:17.07ID:Kzr43Eyo
>>201
うちではロジック変わらない
設計者の技量の問題かな

203デフォルトの名無しさん2017/08/21(月) 21:52:21.63ID:wYi/O97J
>>202
エラーによっては別の方法を促さなきゃいけない仕様になっているのに
まとめて処理しようとしててmain関数がお化けになってた
エラーメッセージってちゃんと表示しようとするとその時の色んなもんが必要になるんだけど
それも上手く引っ張ってやらないといけない
その場でやったほうが楽だったよ
エラーメッセージ用の必要なデータの抽出ってのも結構骨が折れる
しかも頂点でしかやってねーからある時mainが全部using持ってないと動かなくなちゃった

204デフォルトの名無しさん2017/08/21(月) 22:06:44.94ID:Kzr43Eyo
>>203
それは代替シナリオで例外シナリオではない
記述場所の問題なら例外に乗せて投げればいい

そもそもmain関数とかオブジェクト指向じゃないだろそれ

205デフォルトの名無しさん2017/08/21(月) 22:06:53.89ID:lYWr+wd6
もともとプログラムってのは確認して実行しても良さそうなら実行っていう戦略とは根本的に相性が悪い
確実に実行できることを保証するって深く考えると実はかなり難しいのでまず間違いなく何処かで漏れる
どうせ漏れがあるなら最初から確認せずにとりあえず実行してしまえばいい
実行してみて何事もなければそれで良し
ダメなら適切な例外をなげろって設計が実は最も自然な設計
これだけでも完全なシステムを作れる
まあそれだけだとUXが悪いからクライアント側で書式チェックぐらいはしてもバチは当たらんだろうね

206デフォルトの名無しさん2017/08/21(月) 22:19:48.01ID:wYi/O97J
>>204
例外じゃん
少なくとも一瞬は例外だったじゃん
そこから例外→代替シナリオのルートがねーと
コード上では
お前の処理が全部食っちゃってて手の入れようがない

207デフォルトの名無しさん2017/08/21(月) 22:34:43.69ID:Kzr43Eyo
>>206
いや代替シナリオは別途設計書く
コードの例外と例外シナリオは同じではないぞ

208デフォルトの名無しさん2017/08/21(月) 22:39:57.15ID:wYi/O97J
しかも頂点まで戻って来ててしまって

代替シナリオで以降の処理を続行的な選択をすると
例外発生処理まで来たルートをフラグを見てお通しする
見事なクソコードなのだ!
パオーン!って俺も叫んだ!

プログラム全体で作ったインスタンスを消すともう動かねぇよ
どーすんだコイツ的な衝撃

209デフォルトの名無しさん2017/08/21(月) 22:46:23.39ID:wYi/O97J
>>207
代替があるかどうか?って
ハイ、イイエ
をその処理に対して誰かがちょっとでも浮かぶかどうかじゃん?

ここまとめて例外で弾き飛ばすと
あ、ここは例外でいいよ
メッセージ出して欲しいなぁ
って客の気分やから
融通が効かないクソコードになんで

210デフォルトの名無しさん2017/08/21(月) 22:48:21.65ID:Kzr43Eyo
>>209
何言ってんの

211デフォルトの名無しさん2017/08/21(月) 22:55:05.00ID:wYi/O97J
>>210
(´・ω・`)俺の言ってることあんま理解できない?

212デフォルトの名無しさん2017/08/21(月) 23:04:43.19ID:Kzr43Eyo
誰か通訳

213デフォルトの名無しさん2017/08/21(月) 23:06:06.88ID:wYi/O97J
>>207
サービスで代替?があるやつだけ教えてやったけど
これだけだと思ってるの?
まだまだあるぜ
バーカ
検討を祈る!

214デフォルトの名無しさん2017/08/21(月) 23:16:42.53ID:wYi/O97J
うん、俺がアホだったね
死ぬわ(´・ω・`)
環境特有の状況だね

215デフォルトの名無しさん2017/08/21(月) 23:19:42.56ID:wYi/O97J
そしてすまん(´・ω・`)

216デフォルトの名無しさん2017/08/21(月) 23:22:00.62ID:Kzr43Eyo
代替シナリオと代替サービスを一緒くたにしてるのかな

217デフォルトの名無しさん2017/08/21(月) 23:26:47.25ID:wYi/O97J
>>216
いや酒飲んで寝起き

218デフォルトの名無しさん2017/08/22(火) 06:43:04.83ID:9GD6qpN2
お酒のせいにする男ってサイテー

219デフォルトの名無しさん2017/08/22(火) 07:37:50.45ID:w3Lq2Uzy
まだ夏休みだっけ?

220デフォルトの名無しさん2017/08/22(火) 09:33:05.29ID:NJ87VB64
○次受けが多いほど退場率が早くなる。高くなる

直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと

これならJIETから3次でいったほうがいいな

446非決定性名無しさん2017/08/02(水) 22:12:48.95

JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

221デフォルトの名無しさん2017/08/23(水) 07:27:54.25ID:6/9LzVc0
オブジェクト指向に造詣の深い諸兄は、DTOとかPOCOとか、クラス図に書いてます?

222デフォルトの名無しさん2017/08/23(水) 08:20:46.57ID:kJ94jZYw
>>221
データベースのdtoは書かない
ViewModelは書く

223デフォルトの名無しさん2017/08/24(木) 10:06:58.66ID:hIiCK2jN
>>222
一般的にはそういう認識で良いんですね

プログラムできない上司と二人きりの社内IT便利屋なので世間様の動向が解らず
ありがとうございます

224デフォルトの名無しさん2017/09/02(土) 01:06:47.28ID:je61f8uF
いつの間にかWikipediaのオブジェクト指向のページがいい感じになってるな

>Eclipseを開発したDave Thomasや、オブジェクト指向という言葉の生みの親であるAlan Kay博士は
>オブジェクト指向という言葉は失敗だったと語っている。
>[1] これは、本来オブジェクト指向が重視すべきは「オブジェクト」ではなく
>「メッセージング」であるにもかかわらず「メッセージング」がおろそかにされているためである。
>特に言語の進歩において「オブジェクト」や「クラス」の側面ばかり強調される傾向にあり、
>Alan Kay博士は「Smalltalkが最高に好きという訳ではないが、他の言語に比べればマシである。」と述べている。

昔はこんな記述なかったように思うが、これが今の空気感なんだよな
俺もそういうことを言ったことがあるし、そう思う人もいくらか居て
だんだん発展して、そういう空気になってるんだな
オブジェクト指向は本当に名前が悪くて、メッセージング指向とでもしておくべきだったと思う
名前に引っ張られるってのは少なからずあるからな
メッセージング、メッセージのやり取り、というのは手続き型言語においては手続きそのものであるが
やはり手続きの部分が読みやすい方が良い、処理の順番が見たまんま一目瞭然な方が良い
何がどの順で実行されているか明瞭、といった古典的な要素を見直そうというそういう流れ
処理の順番に結果が依存する手続き型言語において、処理の順番が把握しづらいのは本来恐ろしいことだからね
なるべくオブジェクト同士の相互作用たる手続きの部分が簡潔になるようにクラス設計しなければならないんだけど
そのことを忘れて、クラスとは何ぞや、オブジェクトとは何ぞや、といったオブジェクト原理主義みたいな病気に
かかってしまう、まぁ、麻疹みたいなものではあるけど、名前が「オブジェクト指向」になってるからどうにも助長する
だからメッセージング指向の方が良かっただろうね

225デフォルトの名無しさん2017/09/02(土) 09:50:16.49ID:x3xo3AHA
> だからメッセージング指向の方が良かっただろうね

メッセージング指向の何が良いの?

226デフォルトの名無しさん2017/09/02(土) 10:24:51.59ID:O1j4weut
名前がカッコいい

227デフォルトの名無しさん2017/09/02(土) 10:56:48.95ID:x3xo3AHA
メッセージのやり取りが需要!

そいで何が重要なの?


メッセージのやり取りが需要なんだ
名前がまずかった。
メッセージのやり取りがー
メッセージのやり取りこそがー

で何が重要なの

メッセージのやり取りが需要だって言ってるだろ!


オブジェクト指向という言葉の生みの親であるAlan Kay博士は
名前がまずかったことにこだわり、その中身の重要性を語ることはなかった

228デフォルトの名無しさん2017/09/02(土) 11:23:18.99ID:Z0VXJAOw
メッセージは大事だが本質ではないよ
メッセージ指向が目指したのは「可能な限りの決定の遅延」
設計時、実装時、実行時、運用時(保守、メンテ時を含む)などすべての局面での徹底の試み

「遅延結合」ともいえるけど、実行時に限定してしまう人がいるからこっちの表現の方がいい

メッセージというのは「決定の遅延」の重要性やどうやればいいのかわからない人のための方便でありお題目
だからメッセージが大事、メッセージが大事と繰り返す割に説明ができる人が少ないのはまあある意味必定かと

http://metatoys.org/oxymoron/oxymoron.html

229デフォルトの名無しさん2017/09/02(土) 11:48:07.70ID:x3xo3AHA
> メッセージ指向が目指したのは「可能な限りの決定の遅延」

決定の遅延は、問題の先送りと考えればよい。
結局あとから問題が発覚するだけにすぎない。

230デフォルトの名無しさん2017/09/02(土) 11:59:21.35ID:uuiwLM/7
「最適化や解決を急ぎすぎない」といった方が適切かな

対象とするシステムやそこで解決すべき問題についての理解が深まるまで、
あるいはハードウエアなどの状況が改善し解決してくれるまで、とりあえず運用可能な実装ができ
しかもよい解決法が出てきたらそれで容易かつ安全に置き換えられるようなそんな感じ

たとえば参照先の文書をきちんと読まずに反射的にしたレスをうまく取り繕えるようなメタシステム作りを目指すのがメッセージ指向

231デフォルトの名無しさん2017/09/02(土) 12:12:35.31ID:x3xo3AHA
> 対象とするシステムやそこで解決すべき問題についての理解が深まるまで、
それでは、ずっと理解は深まらないのか?って問題が有るな。
例えば一回作ったことがあるシステムならば理解は深まっていると考えられる。
では理解が深まってる状態で、何の決定を遅延させるのか
遅延させることに意味があるのか?


> しかもよい解決法が出てきたらそれで容易かつ安全に置き換えられるようなそんな感じ
今は容易かつ安全に置き換えられるようになっている。ただしOSの力によって。
アプリケーションは一旦終了してから入れ替えて起動しなおせばシステムを
停止すること無く、アプリを更新することができる。


そこが昔と今の違いなんだろう。昔買ったMSXは起動するとBASICが起動した。
OSではなくてBASIC。OSが存在せず言語の開発環境がOSそのものだった。
そういう時代においては、言語自身にプログラムを入れ替える方法
つまりアプリケーションの再起動というOSの仕事までやる必要があった。

だから「決定を遅延させる」なんて話が出てくる。
それがOSの力で解決して今は言語に「決定の遅延」をもたせる必要がなくなっている。

決定の遅延の重要性が理解できないのは、時代にあっていないからに過ぎない。

232デフォルトの名無しさん2017/09/02(土) 12:23:48.00ID:O1j4weut
先送りして後で問題になるではなく
先送りして後で解決してもいいように作る
ってことでしょ

233デフォルトの名無しさん2017/09/02(土) 12:23:51.73ID:x3xo3AHA
容易かつ安全に置き換えられるのはアプリだけで
OSの更新はOSを停止せずにできないように思うかもしれないが。
そこでクラウドというものがでてくる。

システムをサービス化して、ネットワークで通信させることにより
システムを疎結合にして無停止でシステムを容易かつ安全に置き換えることが
できるようになってる。

説明するまでもないと思うが、古いシステムを使いながら
裏で新しいシステムを準備し、新しいシステムが有効になったら
ネットワーク経路を切り替える。

OSもネットワークもろくにない時代に言語だけで問題を
解決する方法を模索していたってだけで現代には合わないのさ。

すでに現代はシステム全体で見れば、決定の遅延を行っており
容易かつ安全に置き換えられるシステムができあがってる。
それは言語に求めることじゃない

234デフォルトの名無しさん2017/09/02(土) 12:26:11.03ID:O1j4weut
以上
アホの戯言でした

235デフォルトの名無しさん2017/09/02(土) 12:32:31.35ID:x3xo3AHA
反論なし

236デフォルトの名無しさん2017/09/02(土) 12:49:27.80ID:x3xo3AHA
あと昔と今の違いは今は素人が使っているという点があるな。
別の言い方をすれば、プログラムを作った人と使う人が違う。


言語レベルで対応してモジュールや関数単位で、
容易かつ安全に置き換えられるようになったとしよう。

でもそれはあくまで言語レベルであり、メッセージの送り側と
受け取り側の両方がメッセージの内容を正しく理解できなければ
バグなく動くことはできない。

しかしその点は無視されている。バグであってもシステムが停止せずに
動き続けていればOK。バグによってデータがおかしくなっても
停止しないシステム上で修正すればいい。バグによって処理が停止しても
デバッガが起動してシステムを直して再開できればOK

当時の「容易かつ安全に置き換えられる」っていうのは
停止しないシステム上で人間がトラブルに対処して再開できればいいというレベル
コンピュータを使ってる人=プログラマ(素人ではない)なので
自分(もしくは担当技術者に依頼)して対応するという前提になってる

237デフォルトの名無しさん2017/09/02(土) 12:51:57.25ID:Z0VXJAOw
完全に早期結合の考え方なんだよね
どこから指摘してよいものかちょっと迷う

238デフォルトの名無しさん2017/09/02(土) 12:53:17.39ID:Z0VXJAOw
とりあえず、参照元読んでもらうことはできる?
それについての疑問に答える方が効率的かなと思う

239デフォルトの名無しさん2017/09/02(土) 12:58:10.04ID:x3xo3AHA
参照元なんて無いから、
俺に反論してくれればそれでいい

240デフォルトの名無しさん2017/09/02(土) 13:00:33.66ID:x3xo3AHA
>>237
今はシステム全体が、物理マシンレベル、仮想マシンレベル、OSレベル、
コンテナレベル、プロセスレベルといった単位で
疎結合になっているから言語自身は早期結合で十分という時代

241デフォルトの名無しさん2017/09/02(土) 13:00:40.57ID:Z0VXJAOw
>>236
当時っていつの話?
参照先読んでもらえばわかるけど、もう君が言うような「今」の当たり前は70年代に出来ていて
その先を目指すにはって話なのだけど…

242デフォルトの名無しさん2017/09/02(土) 13:02:55.05ID:Z0VXJAOw
早期結合でできる部分はそれで済ませればいいと思うよ

243デフォルトの名無しさん2017/09/02(土) 13:05:40.32ID:x3xo3AHA
>>241
> もう君が言うような「今」の当たり前は70年代に出来ていて

70年代のどこにクラウドがあったの?

あんたの言う70年代に出来ていては
原始時代にも石炭はできていて〜っていうのと変わらん。
それをうまく使いこなせるようになったのが今だ

244デフォルトの名無しさん2017/09/02(土) 13:05:45.97ID:Z0VXJAOw
結局、早期結合信奉者の問題は「神の視点」から離れられないことなんだってよくわかる主張だと感じるよ

245デフォルトの名無しさん2017/09/02(土) 13:06:35.50ID:x3xo3AHA
神じゃねーけどなw

246デフォルトの名無しさん2017/09/02(土) 13:07:04.78ID:x3xo3AHA
厨二「ふっふっふ、われは神の視点を持つもの」

247デフォルトの名無しさん2017/09/02(土) 13:28:02.93ID:mrBSaSic
>>243
もちろんクラウドなんかはないけど
しかし君が想定しているよりはずっとネット環境は整っていたよ
少なくともアラン・ケイがメッセージ指向を考えたり実験したりしていた場ではね

248デフォルトの名無しさん2017/09/02(土) 13:57:41.57ID:x3xo3AHA
だがそんな彼でも、ネットワークの向こう側のコンピュータを
何台も用意して、接続先を切り替えながら無停止で
システムを運用するという発想は生まれなかったわけで

249デフォルトの名無しさん2017/09/02(土) 14:05:57.73ID:mrBSaSic
たぶん参照リンクを参照することをしない人向けには無用かもしれないけど、いちおうは挙げておくと

たとえばこのリストアされたアルトのデモで当時すでに出来ていたことのその片鱗を見て取れる

;t

メッセージ指向の実践として、たとえば動かしているシステムの仕様を動的に変更するとかも
当該動画の14分あたりに

;t=14m12s

おまけとしてビットコインマイニングも

;t=23m
http://gigazine.net/news/20170703-xerox-alto-mine-bitcoin/

250デフォルトの名無しさん2017/09/02(土) 14:16:11.69ID:x3xo3AHA
>>249
20〜30年前にはすごいと言われたかもしれないけど、
今だとスマホゲームでさえバージョンアップしていくよ
Googleとかいつメンテナンスしてるんだ?ってレベル。
動かしているシステムの仕様を動的に変更するのは難しいことではない

251デフォルトの名無しさん2017/09/02(土) 14:19:04.95ID:x3xo3AHA
あとそのデモも良くないね。

「やりたいこと」は何か
「それが実現できるか」であれば

今のWindowsだってプラグイン入れれば
メニューが動的に増えるじゃんっていう話で終わりだから。

252デフォルトの名無しさん2017/09/02(土) 14:25:51.82ID:x3xo3AHA
> あと昔と今の違いは今は素人が使っているという点があるな。
> 別の言い方をすれば、プログラムを作った人と使う人が違う。

あとこの話。動的に仕様が変わってるのはそのとおりだが、
使ってる人が自分で仕様を変えるのか?って話。

デモはいつだってドヤ顔で ”自分が" 仕様を変えている。
違うんだよ。普通は誰か他の人が変えるんだよ。
そして一人のために作業することはないんだよ。

変えたシステムの配布方法(アップデート方法)が必要になるし、
今変えてますから使わないでくださいなんて言えないし、
変えるタイミングは人それぞれにしたいかもしれないし。
使ってる最中に変わったら困るかもしれないし

で、今はシステムの仕様を動的に変えられるかどうか?ではなくて
変えられるの言うのは当たり前の前提で、それをどうやるかって所に進んでる。
言語?なんだって仕様を動的に変えられるよ。コード修正して再コンパイルすればいいだけ

253デフォルトの名無しさん2017/09/02(土) 14:30:22.26ID:x3xo3AHA
使ってる人がプログラマで自分のために自分が書き換えるなら
「今まさに書き換えていっています!」って状態になるだろうけど、

今まさに書き換えてたりしたら、じゃあテストはどうするんだって話。
普通は書き換えたものをすぐ実用したりしない。

現実には「書き換え後のシステムがすでに用意されています」だからな。
リアルタイムで書き換えることはせずに用意されている。



だから、動的にコードを書き換える機能は実は必須ではなくて
動的にシステムを入れ替える方法があればいい。

それがアプリの再インストールであったり、ネットワーク
越しであればサービスの切り替えだったりする。

254デフォルトの名無しさん2017/09/02(土) 14:38:23.16ID:CJZVlBwp
シーケンス図みたいにオブジェクトが独立して存在してメッセージをやり取りするってのが本来じゃないの
でも多くの人がここからここを呼び出してこう通ってこっちに戻ってと見てる

いっそ全てのメソッドがブロックしなかったり
オブジェクトがサービスだったらいいんじゃないか

255デフォルトの名無しさん2017/09/02(土) 14:38:32.54ID:HZeOuyve
アランケイよりズルムケイなワイの方が頭いいと思うけど何か問題ある?

256デフォルトの名無しさん2017/09/02(土) 14:40:20.62ID:O1j4weut
さっきからダラダラとくっちゃべってるけどランタイムの話じゃねえだろバカ

257デフォルトの名無しさん2017/09/02(土) 15:14:50.34ID:9PaYDv7F
できる・できないの話ではなく必要となる労力の違いの話というのを理解していない
さらに不確実性やunknown unknownsがもたらす影響も理解していない
だから意思決定を遅らせることが出来るメリットについても理解できない

258デフォルトの名無しさん2017/09/02(土) 15:38:48.98ID:Z0VXJAOw
結局、早期結合の「神の視点」から離れられないわけで
時間の無駄だと思った

259デフォルトの名無しさん2017/09/02(土) 15:42:31.91ID:1DneHKSE
部下「Blobの管理どうします?
ファイルシステムかDBかクラウドストレージもありですね。
何を選ぶにせよ顧客との調整が必要なので確定までには時間がかかります。
メッセージ指向的にインフラをインターフェースで隠蔽しておけば今の段階ではとりあえずなんでも良いでしょう。
後で意思決定に合わせて変更できるように作れば安全です。」
x3x「ファイルシステムに決め打ちでハードコードしろ。
俺は賢いから知ってるけどな。
今どきそういうのは言語で対応する必要はないんだ。」
部下「理由を聞いてもよろしいですか」
x3x「今は技術が進歩してるんだ。
システム全体から見ればクラウドとか使って動的に安全に置き換えられるんだよ。
だから言語での対応は必要ないってわけだ。」ドヤッ
部下「何を言ってんだこの白痴(意味不明ですが承知しました。責任は取ってくださいよ)」

260デフォルトの名無しさん2017/09/02(土) 15:54:36.97ID:u30btijY
長文はバカ

261デフォルトの名無しさん2017/09/02(土) 16:00:51.78ID:SLw7DScq
>>259
何か思うところがあるのなら、ごたくを並べるのではなくて、
君がそれを使って素晴らしいOSSを書けばいいだけだよ。

新しもの好きや天の邪鬼は世の中に一定割合でいる。
彼等が特に無能でもない。(有能/無能と性格は相関がほぼ無い)
だから現時点でろくな物がない≒使えない、ってこと。

君が自分ではOSSを書けない程無能なら、
せめてOSSでそのメッセージ指向(キリッしてる物を探してくればいい。
使えそうなら、誰かしら試しているはず。
そしてそれが本当に使えるのなら、自然と広まるよ。

大昔からあって、未だに広まってないのなら、ゴミ確定だよ。

それ以前に君はプログラミングしてないだろ。
何故その程度の馬鹿がこの手の議論をしたがるのか俺にはさっぱり分からないが。
> ファイルシステムに決め打ちでハードコードしろ
「ハードコード」の使い方が間違っているし、
それ以前に普通のプログラミングモデルではファイルシステムは隠蔽されてる。
(むしろファイルシステムが直に見える方が珍しい)
> インターフェースで隠蔽
これはOOPで、と言うかそれ以前にAPIで隠蔽されているから、
メッセージ云々関係ないだろ。

262デフォルトの名無しさん2017/09/02(土) 16:04:35.29ID:9PaYDv7F
>>259
早期結合とは関係ないが
これは部下の方にも十分責任があるだろ
聞き方・聞くタイミング・上司の扱い方など

263デフォルトの名無しさん2017/09/02(土) 16:07:22.85ID:1DneHKSE
〜OOSを書けばいいだけだよ〜




ププッ

264デフォルトの名無しさん2017/09/02(土) 16:10:58.33ID:HZeOuyve
ぐたぐた意味不明な長文書くやつって
srcもプェチピィみたいな屁臭いゴミ使ってぐだぐだバグ仕込むんだろうな

な? (暗黒藁半紙)

265デフォルトの名無しさん2017/09/02(土) 16:32:42.64ID:HZeOuyve
ぐうの根も出ないか(プー)

266デフォルトの名無しさん2017/09/02(土) 19:03:41.05ID:x3xo3AHA
自分が理解してないから「どんな問題を解決するか」を語れない。

267デフォルトの名無しさん2017/09/02(土) 19:10:43.53ID:x3xo3AHA
>>259が意味不明すぎてワロタw

部下「Blobの管理どうします?ファイルシステムかDBかクラウドストレージもありですね」
上司「とりあえずファイルシステムを使ってあとで修正すればいいよ」
部下「ういっす」

これだけで終わりだろw

部下「所で修正はプログラムを実行を停止せずに動的に修正するんですかい?」
上司「普通に停止して再起動すればいいだろ。アクロバティックなことやる必要はない」
部下「ですよねーwwww」

268デフォルトの名無しさん2017/09/02(土) 19:29:52.53ID:0osbGpyr
>>267
ズレてるねえ
論点そこじゃないって半日以上経ってなんで気が付かないの

269デフォルトの名無しさん2017/09/02(土) 19:31:05.43ID:x3xo3AHA
客「開発するシステムは何があってもサービスは許さん!24時間365日何があっても動かし続けろ
バージョンアップの際もサービスは停止せずに行うんだ」

部下「これは言語の選定から始めないといけないですね」
上司「なんで?」
部下「○○言語を使わないと動的に仕様変更できないじゃないですかー」
上司「ん?その言語使えば、それだけでハードウェア障害起きてもサービス停止せずに運用できるの?」

部下「え?故障はハードウェアの責任でしょ。関係ないよ。故障するハードウェアが悪んだ」
上司「馬鹿か、故障するのは大前提だ。その上でシステムを作れって話だ」

部下「そんなの無茶だ!ハードウェアが故障したらプログラムも停止するしか無い!」
上司「一台ならな」

部下「なんだと?」
上司「何台、いや何十台とマシンを用意して一台停止してもサービスを停止しないシステムにするんだ」

部下「そんな非現実的なこと・・・コストが馬鹿にならないじゃないか」
上司「クラウドというものを知らないのかね? マシンは必要な台数を必要なタイミングで
わずか数分で用意できる。そしてシステムに動的に追加削除が可能。使用している分しかコストはかからない」
部下「そんなことが・・・」

上司「そしてシステムの更新にはローリングアップデートを使用する」
部下「なんだそれは?」

上司「多数のマシンを動的に追加削除できる仕組みを利用して、一台ずつ段階的に
アップデートを行う。サービスの停止することなく、部分的に更新していくことが可能」
部下「そんなことが実現できるのか・・・」

上司「さて言語はどうするかね? サービスを停止せずに仕様変更はもちろんのこと
マシンの動的な追加削除、再起動だって可能だが? 」
部下「くっ、再起動できるなら、言語にこだわる理由がない。それがクラウドってやつの力なのか・・・」

270デフォルトの名無しさん2017/09/02(土) 19:31:55.73ID:x3xo3AHA
>>268
> 論点そこじゃないって半日以上経ってなんで気が付かないの

だから論点を明確にしろって言ってんの。
それが言えないのはあんたに「解決できる問題」が見えてない証拠

271デフォルトの名無しさん2017/09/02(土) 19:35:12.81ID:SvMhViqK
あの人の気配を感じる
いやこいつはもっと馬鹿か

272デフォルトの名無しさん2017/09/02(土) 19:36:47.91ID:x3xo3AHA
解決できる問題として、動的に仕様を変更できるというが、
言語のレベルで動的に仕様したいなんて誰も思ってないんだわ
仕様の変更は再起動すれば反映できるんだから

273デフォルトの名無しさん2017/09/02(土) 19:43:45.75ID:SvMhViqK
仕様は静的に変更すんだよ
変更を局所的にして他の部分を保護するためにオブジェクト指向だのメッセージ指向だのを使おうぜというだけの話
動的にデプロイできるなんてのはそれのただの副産物であって今はお前以外は誰も論点にしてないの

274デフォルトの名無しさん2017/09/02(土) 19:46:47.41ID:x3xo3AHA
> 変更を局所的にして他の部分を保護するためにオブジェクト指向だのメッセージ指向だのを使おうぜというだけの話

その部分を今はネットワーク通信でやろうぜって事になってる。
システム全体がオブジェクト指向になったと言えば理解できるか?

「変更を局所的」=マシン単位 に時代は変わったんだよ。

275デフォルトの名無しさん2017/09/02(土) 19:49:03.82ID:x3xo3AHA
あ、もちろんマシン単位といっても物理マシン単位という意味じゃなくて
仮想マシン単位だったりコンテナ単位だったりするからな。

変更が局所的にすんでるだろう?w

276デフォルトの名無しさん2017/09/02(土) 19:53:58.37ID:x3xo3AHA
それに動的に仕様変更できたとしても突発的なハードウェア障害には対応できない。

それは別の話だと思うかもしれないが、仕様変更であれば別に動的に
やる必要はなく再起動すれば十分。再起動が許されないから動的に仕様変更するのが
要件になっているのだと思うが、再起動が許されないようなシステムは
どちらにしろハードウェア障害にも対応できるのが要件の一つとなるはず。

ハードウェア障害にも耐えられるようなシステムにすると副次的に
動的な仕様変更にも対応できるようになるんだよ。
言語レベルでやることじゃない。

277デフォルトの名無しさん2017/09/02(土) 19:54:58.55ID:x3xo3AHA
で、それ以外に論点が有るというのなら
「解決できる問題」とやらを明確に書けって話

278デフォルトの名無しさん2017/09/02(土) 20:01:06.49ID:mrBSaSic
設計、実装、運用を対象に「メッセージ」を方便に「決定の遅延」を徹底するアイデアがありました
仕様策定、言語、マシン単位で今では当たり前の考え方として普及しました
めでたしめでたし でいい話をなにを長々と

279デフォルトの名無しさん2017/09/02(土) 20:03:11.91ID:x3xo3AHA
>>278
たぶんその結果、アプリを起動したまま
デバッガなどで動的に変更できることの意味が
なくなったかのようにみえるのが悔しいんだと思うw

280デフォルトの名無しさん2017/09/02(土) 20:05:24.10ID:mrBSaSic
>>276
なんで「決定の遅延」が可能とする例のひとつに挙がっただけの動的な仕様変更にそこまで拘るのか謎
コンプレックスでもあるのか?

281デフォルトの名無しさん2017/09/02(土) 20:10:44.54ID:x3xo3AHA
>>280
だから、それ以外の「解決できる問題」がでてないから。
例が一つしか出てないんだから、それにこだわるしか無いわなw

さっさと他の例だせよ

282デフォルトの名無しさん2017/09/02(土) 20:14:14.69ID:je61f8uF
なんとな
頭の悪いID:x3xo3AHAがキチガイみたいに26もレスしてすっかり流れてしまったが
メッセージングとは「手続き」のこと
相互作用とは「手続き」のこと

それから>>254の考え方
> いっそ全てのメソッドがブロックしなかったり
> オブジェクトがサービスだったらいいんじゃないか
は非常にまずい、うまくない
オブジェクトを沢山作ったらなんか勝手に互いにコミュニケーション初めて
結果、自分の求めていた機能が得られました!
はマズい、そんな遠回りなことしたいやつはいない
俺らは生態系のシミュレーションプログラムを書いているわけじゃないし
シミュレーションの結果として目的が達成される、とはしたくない
あくまでオブジェクトは道具であり、こちらが主導権をもって手続きから制御して使う
そのためにも手続きが簡潔、何がどの順番で実行されるか一目瞭然に
なるよう念頭に置いて、逆算してクラスを設計する

283デフォルトの名無しさん2017/09/02(土) 20:15:21.59ID:x3xo3AHA
つーか>>259のアホらしいネタにつきあれば

「決定の遅延」だけなら、あとで
ソースコード修正すればすむだけの話なんだよ。
難しいことはにもない。どんな方法でも実現できる

>>267で書いたようにこの方法でも「決定の遅延」w行ってる。

> 部下「Blobの管理どうします?ファイルシステムかDBかクラウドストレージもありですね」
> 上司「とりあえずファイルシステムを使ってあとで修正すればいいよ」
> 部下「ういっす」



だからあんたの言う「決定の遅延」は本質ではないってことなんだよ。
そこに隠された本当の条件があるだろ?

284デフォルトの名無しさん2017/09/02(土) 20:22:33.54ID:mrBSaSic
>>281
> だから、それ以外の「解決できる問題」がでてない

だから http://metatoys.org/oxymoron/oxymoron.html を一度読めよと何度いったら…

285デフォルトの名無しさん2017/09/02(土) 20:23:23.96ID:je61f8uF
>>254のような変なことを考えてしまうやつが出てくるのが
オブジェクト指向という名前のまずさだろうな
もしメッセージング指向って名前ならこんな勘違いするはずなかった
メッセージング指向とは:
メッセージのやり取りを実行順に順番に並べて定義する(←プログラム、手続き)ことで
プログラミングする方式
っていう感じの定義になってただろうからな

286デフォルトの名無しさん2017/09/02(土) 20:24:40.70ID:x3xo3AHA
>>284
よんだ。書いてない。以上

287デフォルトの名無しさん2017/09/02(土) 20:24:49.03ID:je61f8uF
Smalltalkerまで暴れてるのか

288デフォルトの名無しさん2017/09/02(土) 20:29:11.30ID:x3xo3AHA
>>285
メッセージング指向言語なら、勘違いしたかもしれないが、
メッセージング指向システムなら、勘違いしなかったかもねw

「システム」であれば単一の言語でやることじゃなくて
どんな言語であるかは関係なく、システムを小さなプロセスに分離して
そのプロセス間通信(ネットワーク通信)でシステムを構成するという
言語にとらわれない発想につながる

ようは「オブジェクト指向言語」や「メッセージング指向言語」の
「オブジェクト指向」や「メッセージング指向」部分が勘違いの原因ではなく
そのあとにくっつけてる「言語」が勘違いの原因だよ。


「決定の遅延」とやらは言語レベルでやることじゃぁないって話

289デフォルトの名無しさん2017/09/02(土) 20:31:23.03ID:x3xo3AHA
あ、もちろん

> 「決定の遅延」とやらは言語レベルでやることじゃぁないって話

は、今だから言えること。

昔のOSがなくて、言語環境がOSそのものである時代に
そんな発想ができなかったのは仕方ない話。

290デフォルトの名無しさん2017/09/02(土) 20:31:32.64ID:SvMhViqK
素直にNGが正解だったか
このスレではよくあることだが
キチガイを隔離できないと議論の場にもならないな

291デフォルトの名無しさん2017/09/02(土) 20:35:08.35ID:x3xo3AHA
いや反論もなくて、ただ単に書き込み数が多いだけで
キチガイと判断されても困るんですけどーw

292デフォルトの名無しさん2017/09/02(土) 20:36:31.71ID:x3xo3AHA
つーかNGにするならさっさとしてくれ。
そうすりゃ俺の書き込みが見えなくなって
「俺の書き込みに反論ができない」から
俺としては好都合

293デフォルトの名無しさん2017/09/02(土) 20:37:52.79ID:mrBSaSic
>>286
- もしもシステムの基礎に基本的に新しい方法を採用しようとすれば
 かなり最初からやり直さなくてはならない。

- ソフトウェアシステムにおいて全コストの85% は成功裏に導入された後で必要になる。
 コストのおおまかな内容は、新しい要求に応える為の変更、後で発見されるバグ等

- 遅延結合を使う事で、プロジェクト開発の遅い時期に得られた知見を
 指数関数的に少ない工数でプロジェクトに適用出来る

- プロジェクトを一年以上続けていて、沢山の大切な物が出来上がっているとする。
 システムを破壊せずに、何万もの動いているオブジェクトがあるクラスに
 いくつかのインスタンス変数を追加して、動的にそれらを再構成する事は出来るだろうか?

- 開発システムをそれ自体のモデルにさせて、開発中に新しいアイデアとして進化させる事

- インスタンスそのものはどのように作られるだろうか? 変数は実のところどうか?
 簡単に様々な継承構造の記法を実現出来るか? プロトタイプがクラスよりも上手く働くかどうか決定して、
 プロトタイプベースの設計に移動する事が出来るだろうか?

きりがないからやめるけど、どうしてこんな程度が読み取れない? 失読症?

294デフォルトの名無しさん2017/09/02(土) 20:37:55.72ID:w/8WFsta
>>292
永久NGしたいんでコテハン付けてくれ
好都合なら今日だけと言わずずっとそうしようぜ

295デフォルトの名無しさん2017/09/02(土) 20:43:07.29ID:SLw7DScq
>>280
それは完全に「メッセージ指向派」が悪い。
これ関しては、ID:x3xo3AHAが100%正しい。

プログラミングは結果ではなく手段でしかない。
「○○指向」するのは何らかの目的があっての事だ。
「決定の遅延」によって何を得たいのか、それを明示出来ない時点で
「決定の遅延」なんて使い物にならない、と言っているのと同じ。

ID:x3xo3AHAは、「決定の遅延」によって得たい物が「仕様変更」なら、
それは既に他の方法で十分に達成されているから要らない、と繰り返し述べているだけ。
これ自体は全くその通りだし、
議論を進める為に「他の目的を明示しろ」というのも至極まっとうな意見だよ。
そして>>284にはそれが書いてないのも確かだよ。

>>284内でグダグダ言われていることは、
Evalを持っている言語なら普通に出来ることでしかない。
しかしEvalは普通は要らんというのも事実だし、
メジャーなEval使える言語(JavaScript)もあるんだし、欲しければそれ使え、でしかない。

>>293
それが今対応出来てなくて、「決定の遅延」で対応出来るとでも思ってるの?

296デフォルトの名無しさん2017/09/02(土) 20:44:58.90ID:x3xo3AHA
>>293
お前さんずれてるなぁw

それは単にオブジェクト指向の利点でしか無いだろw

俺はずっと>>229の話をしているというのに

> 229 名前:デフォルトの名無しさん[sage] 投稿日:2017/09/02(土) 11:48:07.70 ID:x3xo3AHA [3/34]
> > メッセージ指向が目指したのは「可能な限りの決定の遅延」
>
> 決定の遅延は、問題の先送りと考えればよい。
> 結局あとから問題が発覚するだけにすぎない。

じゃあ、メッセージ指向が目指したのは「可能な限りの決定の遅延」は
大した意味はなく、メッセージ指向と言い換えなくても、
「オブジェクト指向の利点」として今よく知られているものだけで十分ってことだね?

人々は何も誤解していないってことになる。

297デフォルトの名無しさん2017/09/02(土) 20:52:24.82ID:x3xo3AHA
でもまあこのくだらない会話でも少しは意味があったな。

それは俺が、「決定を遅延させるだけ」ならば、
あとからソースコードを修正してシステムを再起動すれば
実現可能だってちゃんと認識できたってことだ。

つまり決定の遅延と誰かが言ってる時、その「決定の遅延」は本質ではなく、
本質は「プロセスを停止しなくてすむ(サービスの停止時間が短くてすむ)」と
言ってるにすぎないということ

298デフォルトの名無しさん2017/09/02(土) 20:55:32.24ID:mrBSaSic
>>296
だからメッセージは方便、唱えていればそれなりに実践はできるお題目だって >>228 でいってるじゃん
本質である「決定の遅延」の徹底の意味の理解ができていれば、メッセージなんて無用ですらあるよ
君の「メッセージ指向」批判もどきはいちいち的を外しているし、端から見れば >>278 に尽きる

299デフォルトの名無しさん2017/09/02(土) 20:59:12.98ID:mrBSaSic
>>297
> 「決定を遅延させるだけ」ならば、
> あとからソースコードを修正してシステムを再起動すれば
> 実現可能

その再起動で失われる物がなにもなければ別にいいと思うよ

300デフォルトの名無しさん2017/09/02(土) 21:00:04.98ID:x3xo3AHA
では、メッセージ指向なんて言わずに

決定の遅延指向っていえばいいんじゃないですかねぇ?

メッセージに決定の遅延という意味はない

なんで言い換えるの?
オブジェクト指向と言い換えたことで勘違いさせたのと同じ問題を
メッセージ指向でも発生させている。

301デフォルトの名無しさん2017/09/02(土) 21:01:52.97ID:x3xo3AHA
>>299
> その再起動で失われる物がなにもなければ別にいいと思うよ

どんなものを使っても
ハードウェア障害などでいきなり電源プッチンすれば、
永続化していないなにかが失われると思うが?

そんなもん言語レベルで解決する方法存在すんの?

ハードウェアの冗長化などしてシステムレベルで担保するもんでしょ

302デフォルトの名無しさん2017/09/02(土) 21:05:25.64ID:x3xo3AHA
そうだなー俺だったら「疎結合システム」って名前にするかな
「指向」っていうのもおそらく勘違いの原因になってる。
指向というより、システムだからね
んで、別にそこに言語は問わない。

303デフォルトの名無しさん2017/09/02(土) 21:06:13.43ID:mrBSaSic
Smalltalkだの動的な仕様変更だのを目の敵にしすぎでまともな議論ができんよ

304デフォルトの名無しさん2017/09/02(土) 21:09:52.20ID:mrBSaSic
>>300
いちいち的を外すね
そもそも「メッセージ指向」が、アラン・ケイは自らのオブジェクト指向をこう呼ぶべきだったって話だろう
「決定の遅延指向」でも「疎結合システム試行」なんでもいいけど
よく理解できない人がいるから方便・お題目としてメッセージってメタファを使ってるんだよ
話を堂々巡りさせるなよ

305デフォルトの名無しさん2017/09/02(土) 21:16:57.87ID:x3xo3AHA
下手なメタファは混乱のものと
「メッセージ」で何も理解出来ない。

そもそもメッセージは手段であって
実現したいことじゃない。

実現したいことを語らず手段から入るから
だめなんだよ。

306デフォルトの名無しさん2017/09/02(土) 21:18:20.73ID:mrBSaSic
>>301
なんでこの期に及んまだ「言語レベル」に拘るの? バカなの?

307デフォルトの名無しさん2017/09/02(土) 21:23:02.25ID:x3xo3AHA
>>306
疎結合システムは言語レベルで実現するものではない
というのが主張だから。

308デフォルトの名無しさん2017/09/02(土) 21:25:05.65ID:w/8WFsta
>>307
コテハンはやくしてよ

309デフォルトの名無しさん2017/09/02(土) 21:25:30.70ID:mrBSaSic
>>307
勝手にやってろと

310デフォルトの名無しさん2017/09/02(土) 21:26:53.87ID:fbxz7fkL
伸ばしてるヤツが居るときは読まなくていい
コテハン案は賛成

311デフォルトの名無しさん2017/09/02(土) 21:28:16.23ID:x3xo3AHA
>>308
しない。

312デフォルトの名無しさん2017/09/02(土) 21:29:03.24ID:x3xo3AHA
本質ではないこと(書き込み数が多いぞ)という
指摘が多いからIPアドレス変えるわw

313デフォルトの名無しさん2017/09/02(土) 21:29:35.74ID:bwiWyWdK
ほらよw 変わった。(もう一回変えるw)

314デフォルトの名無しさん2017/09/02(土) 21:29:43.61ID:w/8WFsta
>>311
してくれ頼む
そっちにとっても都合がいいんだろ
さっきそう言ってたじゃないか

315デフォルトの名無しさん2017/09/02(土) 21:30:49.34ID:UGkdV3fd
なお、変えた所でレス内容見れば誰かわかるから
問題ないだろ?というスタンス

単に同じIDがたくさんあることに対して
ストレスを感じる人への救済策w

316デフォルトの名無しさん2017/09/02(土) 21:31:12.55ID:w/8WFsta
特徴的な長文だからid変えたって無駄だよ
何度でもNGされる
でもそれじゃ不便だろう?
だからコテハンをつけてくれ
毎日NGする手間のせいでみんなが迷惑してるんだよ

317 ◆ZnBI2EKkq. 2017/09/02(土) 21:32:17.96ID:qPg7LdX5
>>314
ほらよ。してやったぞ。
なお他の誰かとかぶっていても俺は知らん

318デフォルトの名無しさん2017/09/02(土) 21:32:29.97ID:w/8WFsta
わかりきった単純作業はしたくないの
みんなプログラマだから
お前が少し協力的になるだけでみんなが喜ぶ
なんでそうしない
他人に迷惑をかけたいのか?

319 ◆taAZ7oPCCM 2017/09/02(土) 21:33:06.20ID:qPg7LdX5
>>316
その理屈だとコテハン付けても
俺は何もメリット無いじゃん?w

320デフォルトの名無しさん2017/09/02(土) 21:33:12.12ID:w/8WFsta
>>317
良し
死ぬまで絶対にコテハン変えるなよ

321デフォルトの名無しさん2017/09/02(土) 21:33:47.27ID:qPg7LdX5
というコテハンはどうだろう?w

322 ◆wG1CV58ydQ 2017/09/02(土) 21:34:05.71ID:qPg7LdX5
>>320
あ、ごめんwもう変えたw

323デフォルトの名無しさん2017/09/02(土) 21:34:06.11ID:w/8WFsta
>>319
お前は反論を受けて反論し返す労力がなくなって楽になるだろ
Win-Winの関係だ
じゃあなバイバイ

324デフォルトの名無しさん2017/09/02(土) 21:34:47.73ID:w/8WFsta
>>322
変えるなよハゲ

325 ◆taZqHR8ods 2017/09/02(土) 21:35:06.66ID:qPg7LdX5
>>323
> お前は反論を受けて反論し返す労力がなくなって楽になるだろ
いや、別に?

なんのために匿名掲示板に
書き込んでると思ってるんだw

326 ◆xKvzozvsSk 2017/09/02(土) 21:35:24.99ID:qPg7LdX5
>>324
ハゲじゃねーよw

327 ◆bb6OCCHf8E 2017/09/02(土) 21:35:54.30ID:qPg7LdX5
よし。あそんだからまたIP変えるわw

328デフォルトの名無しさん2017/09/02(土) 21:36:26.88ID:fbxz7fkL
固定ハンドルネームの意味も知らないのか

329デフォルトの名無しさん2017/09/02(土) 21:44:03.05ID:Wpy+cxIC
固定ハンドルネームの意味は少なくとも
NGにしたい人に対してお願いして
付けてもらうものじゃなかったと思うが

330デフォルトの名無しさん2017/09/02(土) 21:49:40.24ID:fbxz7fkL
>>329
>>292 って言ってるから協力してくれると思ってたわ

331デフォルトの名無しさん2017/09/02(土) 21:51:20.29ID:Wpy+cxIC
>>330
NGならIDでできるだろ?
それなら俺には手間はかからない
やるなら今ある情報で勝手にやってくれって話
俺は自由にやりたいようにやる

332デフォルトの名無しさん2017/09/02(土) 22:45:14.73ID:fbxz7fkL
>>331
おまえ自身が実践してるようにIDは変化するんだよ

333デフォルトの名無しさん2017/09/02(土) 22:53:17.53ID:w/8WFsta
「あ」はその点、潔かったな
それと比べてこいつは言うことも馬鹿馬鹿しいが性格が姑息だ

334デフォルトの名無しさん2017/09/02(土) 23:00:10.31ID:Wpy+cxIC
>>332
変化しても見つけたらそばから
NGすりゃいいだけじゃん?
レスするぐらならNGにすればいい

335デフォルトの名無しさん2017/09/03(日) 02:48:19.90ID:ne8qPBqk
>>282
まったく読めてないな
誰がうまく行くなんて言ってるんだ

お前のやりたいことは上から下に流れる行番号プログラムが一番お似合いなんじゃないか?

336デフォルトの名無しさん2017/09/03(日) 07:34:16.18ID:hrqzcgfY
未だにコテハンに拘るやつって・・・
何歳?ガイジ?痴呆老人?

337デフォルトの名無しさん2017/09/06(水) 01:04:35.69ID:j4+F5TZ8
>>334
エンジニアの才能ゼロ臭がすごい

338デフォルトの名無しさん2017/09/06(水) 07:52:17.25ID:f+iOByXp
日本人エンジニアとしては優秀
何度でもリピートユアセルフが日本人エンジニアの信念だからね

339デフォルトの名無しさん2017/09/12(火) 17:44:55.65ID:kqpNBs15
オブジェクト思考の設計とRDBMSの理論って
多分似たような考え方が多いんと思うんだけど、
それぞれ別々の用語で語られるから整合性をとるのが
大変。

340デフォルトの名無しさん2017/09/13(水) 20:51:27.10ID:Lp/X5Gmt
>>339
>> 多分似たような考え方が多いんと思うんだけど、
似たような考え方はない

>>それぞれ別々の用語で語られるから整合性をとるのが大変。
お前のアタマの出来の問題

341デフォルトの名無しさん2017/09/14(木) 00:12:12.72ID:Hmi0+Px2
インピーダンスミスマッチを知らないのかな

342デフォルトの名無しさん2017/09/14(木) 07:00:44.26ID:CERdfB5z
久しぶりにスレ読んだが

>>224
>何がどの順で実行されているか明瞭
それは手続き型の逐次性であって
アランケイの言うメッセージングとは関係ない

>>228
>メッセージ指向が目指したのは
>「可能な限りの決定の遅延」
こっちの方が元祖に忠実な解釈

343デフォルトの名無しさん2017/09/14(木) 07:09:15.99ID:CERdfB5z
>>282
>メッセージングとは「手続き」のこと
>相互作用とは「手続き」のこと
違う

>何がどの順番で実行されるか一目瞭然に
>なるよう念頭に置いて、逆算してクラスを設計する
それはオブジェクト指向設計ではない

344デフォルトの名無しさん2017/09/14(木) 07:11:37.80ID:CERdfB5z
>>285
>メッセージング指向とは:
>メッセージのやり取りを実行順に順番に並べて
>定義する(←プログラム、手続き)ことでプログラミングする方式
違う

むしろ手続き型の逐次性に縛られない
実行時に自由な順序で処理できる
のがメッセージング指向

345デフォルトの名無しさん2017/09/14(木) 07:45:55.41ID:5pJqzEw6
実装は関数型か手続き
パッケージングはオブジェクト指向
システム相互作用はメッセージ指向

今のところこれが最も楽だね
システムの隅々までオブジェクト指向に執着する意味はない

346デフォルトの名無しさん2017/09/14(木) 11:18:13.19ID:emC4w7HW
>>342
アランケイの言うことなどあてにならないから
斜めからとらえてるんだよ
オブジェクトの外が重要→相互作用の手続きが重要
という風に

347デフォルトの名無しさん2017/09/14(木) 19:22:14.60ID:bJf7rU1J
お前の妄想とアランケイの発想とどっちがあてになるかっていったらアランケイだろjk

348デフォルトの名無しさん2017/09/14(木) 21:37:51.92ID:ryfOUSxm
ニシコリケイって最近見ないね

349デフォルトの名無しさん2017/09/15(金) 05:53:41.36ID:W45XFvfB
>>344
アクターじゃんそれ

350デフォルトの名無しさん2017/09/15(金) 05:55:07.30ID:gy747Xnp
>>347
そうそう
オブジェクト指向の元祖だからね

別に盲信する必要もないが
このスレの批判は単に的外れだな

351デフォルトの名無しさん2017/09/15(金) 05:56:09.92ID:gy747Xnp
>>349
アクターモデルとメッセージモデルは近い
というか影響を受けたものだから
別に似ててもおかしくないよ

352デフォルトの名無しさん2017/09/15(金) 07:15:17.35ID:vyY28csJ
カール・ヒューイットのアクター理論はアラン・ケイのSmalltalk-72の方便・お題目であった「メッセージ」を
問題領域を並列処理に限定して真面目に定式化し実装(PLANNERの拡張)を試したものだよ
ケイも後出しでアルトにもっとマシンパワーがあれば似たようなこと(ただし定式化には興味がなく実装の方)は考えてた
みたいなことは言ってる

353デフォルトの名無しさん2017/09/15(金) 08:28:38.45ID:ckGKvGLj
つまりアクターじゃん

354デフォルトの名無しさん2017/09/15(金) 08:29:13.56ID:ckGKvGLj
オブジェクト指向とアクターを分けましょう

355デフォルトの名無しさん2017/09/15(金) 08:29:38.71ID:ckGKvGLj
アランケイはつまりアクターじゃん

356デフォルトの名無しさん2017/09/15(金) 08:31:05.96ID:ckGKvGLj
オブジェクト指向 vs. アクターじゃん

357デフォルトの名無しさん2017/09/15(金) 08:37:46.12ID:xM51rnqJ
まとめて言え

358デフォルトの名無しさん2017/09/15(金) 08:45:57.26ID:gy747Xnp
アクターモデルほど並列化しなくても
OOには手続き的な逐次に囚われない要素がある

IF文と違って継承や多態したメソッドは
コード記述の順番通りでなく
クラス階層に基づいて呼ばれるし

359デフォルトの名無しさん2017/09/15(金) 09:11:38.66ID:ckGKvGLj
>>357
まとめるとそれってつまりアクターじゃん!!

360デフォルトの名無しさん2017/09/15(金) 09:12:37.96ID:ckGKvGLj
>>358
それってつまりこじつけじゃん!!!

361デフォルトの名無しさん2017/09/15(金) 09:13:14.62ID:ckGKvGLj
じゃんメソッドで理解するオブジェクト指向

362デフォルトの名無しさん2017/09/15(金) 09:41:31.46ID:2UxzT/06
>>358
こんなふうにメッセージングやその先の遅延結合を実装や実行中のことだけに限定しがちだから
「決定の遅延」って言い換えた方がいいって>>228で書いてるとおりの展開だな

「決定の遅延」にフォーカスできていれば、ケイのメッセージ指向はアクター理論と
そもそも問題領域が違うんだから混同しようがないよ

363デフォルトの名無しさん2017/09/15(金) 11:30:55.56ID:ckGKvGLj
決定の遅延ってなんスカ? haskellっすか

364デフォルトの名無しさん2017/09/15(金) 13:10:39.74ID:2UxzT/06
神のごとき傲慢さで何でも事前に決めてしまわないことだよ
OSや言語処理系はもちろん、成果物にすらそうした態度をサポートするしくみが期待される
というのがケイのメッセージ指向のオブジェクト指向のキモ

365デフォルトの名無しさん2017/09/15(金) 13:27:50.13ID:gubbGhIq
モンキーパッチでベタベタ
後付け修正をかけてイミフにすることだよ

366デフォルトの名無しさん2017/09/15(金) 15:34:39.82ID:7SacSfM7
ちょっと何言ってんの

367デフォルトの名無しさん2017/09/15(金) 15:45:11.93ID:2UxzT/06
違うよ
モンキーパッチのような姑息な手を使うような局面の話ではなく、もっと根本的な問題も後から変えられるように
作る and/or それを言語処理系・OS等にサポートさせよう という話だよ

http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
に挙げられている例としては
- How are instances themselves made? インスタンス変数はどのように作られるべきか?
- What is a variable really? そもそも変数というものはどうあるべきか?
- Can we easily install a very different notion of inheritance? まったく別の継承機構を思いついたらそれを試せるか?
- Can we decide that prototypes are going to work better for us than classes, and move to a prototype-based design?
 クラスベースよりプロトタイプベースの方が使いやすいと判断したら、途中から移行できるか?

368デフォルトの名無しさん2017/09/15(金) 15:53:13.42ID:2UxzT/06
>>367
いかん ×インスタンス変数 ○インスタンス(=オブジェクト)

369デフォルトの名無しさん2017/09/15(金) 18:23:11.78ID:H0wq/Z/R
>>367は素晴らしい
これ読んだら、意味ない、必要とされてない、ってことが良くわかって良いでしょ
世迷言の類だよ

370デフォルトの名無しさん2017/09/15(金) 18:28:53.55ID:AR0K3TGO
GoFのデザパタってもう古いの?
今は何

371デフォルトの名無しさん2017/09/15(金) 19:04:42.20ID:Ant/l9eg
-デザインパターンとともに学ぶ-
オブジェクト指向のこころ

372デフォルトの名無しさん2017/09/15(金) 20:03:02.40ID:VPUgCPM1
-デザインパターンとともに滅ぶ-
オブジェクト指向のこころ

3733582017/09/15(金) 21:17:07.69ID:gy747Xnp
>>362
>>358
>実装や実行中のことだけに限定
したつもりはないが

そこまでの流れで
アクターとの違いが疑問になってたから
典型的なOOの挙動を例に挙げたんだよ

374デフォルトの名無しさん2017/09/15(金) 21:20:32.74ID:gy747Xnp
>>370
デザパタは古くないよ

たとえばイテレータが標準で使えるとか
新しい言語が直接サポートするようになったから
自力で実装する必要がない場合も増えたけど
アルゴリズムと同じで知ってて損はない

ただたんにOOの新しい流行って意味なら
今はDDDとか

375デフォルトの名無しさん2017/09/15(金) 21:27:52.24ID:Z/MvErxh
DDDはもう古い
当たり前のように使われる枯れたデザパタと似たようなポジション
逆に言うと使いこなせていない場合は初心者の烙印を押される

376デフォルトの名無しさん2017/09/15(金) 21:28:48.44ID:Xh3vGrxx
DDDはオブジェクト指向もレイヤーが上
関数型のほうが相性がいい面もある

377デフォルトの名無しさん2017/09/15(金) 22:32:03.57ID:Gt1H0B5V
みんなすごいなぁ..

378デフォルトの名無しさん2017/09/15(金) 22:40:52.52ID:8Yl7c1qt
DDDのサービスとDCIのコンテキストの違いを語れるくらいにはなりたい

379デフォルトの名無しさん2017/09/15(金) 23:00:39.95ID:UWwUyGbk
アホ草
所詮は構造体に毛の生えたもんだろ

380デフォルトの名無しさん2017/09/15(金) 23:02:02.51ID:pZU7ycnu
毛の大切さはそれを失なった者にしか分かるまい

381デフォルトの名無しさん2017/09/15(金) 23:03:27.14ID:MoaBkv/B
深い

382デフォルトの名無しさん2017/09/16(土) 04:50:46.78ID:hF16Uo8A
薄い

383デフォルトの名無しさん2017/09/16(土) 10:22:39.13ID:HODesank
>>375
DDD古いなら今は何?

384デフォルトの名無しさん2017/09/16(土) 11:11:05.26ID:FAEJW2nX
> モンキーパッチのような姑息な手を使うような局面の話ではなく、もっと根本的な問題も後から変えられるように
> 作る and/or それを言語処理系・OS等にサポートさせよう という話だよ

つまりアプリケーションの再インストール
ただしOSは再起動しないことが条件
それってWindowsは実現できてるじゃん?

385デフォルトの名無しさん2017/09/16(土) 11:13:12.59ID:TyV9wav2
やっぱMSの技術は最先端行ってるんだな

386デフォルトの名無しさん2017/09/16(土) 11:14:09.27ID:FAEJW2nX
もしかしたらOSの再起動をしても良いかもしれないな。
根本的な問題を変える時、OSを再インストールすることで実現できる。

きっとそれは違う!というのだろうけど、
それって「根本的な問題を後から変えられる」が本当に求めているものではなくて
「システムの停止時間がほぼ0に近いこと」が本当に求めているものではないのかね?

387デフォルトの名無しさん2017/09/16(土) 11:21:50.01ID:0nrSN7bk
>>384
アルトで動いていた暫定ダイナブック環境から40余年
オブジェクト指向システムの設計 173 [無断転載禁止]©2ch.net	YouTube動画>1本 ->画像>1枚
そこらのパソコンもだいぶケイの考えるオブジェクト指向(メッセージ指向)をサポートできるようになったってことか
できたらアップデートするアプリケーションも再起動しないで済む仕組みだとなおいいね

388デフォルトの名無しさん2017/09/16(土) 11:35:51.04ID:FAEJW2nX
>>387
> できたらアップデートするアプリケーションも再起動しないで済む仕組みだとなおいいね
結局それはトレードオフの問題だからね。

アプリを修正したら即反映できるかっていったらそうとは限らない。
メモリ内のデータ構造の変更が必要になることが有る。

だから単純にオブジェクトを入れ替えるだけではなく
データ構造的に互換性がある形にするか
新旧両方のデータ構造に対応させるか
データ構造の変換機能(マイグレーション)が必要になる。

で、それが面倒だから本当に永続化しなければいけないものを限定して保存することで
再起動してそれ以外の重要ではない部分を破棄させる。

だからOSや言語だけで対応できることじゃないんだよ。
今でもやろうと思えばできるが、コストがかかるからやらないってこと

389デフォルトの名無しさん2017/09/16(土) 11:40:49.19ID:FAEJW2nX
またオブジェクトの入れ替え(コードの修正)と言っても
通常は一箇所だけやればいいってもんじゃないからね。

ある機能を実現するために、複数のオブジェクトを修正しなければいけない
それを一括で適用する方法はないだろう?

だからアクロバティックなことをしなければいけなくなる。
つまりコードを修正しても、無効フラグなどで新しいコードが
使われないようにして、互換性を保ちながらコードを修正していって
あるとき一気に切り替え。そして徐々に古いコードを削除していく。

ってなことをやるぐらいなら、夜間にバージョンアップのメンテで
数時間停止します。の方がマシだったりする。
もちろん無停止システムもあるだろう。その場合は
サーバー複数用意して切り替えるとかね

結局はコストと時間を無制限に使えるというのであれば
アランケイの理想は実現できますよ(=不可能という意味)という話でしか無い

390デフォルトの名無しさん2017/09/16(土) 11:56:37.56ID:gf/ZkNkm
サービスの利用が中断されないならアプリケーションを再起動したって何の問題もない。アップデートされるアプリケーション自体にその機能を持たせる価値がどれ程あるのか?

391デフォルトの名無しさん2017/09/16(土) 11:59:46.89ID:0nrSN7bk
>>388
> メモリ内のデータ構造の変更が必要

まあそれを必要としないのがケイの主張する「決定の遅延」の徹底(と言語やOSによるサポート)のミソなわけなんだが
長々と書いている内容を読んだかんじ、まったくイメージがつかめてないんだろうな…

392デフォルトの名無しさん2017/09/16(土) 12:00:50.91ID:FAEJW2nX
>>391
いや「ミソ」とか言ってごまかすなよ。
今度はお前が説明する番だろ
(やっぱり理解してないのかな?)

393デフォルトの名無しさん2017/09/16(土) 12:02:57.53ID:FAEJW2nX
変更するのはデータ構造だけじゃなくて
データの意味が変わったりもするからね。
そういう場合に変更機能はどうしても避けられない

394デフォルトの名無しさん2017/09/16(土) 12:03:34.13ID:/gVs+HA3
>>387
Mac OSの原型か

395デフォルトの名無しさん2017/09/16(土) 12:09:30.00ID:AcW1bn43
OSの定期的な再起動は
現実的に仕様がないと思うけどね
現代のOSは複雑だから

Smalltalkの遅延結合の思想は
理論的には良いけど
現段階で本当に実現できるかは不明

Smalltalkで動かしながらデバッグできるっていうのと
現代のOSとではシステムの複雑さが違い過ぎるから
再起動は必要ない代わりに不具合が出たりするかもしれない

396デフォルトの名無しさん2017/09/16(土) 12:19:19.44ID:0nrSN7bk
>>392
イメージできてない人に説明するのはかなり難しいよ
まして当事者の協力が望めないこの状況ではほぼ不可能だと思う

397デフォルトの名無しさん2017/09/16(土) 12:21:42.56ID:FAEJW2nX
>>396
じゃあイメージしている人に対して説明すればいいだろ?
お前が説明しないのが問題だって言ってるんだから

398デフォルトの名無しさん2017/09/16(土) 12:25:21.02ID:hF16Uo8A
前から疑問だったんだけど「あらゆる意思決定の遅延」の話がなんで「無停止デプロイ」の話にすり替わってんの?
全く別の話だよねこれって

399デフォルトの名無しさん2017/09/16(土) 12:35:04.15ID:FAEJW2nX
>>395
> 現代のOSは複雑だから
結局そこなんだよな

システムが巨大でインターネットを介して世界中にの複数台の
サーバーで一つのシステムを構成してるっていうのは
昔の一台の構成のコンピュータでアプリを動かすのとは訳が違う

せめて遅延結合とかメッセージとかじゃなくて、
処理の非同期実行と呼んでいれば、ウェブサービス=クラス
サービスを実行してる仮想マシン=インスタンスと無理やり
結びつけることも出来たかもしれないね。言葉は重要だw

でも非同期実行だと、サーバーが再起動したとしても最終的に処理できればいいわけで
アランケイが本当に目指していたことである、プロセスを再起動せずに更新反映は
必要ないってことになっちゃうかw

まあすべてを非同期にする必要はないだろうけど、要所要所で
非同期で処理しておけば、システムの更新もしやすくなるんやで

400デフォルトの名無しさん2017/09/16(土) 12:40:46.80ID:FAEJW2nX
>>398
> 全く別の話だよねこれって
結局のところ、意思決定の遅延が何をもたらすのかを
説明できてないのが原因だろうねw


あらゆる意思決定の遅延
→それがあると何ができるか?
→プロセスを停止せずに変更が可能 (ここが一番重要)
→停止して変更すればよくね? (これにうまく反論ができない)
→停止するとつかえなくなる時間がー (苦し紛れの理由)
→それらはデプロイ技術で解決できること

401デフォルトの名無しさん2017/09/16(土) 12:49:12.64ID:0nrSN7bk
>>400
アラン・ケイの主張なんだからとりあえず彼が書いたこれを読もうよ
http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
それから解らないことを具体的に訊いてけばいいと思うよ

402デフォルトの名無しさん2017/09/16(土) 12:50:38.87ID:FAEJW2nX
>>401
読んだ。で?

403デフォルトの名無しさん2017/09/16(土) 12:51:58.36ID:FAEJW2nX
わからないことは何も無いが、俺が勘違いしている可能性はある。
だが勘違いしている俺には、その事実がわかるはずもない。

だから他人から見て間違っているというのであれば
それを説明しろって言ってるだけなんですがーw

404デフォルトの名無しさん2017/09/16(土) 12:58:19.60ID:hF16Uo8A
>>400
→それがあると何ができるのか
→プロセス停止しないで変更可能(ここは全然重要じゃない。無停止デプロイは副次的な効果のうちの1つでしかない)

正しくはこうだろう
ここから間違えてるから議論が明後日の方向に突き進んでる

405デフォルトの名無しさん2017/09/16(土) 13:00:21.80ID:FAEJW2nX
いや、だから副次的な効果ではなくそれ以外の真の効果(なにそれ?)が
言えないのが問題だって言ってるんだが。

間違ってる場所を指摘するだけじゃなくて正しい効果とやらを言えよ
だからいつもデプロイ技術で解決できちまうんだよ。

406デフォルトの名無しさん2017/09/16(土) 13:03:13.48ID:FAEJW2nX
ちなみにさっきも言っているが「変更」自体はプロセスを停止して
リセットすることで、行うことができる。

そのリセットにかかる時間はデプロイ技術で短くなってきており
リセットしないまま慎重に時間をかけて変更するよりも、
変更してリセットしてセーブポイントから再開した方が早い

アランケイはリセットしたほうが早いというのを
計算に入れることができなかったんだろうね

407デフォルトの名無しさん2017/09/16(土) 13:11:46.44ID:hF16Uo8A
正しい効果なんてとっくに明確になってるだろ「意思決定を遅延させることができる」
そのまんまだよ

データベーススキーマが完成するまでアプリケーションの開発チームは何もせず待機するのか?
そうじゃないだろう
普通はモックやスタブを使ってアプリケーションを開発する
これはデータベーススキーマに関する意思決定を遅延したということだ

そしてこういった意思決定の遅延を普遍的なモデルとして再考してあらゆる問題に適用しようぜというのがメッセージ指向の本質
無停止デプロイの話なんてどこにも出てこないんだよ
無停止デプロイはメッセージ指向を応用すれば簡単に実現できるね程度の枝葉の話だ

408デフォルトの名無しさん2017/09/16(土) 13:12:37.99ID:FAEJW2nX
「意思決定を遅延させることができる」
→それがあると何ができるか?
→プロセスを停止せずに変更が可能 (ここが一番重要)

ほらまた同じ流れw

409デフォルトの名無しさん2017/09/16(土) 13:15:03.01ID:FAEJW2nX
>>407
> データベーススキーマが完成するまでアプリケーションの開発チームは何もせず待機するのか?
> そうじゃないだろう
> 普通はモックやスタブを使ってアプリケーションを開発する
> これはデータベーススキーマに関する意思決定を遅延したということだ

データベーススキーマに関する "本物の実装" を遅延させただけ
データベーススキーマに関する "意思決定はなされた" からこそ
モックやスタブという "偽物の実装" を遅延させずに早期に開発することが可能なった

これが正しい解釈だからねw

410デフォルトの名無しさん2017/09/16(土) 13:25:28.76ID:FAEJW2nX
> 無停止デプロイの話なんてどこにも出てこないんだよ

それがでてくるんだよなぁ。
停止して良いのならば、静的型付け言語でコンパイルして完全に型が
決定していようとも、再コンパイルすることで変更することができる。
停止していいならばね。

だからプロセスを停止するかしないかだけが焦点となってしまう。

411デフォルトの名無しさん2017/09/16(土) 13:28:34.44ID:6N2IGxKU
世界改変のためには一度世界を滅ぼす必要があるのか!

412デフォルトの名無しさん2017/09/16(土) 13:31:13.63ID:FAEJW2nX
安心しろ。世界を滅ぼさなくても一部だけを修正すればいいだけだ。

そしてソフトウェアは世界じゃない。
止めてリセットして同じところまで再開することが可能なのに、
わざわざ止めずに修正する必要なんて無いんだよ。

413デフォルトの名無しさん2017/09/16(土) 13:36:49.70ID:hF16Uo8A
だめだこりゃ
話を聞かない人間に物事を理解させることほど難しいことはない

414デフォルトの名無しさん2017/09/16(土) 13:38:39.88ID:FAEJW2nX
そりゃお前が「物事を他人に理解させるための説明」を
何一つしないからだな。

「話を聞かない」の前に、お前の話はどれだよ?ちゃんと反論してるだろ
その俺の反論した話を聞かないのはお前だろ

415デフォルトの名無しさん2017/09/16(土) 13:46:23.09ID:gf/ZkNkm
この議論はID:FAEJW2nXのほうがまともだね。

416デフォルトの名無しさん2017/09/16(土) 13:46:23.43ID:u+EwIGwO
優越コンプレックス餓ひどい奴がいるな
かわいそうに

417デフォルトの名無しさん2017/09/16(土) 13:48:02.25ID:FAEJW2nX
一応>>416は俺ではないことを示しておこう

418デフォルトの名無しさん2017/09/16(土) 13:51:47.58ID:gf/ZkNkm
>>407
意思決定が遅延できることには価値があるけど、それにはトレードオフが伴う
それを理解せずに普遍的なモデルとしてあらゆる問題に適用しようぜって言ってるうちは
世迷いごとと言われて当然

まずアラン・ケイの主張に対して自分たちのスタンスを明確にしたら?
困ったら「アラン・ケイの主張なんだから」じゃ議論にならんよね

419デフォルトの名無しさん2017/09/16(土) 14:03:12.81ID:gf/ZkNkm
もう一つ言っとくと無停止デプロイの類は
入れ替え可能なコンポーネントについて事前に意思決定してるからできる事なんだよ
遅延可能な意思決定の範囲ついて事前に意思決定をしてる

アラン・ケイがトレードオフについて理解できてないとは俺は思わないけどね

420デフォルトの名無しさん2017/09/16(土) 14:12:17.50ID:FAEJW2nX
全てがオブジェクトが入れ替え可能というふうに
事前に意思決定をしているアラン系(笑)

421デフォルトの名無しさん2017/09/16(土) 14:50:07.64ID:amUiv1H5
開発プロセスを止めて意思決定を待つ必要が無いってことなら大きいな

運用中のシステムを一時停止する話とは全然違う

422デフォルトの名無しさん2017/09/16(土) 14:52:50.48ID:/gVs+HA3
自分だけは常に正しいという前提

423デフォルトの名無しさん2017/09/16(土) 14:55:11.70ID:FAEJW2nX
>>421
もう一回言っておくね。
例えばC言語で、完成してないモジュールを勝手に定義して
自分の担当のモジュールを作ることは出来ます。

止めれば良いのだから、モジュールが完成してから
再コンパイルして変更することも出来ます。

これがあなたが言ってる「意思決定を待つ必要がない」と
いうことそのものです。

424デフォルトの名無しさん2017/09/16(土) 14:56:16.78ID:FAEJW2nX
これからは開発プロセスを止めて意思決定を待つ必要が無いという開発を
>423のことと定義しましょう。実際その通りなのですからね。

425デフォルトの名無しさん2017/09/16(土) 15:18:35.50ID:0nrSN7bk
なんかこいつ>>307っぽいな
端から理解する気なんかないくせに難癖付けて絡んでくるの
相手するだけ時間の無駄

426デフォルトの名無しさん2017/09/16(土) 15:27:55.42ID:KTBQzRbQ
そもそも立ち位置がアンチ「アラン・ケイ」&「Smalltalk」だから
それらに関係しそうな主張はいっさい聞く耳もたないし
もしかしたら思考も意識的に停止させてるっぽいから
説明尽くしても届かない

427デフォルトの名無しさん2017/09/16(土) 15:49:34.15ID:gf/ZkNkm
>>426
少なくとも俺はアラン・ケイを尊敬してるよ。
アスキーのアラン・ケイ本を何度も読み返すくらいにはね。

以前の議論はともかくとして今日の議論は
ID:0nrSN7bk や ID:hF16Uo8A より
ID:FAEJW2nX のほうが言ってることがまとも

議論から逃げて個人攻撃するしかできないのなら
端から難癖つけて絡むやつと同レベルだよ

428デフォルトの名無しさん2017/09/16(土) 15:57:16.09ID:FAEJW2nX
>>425
お前のそのレスは、難癖つけてるだけか?
それとも議論か?よく考えたほうが良いよ

429デフォルトの名無しさん2017/09/16(土) 16:39:45.47ID:2BjiIsa6
スマホまで使ってご苦労なことだ

430デフォルトの名無しさん2017/09/16(土) 17:18:39.42ID:0nrSN7bk
>>418
別に困ったからじゃない
アラン・ケイの主張なんだからアラン・ケイの主張を読み解くところから始めようというだけ

431デフォルトの名無しさん2017/09/16(土) 17:42:14.48ID:FAEJW2nX
>>430
教祖様の主張なんだから教祖様の主張を読み解くことから始めようという言い方で
無宗教の人を勧誘する行為はマヌケだなって思わない?

そんな宗教に入りたくもないのに、なぜ自ら洗脳されるために勉強しなければらないのか?
まずは信者のお前が、どういう宗教なのかを自分の言葉で語るのが最初だろ

読めばお前も信者になるはずだっていう考えは
すごくマヌケだよw

432デフォルトの名無しさん2017/09/16(土) 17:47:16.58ID:0nrSN7bk
>>427
ID:FAEJW2nX ほどの人物ならちゃんと読んで咀嚼しようと試みれば疑問はいくらでも出てくるはずなのに
読んでもいっさい疑問はないとつっぱねる

>>307だと分かった時点で、俺はいっさい相手をするつもりはなかったけれど、それと知らずに
善意の ID:hF16Uo8A が >>407 でアラン・ケイが挙げているよりもっとイメージしやすいところを挙げてくれているのに
それに対してだってとんちんかんな反応を繰り返すだけ

これ以上、なにをどうせいっちゅうんじゃ?

433デフォルトの名無しさん2017/09/16(土) 18:04:49.40ID:FAEJW2nX
>>432
なんで疑問が出るんだ?お前は疑問が出てるのか?
読んだら誰だって疑問が浮かぶはずだと思ってるのか?
どういう理屈なんだそりゃw

当時の時代背景ではそうだっただろうね。
今当てはまってないのは、時代が変わったからだね
という納得しか無いわw

> >>307だと分かった時点で、
「俺は相手が誰だか見抜きました。すごいだろー」
っていうのは今の議論に何の関係があるんだ?
それこそどうだって良いことだろ

> これ以上、なにをどうせいっちゅうんじゃ?
アランケイを読んだ上で、俺独自の意見を言ってるんだから
それに対して反論してくれればいい。お前すべて見なかったことにしてるだろw
俺が理解してないというのなら、理解していないならばこそ俺の意見に穴があるはずだろ?
その穴をお前はつけばいいだけなのに「教祖様の話を聞けば改宗するはず」と繰り返してるだけ

えとな、自分の言葉で説明できないのは、理解してないからなんやで?

434デフォルトの名無しさん2017/09/16(土) 18:18:55.20ID:0nrSN7bk
「オブジェクト指向」には抽象データ型をクラス等で実現するストラウストラップのそれとは別にアラン・ケイのそれがある
よくメッセージングで象徴されがちだけど、「決定の遅延の徹底」という真の目的まで言及されないことが多いから要注意な
ってなことを紹介してるだけなのにどうして宗教の押しつけだの教祖がどうのこうの難癖つけられるのかわからん

「カプセル化、継承、多態性」に象徴されるストラウストラップの考え方を紹介するとこれも宗教なのか?

むしろアンチという宗教の押しつけをやめてほしいわ

435デフォルトの名無しさん2017/09/16(土) 18:19:21.66ID:FAEJW2nX
> 「決定の遅延の徹底」という真の目的まで

それは目的じゃない。手段

436デフォルトの名無しさん2017/09/16(土) 18:21:11.83ID:FAEJW2nX
「決定の遅延の徹底」ではなく「決定の遅延の撤廃」と言い換えれば、

決定の遅延の撤廃が真の目的だ!と言われた時に
お前はなんで?って聞き返すだろ。
これは目的じゃなくて手段だからだ。

437デフォルトの名無しさん2017/09/16(土) 18:37:56.50ID:FAEJW2nX
わずか30秒の速攻レスにもうお手上げかなw
速攻でレスしたんだから、気づいてないはず無いよね

早く決定の遅延を徹底する目的
何のために決定の遅延を行うのかってのを
言ってほしいものなんですがね

まあここまでいくつも出た目的をさんざん打ち破ってきたので
これ以上目的が思いつかないってのもわかりますがねw

438デフォルトの名無しさん2017/09/16(土) 18:58:32.38ID:0nrSN7bk
つくづく独りよがりの哀れなやつだな…きっと長生きするよ

439デフォルトの名無しさん2017/09/16(土) 18:59:50.46ID:FAEJW2nX
ほんと議論する気ねーのなw
そのくせそんな書き込みだけはすると

440デフォルトの名無しさん2017/09/16(土) 19:09:37.99ID:hF16Uo8A
決定の遅延の目的はシンプルで明確だよ
システム開発において「依存元に着手する時期 <= 依存先が解決する時期」という不等式は必ずしも成立しない
むしろ社内政治の都合で不等式が成立しないことの方が圧倒的に多い
これはコーディングフェーズだけの問題ではなく企画から運用まで様々なフェーズで起こりうる問題
依存関係木の葉から順番に問題を解決するやり方ではとてもじゃないが納期には間に合わない
なので依存先の解決を待たずに依存元の解決を可能にして並列に処理しなければならない
そのためには決定の遅延を導入する必要がある

441デフォルトの名無しさん2017/09/16(土) 19:15:16.87ID:FAEJW2nX
>>440
コーディングフェーズの話をしてくれ

単に仕事をする上で仕様等が決まっていなくても
こうなるだろうという仮の"決定"を行って
先に作業をすすめる。あとで本当に決まった時に
仕様変更するという話にしか聞こえん

それだと別に静的型付け言語でコンパイルするようなものでも
仮の仕様を先に決定して、あとから修正することも可能だろ

442デフォルトの名無しさん2017/09/16(土) 19:18:50.27ID:FAEJW2nX
一般論の話をすすめるのなら、契約が済んでいなくても
待ち時間を無駄に過ごすぐらいなら、先行して作業することが有るだろう
だけど契約することなく終わってしまえば、その作業は無駄になる。
トレードオフの話になってしまって、決定の遅延は必ずしも正解ではなく
徹底するのはやめた方がいいという当たり前の結果になる。

で、まだこのまま一般論の話を続ける?
当てはまらなくて意味がないから、
さっさとコーディングベースの話をしてほしいんだが

443デフォルトの名無しさん2017/09/16(土) 19:19:11.35ID:0nrSN7bk
せめて「疎結合システムは言語レベルで実現するものではない」とかいう的外れな拘りから離れられない限り議論なんて無理

もっともその縛りを解いたら、ケイの書いている「決定の遅延の徹底」のメリットの例に疑問も異論はないんだろ?
議論しようにも争点が見当たらないよ

444デフォルトの名無しさん2017/09/16(土) 19:20:06.21ID:0nrSN7bk
コーディングベースの話がしたいなら次世代言語スレでも行けば?

445デフォルトの名無しさん2017/09/16(土) 19:20:10.55ID:FAEJW2nX
>>443
だから、俺が言った(?)言葉を再掲して終わりじゃなくて
それに対してお前の意見を言えよw

お前の意見じゃなくて俺(?)の意見を、
お前が言ってるだけじゃねーかw

446デフォルトの名無しさん2017/09/16(土) 19:21:08.54ID:FAEJW2nX
>>444
じゃあ何の話をしたいんだよw

一般論の話で決定の遅延はトレードオフなんだから徹底するものではないと
いったはずだぞ。読んでないのかもしれないが。

447デフォルトの名無しさん2017/09/16(土) 19:52:57.54ID:RZXlyLKz
ああ分かった分かった「徹底」にひっかかってんのね
「徹底」っていうのは文字通り「底まで貫き通す」という意味以外にも
慣用的には努力目標(この場合はそれよりちょっと強めだけど)とする場合もあるんだよ
適用不可能と思われる局面でもそれを克服するために工夫するということはあっても
あきらかに適用したらダメな局面にもバカみたいに例外なく貫き通すって意味じゃあない
生きるのつらくない?

448デフォルトの名無しさん2017/09/16(土) 19:53:51.63ID:hF16Uo8A
>>442
もちろんコストとメリットのトレードオフはあるがそれはコントロールできるもの
そして評価は統計的な視点で行うべきだ
あまりにも期待値が低いなら無理に利用する必要はない

例えば「契約が取れるかどうかもわからないのに完全な納品物を作る」という決定の遅延は期待値が低いので避けるべきだ
あるいは「同じ取引先の別案件が成功して本案件の契約が取れる見込みが高まったので技術的な調査とテンプレート作成に限定して先行着手させる」という決定の遅延ならば期待値が高いので採用してもいいだろう

その辺りはバランスの問題だな
なんらかのリスクがあるから決定の遅延は絶対にダメだなどというのはあまりにも思慮に欠けるよ

449デフォルトの名無しさん2017/09/16(土) 19:58:03.28ID:FAEJW2nX
やっぱり一般論の話の方をしたいのか(苦笑
オブジェクト指向とは全く関係ないな

450デフォルトの名無しさん2017/09/16(土) 20:11:50.81ID:FAEJW2nX
なんか話がアランケイの話から
オブジェクト指向にすり替えられようとしてるな
気づいてよかった

>>387
> できたらアップデートするアプリケーションも再起動しないで済む仕組みだとなおいいね
結局それはトレードオフの問題だからね。

アプリを修正したら即反映できるかっていったらそうとは限らない。
メモリ内のデータ構造の変更が必要になることが有る。

だから単純にオブジェクトを入れ替えるだけではなく
データ構造的に互換性がある形にするか
新旧両方のデータ構造に対応させるか
データ構造の変換機能(マイグレーション)が必要になる。

で、それが面倒だから本当に永続化しなければいけないものを限定して保存することで
再起動してそれ以外の重要ではない部分を破棄させる。

だからOSや言語だけで対応できることじゃないんだよ。
今でもやろうと思えばできるが、コストがかかるからやらないってこと

451デフォルトの名無しさん2017/09/16(土) 20:21:12.24ID:FAEJW2nX
要点だけ言っておくと、アランケイが目指したシステムっていうのは
当時の世界観でのシステムであり、当時の世界観の
システムっていうのは言語そのものだった。言語がOSだと言っても過言じゃない。

だからアランケイが目指したシステムは今では言語で実装するものではなく
OSやアプリケーションレベルで実装したほうがよい。

アランケイが目指した再起動なしにオブジェクトを入れ替えられるという機能で
実現したかったものは、オブジェクトよりも大きな単位であるアプリケーション
・サービス・OS・仮想マシン・コンテナなどの単位で入れ替えることで実現できるようになった

452デフォルトの名無しさん2017/09/16(土) 20:59:57.74ID:8gG27N70
>>450
> メモリ内のデータ構造の変更が必要

やっぱ読んでないんじゃん…

453デフォルトの名無しさん2017/09/16(土) 21:08:35.29ID:AcW1bn43
>>440
アランケイの文脈から外れるけど
依存関係逆転とかはOOの原理のひとつだし
修正しやすいのはOOのメリットだと思う

>>441
Javaのインターフェイスと
Rubyのダックタイピングじゃ
修正の柔軟性が違ってくる

454デフォルトの名無しさん2017/09/16(土) 21:15:27.53ID:AcW1bn43
>>451
そうだよ
アランケイの遅延決定の話は
OSレベルまで射程範囲がある

だけどだからこそ本当に
理論が実現できるかは別の話で
Smalltalkのシステムを現代のOSに
そのまま適用できるかというと大いに疑問

あのままだと動的で自由過ぎて
収拾がつかなくなりそうな予感がする

455デフォルトの名無しさん2017/09/16(土) 21:19:29.29ID:FAEJW2nX
>>452
だから自分の意見を言えって
俺が言ったことを復唱しても、
俺が言ったこと以上の意味は持たない

>>453
OOの文脈の話なんかしてない
アランケイの世界が今と外れてるって話をしてる

> Javaのインターフェイスと
> Rubyのダックタイピングじゃ
> 修正の柔軟性が違ってくる

トレードオフ。Rubyのダックタイピングはインターフェースがないのではなくて
インターフェースは有るが、明示的に書かないってだけ。

ソースコードで書く代わりに、ドキュメントとして書く
ひどいものになるとソースコード読んで同じ名前のメソッドの
利用状況から判断しろになるがだがw

いずれにしろ、コードとして書くか、ドキュメントとして書くかの違いで
書く量は減るが読む時に苦労するのがRuby。Javaはその逆

456デフォルトの名無しさん2017/09/16(土) 21:50:13.44ID:AcW1bn43
>>455
>トレードオフ
これはそうだが

>インターフェースは有るが、明示的に書かないってだけ
仕組みとしてない
(似たことをできなくはないが)

457デフォルトの名無しさん2017/09/16(土) 22:05:02.64ID:FAEJW2nX
>>456
例えば○○メソッドを持っていること
というのもインターフェースだよ

それをソースコードとして表現するか、
ソースコードとして表現できないから
ドキュメントとして書くかの違い

458デフォルトの名無しさん2017/09/16(土) 22:38:02.81ID:+qyS/XRX
要するに、アランケイのOOは
現在では
「粒度がおかしい」

アランケイは、生態系がどうとか、インターネットの機器がどうとか、言うが
粒度がおかしい
オブジェクトに持ち込むようなことではなかった

459デフォルトの名無しさん2017/09/16(土) 22:39:58.18ID:8gG27N70
アンチ-アラン・ケイ教の布教だから
相手するだけ時間の無断

460デフォルトの名無しさん2017/09/16(土) 22:45:30.49ID:FAEJW2nX
俺に言い負かされて反論しないんじゃあ
そりゃ時間の無駄だろうね

461デフォルトの名無しさん2017/09/16(土) 22:48:28.33ID:8gG27N70
ID:FAEJW2nX とアラン・ケイの対立軸は
今のOSが最適解だとするか、そういう態度が間違いだとするかだな

あとID:FAEJW2nX は自分の結論を前面に押し出してアラン・ケイの意見を潰そうとしているが
アラン・ケイは「決定の遅延」はあくまで次善の策だと予防線を張っていて謙虚さも違う

462デフォルトの名無しさん2017/09/16(土) 22:50:21.55ID:+qyS/XRX
粒度とかスケール感ってかなり重要で
大型ダンプをそのままびょ〜んと縮小しても軽トラにはならないからな
コックピットが小さすぎて人が乗れないし、きっとエンジンもかからない

アランケイの言ってるようなことはプロセスとかの大きな単位でやれば良いこと
便利そうっつって縮小してオブジェクトに持ち込んでもしかたがない
人間が仕事しやすい粒度ってものがある

463デフォルトの名無しさん2017/09/16(土) 22:53:11.22ID:gfl3F5WN
アランケイは良いことも言ってると思うけどな
その意見の具現化であるSmalltalkは完全に出来損ないのゴミだけど

464デフォルトの名無しさん2017/09/16(土) 23:11:06.48ID:8gG27N70
「わずか30秒の速攻レス」とか「言い負かす」とか中学生のメンタリティだな
的外れなこと言って呆れられてるのに気づかずに勝ち誇ってちゃ世話ないわ

465デフォルトの名無しさん2017/09/16(土) 23:17:00.20ID:gf/ZkNkm
>>461
「決定の遅延の徹底」が真の目的だとか言っておいて、
今度はアラン・ケイは決定の遅延」はあくまで次善の策だと言ってるなの?

しかも自分の主張ではなく、あくまでこれはアラン・ケイの主張だからねっていうスタンスだしさ
自分の意見を明確に出さず、まともに議論しようとしてないから宗教って言われるんだぞ

466デフォルトの名無しさん2017/09/16(土) 23:21:50.60ID:8gG27N70

467デフォルトの名無しさん2017/09/16(土) 23:41:04.18ID:gf/ZkNkm
>>466
>「カプセル化、継承、多態性」に象徴されるストラウストラップの考え方を紹介するとこれも宗教なのか?

カプセル化ってどういうこと?って聞けば具体的にオブジェクト指向の文脈で答えが返ってくるだろ?
ストラウストルップはこう言ってる、ストラウストルップの主張をまず読めとは返されないでしょ

決定の遅延ってどういうこと?って聞いても具体的にオブジェクト指向の文脈で答えが返ってきてるか?
その答えらしきものとして返ってきたのがアプリケーションのライブアップデートとか
データベーススキーマの意思決定の遅延とかそういうのだったからそこに反論されてるんだろ?
そしたらその反論にきちんと答えず、アラン・ケイの考えに対しての自分がどう考えるのかも明確にせず、
最後には「アラン・ケイは〇〇と主張してる」に戻るから宗教って言われてもしょうがないよ

アラン・ケイの主張と関係なく、君らのせいでアラン・ケイがバカされてるじゃん

468デフォルトの名無しさん2017/09/16(土) 23:43:38.30ID:8gG27N70
>>463
Smalltalkが出来損ないなのは同意するが
アラン・ケイが次善の策とする「決定の遅延」の実践の場としては
目的外で作られた既存の他の何を使うより幾分かはマシ

469デフォルトの名無しさん2017/09/17(日) 00:03:16.50ID:79Ps/QF/
>>467
その批判は対称性を欠いてるよ

ストラウストラップのオブジェクト指向である抽象データ型のオブジェクト指向は
現在主流で「オブジェクト指向」と言ったときに想像されるものとそれほど祖語がない
だから、カプセル化とはなにかと問う人がいても他の大多数が「オブジェクト指向」の文脈と認識する説明は容易だ

それに対してケイのメッセージングのオブジェクト指向はほとんど正確に語られることがなく
現在主流の「オブジェクト指向」の文脈からも離れた主張だ
ケイの言葉を借りずにどうやって説明できようか
まして全く異質の現在主流の「オブジェクト指向」の文脈にのせなあかん縛りとかどんな無理ゲーだよ

あと蛇足だが、もし「カプセル化とは?」ではなく「抽象データ型とは?」と訊かれたら
やはり「*ストラウストラップによれば*“ユーザー定義のデータ型”だ」と答えるよ
リスコフのそれとは違うからね

470デフォルトの名無しさん2017/09/17(日) 00:13:32.68ID:Q8dFbDIz
まあアレだな。占いや予言と一緒だ。
曖昧かつ一般論的に言っておけば後から
都合の良い解釈ができると

471デフォルトの名無しさん2017/09/17(日) 00:28:33.69ID:79Ps/QF/
>>454
OSレベルまで射程範囲…がらみではケイの発言ではないけど関係者から
ここでいう「決定の遅延」をサポートする“OS”としては
(可能なかぎり)それ自体存在させるべきでないというスタンスが示されているよね

▼Smalltalkの底を流れる設計思想
http://web.archive.org/web/20041016084842/http:/marimpod.homeip.net/chomswiki/24

オペレーティングシステムがこの原則を破っているようである
ことはちょっと注目すべきだろう。プログラマーは一貫した
記述の枠組みをはなれ、蓄積されたコンテキストをあとにし、
まったくかけ離れた、そしてたいていはとても原始的な環境を
相手にしなければならないのだ。そんな必要はない;

オペレーティングシステム:オペレーティングシステムは
言語におさまりきらないものを集めたもので、これは存在すべきでない

472デフォルトの名無しさん2017/09/17(日) 10:05:34.04ID:iyMogwhx
はいはい電波電波
こんなの真に受けるやつ居ないよ、マジで
80年代ならいざ知らず、今はもう2017年

473デフォルトの名無しさん2017/09/17(日) 10:20:43.76ID:79Ps/QF/
>>470
それはなかなか興味深い指摘だね
煽りとしてはありがちな事実誤認に基づいていてまったく正しくないが
ここで言うケイの「決定の遅延」の文脈からは言い得て妙ともとれる内容だ

まずケイの件のアイデアは
40年以上動き、変化もし続けているSmalltalk(彼自身も認める出来損ないではあるが)によって
ある程度その実効性が検証・実証されているからアイデアだけと揶揄したり
まして結果にコミットしない「占いや予言」の類とひとくくりにするのはおよそ見当違い

一方で、「占いや予言」がそうであるように将来の状況の変化に対応できるように
将来の状況の変化を見越して“対象物”をその根本を後から“どうとでも”できるように作っておくことは
まさに「決定の遅延」を実践であり
くしくもケイの主張の本質を(おそらく発言者はそうとは意識せずに)なぞらえているようでいて面白い

474デフォルトの名無しさん2017/09/17(日) 10:22:14.63ID:Q8dFbDIz
>>471
> (可能なかぎり)それ自体存在させるべきでないというスタンスが示されているよね

そして目的はなくなっちゃってるよね。

手段が目的となってしまっていて、なぜ存在させるべきではないのかが
どこにもなくなっちゃってる。

475デフォルトの名無しさん2017/09/17(日) 10:27:47.75ID:Q8dFbDIz
そしてアランケイの時代とは違い
変更しやすくするのと真逆の方向に進んでいる。

https://ja.wikipedia.org/wiki/Immutable_Infrastructure
> Immutable Infrastructure(イミュータブル インフラストラクチャ)は
> 不変なサーバー基盤のこと。具体的には、一度サーバーを構築したらその
> 後はサーバーのソフトウェアに変更を加えないことを意味する。
> 通常、サーバーにはソフトウェア構成の変更がしばしば行われ、場合によっては
> それがアプリケーションの安定稼働に大きな影響をもたらすことがある。
> また、アプリケーションがサーバーソフトウェアに変更を加え、サーバー環境が破壊されてしまうこともある。

変更できることは素晴らしいと思うけれど、安定動作という点においては危険なわけだ
車を走らせながらその車の修理をするようなもの。最後の手段としてはありだと思うが
通常の運用においては変更できることは、安定した動作の妨げになる。

476デフォルトの名無しさん2017/09/17(日) 10:45:39.57ID:Q8dFbDIz
自称アランケイに詳しい人が、何のために「決定の遅延」を
行うのかを全然説明してくれないから、そこはぼやかして書くけど

ようはアランケイはOSなどアプリとはレイヤーが違う所まで
アプリの手法と同じやり方で目的を達成しようとしていた。
当時は厳密な区別がなかったから仕方なかったとも言える。

重要なのは目的を達成する事であり(アプリと同じ)手段を用いることではない。
つまり「決定の遅延」という手段は必要なかった。

その一つがイミュータブルインフラストラクチャ。
変更するのをやめて壊して作り直すということ。
「決定の遅延」で達成できる目的は「決定を破棄して変更」に
置き換えることが可能である。

477デフォルトの名無しさん2017/09/17(日) 11:38:04.95ID:BJxCKTla
国会じゃないんだから否定することが目的の議論は時間の無駄だよ
アラン・ケイを神格化して鵜呑みにすのも馬鹿げているが
その主張をろくすっぽ読みもせずに、なんの役にも立たない、時代が違うと問題領域を取り違えた反論を繰り返すのもどうかと思う
キミもいいかげん「疎結合システムは言語レベルで実現するものではない」とかいう持論への固執をやめた方がいい

478デフォルトの名無しさん2017/09/17(日) 12:14:12.99ID:Q8dFbDIz
> 国会じゃないんだから否定することが目的の議論は時間の無駄だよ

そう。だからずっと反論してくれと言ってる。


> キミもいいかげん「疎結合システムは言語レベルで実現するものではない」とかいう持論への固執をやめた方がいい
それが「否定することが目的」になってるよね?

479デフォルトの名無しさん2017/09/17(日) 12:17:55.64ID:Q8dFbDIz
否定することが目的の議論は時間の無駄だよと言った本人が
否定することが目的のセリフを吐いて、
こいつ頭悪いのかとしか思えなかったが、
俺が言った言葉として受け取ってくれ。

俺が自分の考えを述べているのだから、
単に否定するだけではなく(否定するのを目的としてはいけない)
自分の考えをちゃんと言うように。
アランケイの何かを読めも。全然反論になってない。

否定したいなら反論(自分の考え)を言うように
それこそが時間の無駄ではない議論というものだ。
繰り返し言うぞ。否定することが目的の議論は時間の無駄だ。

480デフォルトの名無しさん2017/09/17(日) 12:21:10.27ID:awplre+w
2chてお互いが押し付けあっているだけで無駄

481デフォルトの名無しさん2017/09/17(日) 12:22:39.58ID:Q8dFbDIz
俺は自分の考えを言ってる。
自分の考えを言わないやつは
押し付けるやつよりたちが悪い。


お前が間違ってる(どーん!)
勉強すれば俺と同じ宗教に入ることになるはずだ(どーん!)

482デフォルトの名無しさん2017/09/17(日) 12:30:39.47ID:BJxCKTla
何を言っても諭しても
言葉尻を捉えてくだらん揚げ足取りで話を明後日の方向へ持って行こうとする
つくづくコミュニケーションに向かない人だな

持論に固執してケイが想定している問題領域と違うトンチンカンな反論を繰り返しても無意味だと再三指摘している

483デフォルトの名無しさん2017/09/17(日) 12:32:59.15ID:Q8dFbDIz
反論できなくなったら

「言葉尻を捉えてくだらん揚げ足取りで話を明後日の方向へ持って行こうとする」

というだけで、どの部分が揚げ足取りなのかも言えないし
正しい方向に持っていくこともできない。

ただただ、それは「揚げ足取りなんだー(ぶつぶつ」っていうだけ
議論にならないのも当然だろう?

484デフォルトの名無しさん2017/09/17(日) 12:34:40.72ID:Q8dFbDIz
ケイが想定している問題領域とはなに?

答 勉強すれば俺と同じ宗教に入ることになるはずだ(どーん!)


コミュニケーションに向かないから
自分の言葉で説明できない

485デフォルトの名無しさん2017/09/17(日) 12:43:04.70ID:BJxCKTla
お前が間違ってる(どーん!)
勉強すれば俺と同じ宗教に入ることになるはずだ(どーん!)

はいみじくも、「自分の考え」という錦の御旗をかかげつつ、
しかしその実はアンチ-アラン・ケイ教を押し付け続けるキミの言動そのものだよ

486デフォルトの名無しさん2017/09/17(日) 12:44:38.32ID:Q8dFbDIz
↑こういうのが揚げ足取りな

何故かと言うとこのスレの議論の内容とは全く関係なく
言葉尻を捉えてくだらん揚げ足取りで話を明後日の方向へ持って行こうとしているから

487デフォルトの名無しさん2017/09/17(日) 12:45:13.72ID:LRoa+qIa
決定の遅延

正しい例「優れた言語の構文なんて簡単に決めようがないから、各々が自由に言語を作って選ぶことにして、それを連携できるシンプルな仕組み(例:http)を用意しよう」

間違った例「神の言語Smalltalkを使え」

488デフォルトの名無しさん2017/09/17(日) 12:45:40.25ID:Q8dFbDIz
さて、また答えられない質問のひとつになるのかね?

ケイが想定している問題領域とやらに
自分の言葉で答えてくれるのを待ってるんだが

489デフォルトの名無しさん2017/09/17(日) 12:47:16.47ID:ZH0tEj4R
お疲れさまでした!

490デフォルトの名無しさん2017/09/17(日) 13:26:48.05ID:Ix55LYJg
まるであの人だな
主張するだけで人のレスは全部無視

491デフォルトの名無しさん2017/09/17(日) 13:30:45.50ID:Q8dFbDIz
俺のレスもまた無視されてるしな

492デフォルトの名無しさん2017/09/17(日) 13:33:32.92ID:Ix55LYJg

493デフォルトの名無しさん2017/09/17(日) 13:36:16.29ID:Q8dFbDIz
新規IDが俺に絡むのってなんでなんだろう?
上の方で誰かがスマホまで用意してーとか言っていたが
それか?

494デフォルトの名無しさん2017/09/17(日) 13:43:56.28ID:VnyEb10w
プロレスはもういいんで
もっとタメになるオモロイこと書いてや
Smalltalkに興奮したおじいちゃんの話は退屈
なだけなので止めてや

495デフォルトの名無しさん2017/09/17(日) 13:47:38.61ID:Q8dFbDIz
ケイが想定している問題領域を聞いた
俺のレスはまた無視状態で終わるわけか

496デフォルトの名無しさん2017/09/17(日) 13:49:17.64ID:Ix55LYJg
>>493
そりゃ簡単な理屈だよ
お前さんのようにダラダラと一日中スレに張り付いて書き込みを続けるような人ばかりではない
最初の書き込みが昼過ぎの人もいれば夕方の人もいる
そしてここに来た人が最初に目にするのは意味不明な理屈で大暴れするお前さんだ
自覚ないかもしれんが悪い意味で凄い目立ってるんだよ
そうなるとその日最初のレスがお前さんへの苦言という形のレスになってもなにもおかしくはないだろ
これが単発が仕組んだようにお前に絡むように見えるトリックな

497デフォルトの名無しさん2017/09/17(日) 13:51:23.02ID:Ix55LYJg
要するにマトモな理屈を書き込む
書き込む頻度を下げる
この二つを守ればお前に絡む単発などあっという間にいなくなるよ

498デフォルトの名無しさん2017/09/17(日) 13:56:02.19ID:Q8dFbDIz
↑これが最初に見る書き込み?

499デフォルトの名無しさん2017/09/17(日) 15:23:45.99ID:A1VU6Oqu
こんな誤解と偏見で言論レイプされてちゃ
アランケイのズル剥ケイも草場の影でシコっとるで

500デフォルトの名無しさん2017/09/17(日) 15:36:52.91ID:iyMogwhx
個人的には俺も>>487と同意見だな
かなり的を得ていると思う
掛け違えたボタンなんだよな
だいたい卵が先か鶏が先かみたいなことになるんだけど
最初の一歩を誤ると、そのあと全部がずれる
ズレまくった典型が北朝鮮で
>間違った例「神の言語Smalltalkを使え」

501デフォルトの名無しさん2017/09/17(日) 15:56:59.71ID:A1VU6Oqu
愛が先かエッチが先かの話と同じだおね

502デフォルトの名無しさん2017/09/17(日) 17:07:45.96ID:q1QcQ8VV
マジで反論できないんだな

503デフォルトの名無しさん2017/09/17(日) 17:12:53.73ID:q1QcQ8VV
疎結合システムは言語レベルでやらなくてもできるし、
それを言語レベルだけでやろうとしたSmalltalkは
引きこもりのOSモドキに成り下がって、
多様な言語を含む大きなエコシステムから取り残されて
99.99%の開発者の選択肢から外れてしまいましたとさ

504デフォルトの名無しさん2017/09/17(日) 17:26:26.06ID:79Ps/QF/
アンチもいろいろ大変だな

505デフォルトの名無しさん2017/09/17(日) 18:05:15.41ID:PsKGEjCI
smalltalk信者は何が言いたいんだ?前回も意味不明で、今回も同じ展開だが。

要するに、smalltalkが「決定の遅延」(手段)によって目指したもの(目的)は
現在は他の手法によって十二分に達成されている為、
smalltalk流の「決定の遅延」なんて不要、というだけだろ。
「決定の遅延」をするのが目的ってのは、典型的な「手段の目的化」でしかない。

506デフォルトの名無しさん2017/09/17(日) 18:28:35.02ID:A1VU6Oqu
ワイのレスが一番的をエーテルやろ、おっとこれはギャグなw

507デフォルトの名無しさん2017/09/17(日) 18:44:53.70ID:EJ9y/eYt
結局のところ、自称「アラン・ケイの主張を解説してる」君は
アラン・ケイは〇〇と言っているというだけで
自分も理解してないから質問されてもまともな返答ができない

だから原典を読んでみんな感じてねってことだよ
それ以上の話をしても残念ながら無駄

508デフォルトの名無しさん2017/09/17(日) 19:06:19.26ID:25bUoapi
どうしてアンチはかくも必死なの?

509デフォルトの名無しさん2017/09/17(日) 19:22:06.10ID:PsKGEjCI
むしろ信者の方が必死だ。全く論理的に反論できてない。
まあ今の時代にsmalltalk信者になるような奴は論理的思考が出来ないという証明にはなったか。
うむごくろう。

510デフォルトの名無しさん2017/09/17(日) 19:49:14.60ID:5DAGa3Dm
>>457
なんかオレオレ用語じゃないか

>>460
勝利宣言は敗北宣言

511デフォルトの名無しさん2017/09/17(日) 19:56:30.56ID:5DAGa3Dm
>>473
Smalltalk単体だけじゃなくて
RubyやPythonの普及ぶりを見ると
メッセージング式の動的なオブジェクト指向は
一定の成功を収めているのは確かだと思う

アランケイの本来の理想からすると
あくまで暫定的なものだけど

512デフォルトの名無しさん2017/09/17(日) 20:03:23.89ID:Q8dFbDIz
伸びてると思ったら、良い流れになってるなw

513デフォルトの名無しさん2017/09/17(日) 20:04:34.39ID:Q8dFbDIz
>>510
> なんかオレオレ用語じゃないか

インターフェースは元は英語で
オブジェクト指向用語でも有るでしょ?

そのインターフェースをプログラム言語の文法で記述するか
コメントで記述するかの違いはあっても、
インターフェースはインターフェース

514デフォルトの名無しさん2017/09/17(日) 20:05:12.56ID:EJ9y/eYt
>>511
んで、メッセージング式って何?
アランケイの本来の理想って何?

515デフォルトの名無しさん2017/09/17(日) 20:08:55.06ID:5DAGa3Dm
>>503
Smalltalk自体はマイナー言語(環境)だが
そもそもWindowsやMacは
オブジェクト指向を取り入れたOS

RubyやPythonがSmalltalkの
影響を受けてるのと同じこと

516デフォルトの名無しさん2017/09/17(日) 20:09:52.80ID:Q8dFbDIz
Smalltalkがメソッドを「メッセージ」という名前で実装しているから
メッセージって言ってるだけな気がするよな

ぶっちゃけメソッド呼び出しと変わらんでしょ?(煽りw)

メソッドとメッセージが違うというのであれば、
何が違うかを言ってくれればいいんだよ。

517デフォルトの名無しさん2017/09/17(日) 20:25:52.08ID:qjgp1qJi
もしもそれがメソッドのように呼べ、メソッドのように振る舞うのなら、それはメソッドである

518デフォルトの名無しさん2017/09/17(日) 20:26:05.87ID:Q8dFbDIz
Windows(Macは知らん)のどこがオブジェクト指向を
取り入れたOSなのかを俺が説明してあげよう。
(気に食わなければ自分の言葉で説明するように)

Windowsといえば、まあウインドウが有るわけだが、
そのウインドウはウインドウハンドル(HWND)というもので管理されている。
このウインドウというのは、アプリのウインドウだけではなく
ダイアログはもちろんのこと、ボタンやチェックボックスまでウインドウなのだ。
その証拠にチェックボックスをCreateWindow APIで作成する

Windowsではいろんなものがウインドウクラスを継承してできているわけだ。
もちろん自分で拡張して新しいものを作ることもできる。

そしてそれらのウインドウ(当然ボタンやチェックボックスなども含む)は
メッセージ(ウインドウメッセージ)を使用して相互に通信する。

ほらな?立派なオブジェクト指向やろ?

519デフォルトの名無しさん2017/09/17(日) 20:59:25.70ID:fOOnMrD2
C#erうざすぎ

520デフォルトの名無しさん2017/09/17(日) 21:17:13.31ID:Q8dFbDIz
もちろん>>518はC#の話ではない

521デフォルトの名無しさん2017/09/17(日) 22:16:19.39ID:CHXibXnz
>>519
なぜc#だと思ったwww

522デフォルトの名無しさん2017/09/17(日) 22:21:11.50ID:ZH0tEj4R
被害妄想が深刻なレペルになってるんだろう

523デフォルトの名無しさん2017/09/18(月) 09:05:59.76ID:Lhi9cKMi
何の被害?風評被害?

524デフォルトの名無しさん2017/09/18(月) 09:13:35.87ID:V36jjlwk
被害妄想ってかいてあるやん

525デフォルトの名無しさん2017/09/18(月) 09:19:15.35ID:DpRq8b6A
>>524
何の被害?って書いてあるやん(失笑)

526デフォルトの名無しさん2017/09/18(月) 09:24:20.22ID:nAoTSCTK
被害妄想も知らないのか。。。

527デフォルトの名無しさん2017/09/18(月) 09:53:02.47ID:AUL476A9
言語レベルの遅延システムに反対している奴がアラン・ケイの言っていることの何を否定したいのかわからん
70年代にネットに接続したマシン単位で可能だったことが、今は(実・仮想)OSやアプリ単位で可能になるまで進歩したって話で
早すぎる最適化は後でコストがかさむからできるなら避けようみたいな普通のことを言っているだけだと思うのだが…

528デフォルトの名無しさん2017/09/18(月) 10:32:57.79ID:V36jjlwk
「アラン・ケイの言っていること」が
何のことか詳しく説明しろって言われてるだけ。

> 早すぎる最適化は後でコストがかさむからできるなら避けようみたいな普通のことを言っているだけだと思うのだが…
その普通のことを、言語レベルでやるもんじゃないよって
普通のことを言ってるのが、アランケイに反対(?)している方なんだよ。

アランケイ信者がなんにも理解せず、
「アランケイが言ってることー」でごまかし続けてるから
こういうことになってる。

あんたもその一人に見えるよ
「アラン・ケイの言っていること」と中身を
書かないのはやめた方がいい。

529デフォルトの名無しさん2017/09/18(月) 11:46:47.35ID:AUL476A9
なんだ要は言語レベルの遅延システムに反対している君は
英語が読めないからアラン・ケイの言っていることの要点まとめてほしいだけなのか

530デフォルトの名無しさん2017/09/18(月) 12:02:42.02ID:V36jjlwk
ちょっと違うな。読んだ上で自分の考えを述べているわけだから、
それに反論が有るのなら、アランの考えは違うんだーとかいってないで
ちゃんと自分の言葉で反論してくれってだけ。
まあ別にアランケイが言ってることを(自分の言葉で)まとめてくれても良いんだよ。

531デフォルトの名無しさん2017/09/18(月) 12:36:09.22ID:V36jjlwk
> なんだ要は言語レベルの遅延システムに反対している君は

これも少し違うね。
言語レベルの遅延システムに反対しているのではなく
全てを言語レベルの遅延システムと同じ仕組みを使うことに反対している。
レイヤーが違うんだから違うものを使っていいんだよ。
そっちのほうがより適切かもしれない

そこで、そもそも遅延システムの目的は何?という話につながるわけさ
そこをアランケイ信者が言おうとしない(理解不足で言えないってのが正解だろう)
だから、ぐだぐだ話が長引いている。

俺の理解ではシステムレベルで遅延させる目的は、メンテナンス性や変更のしやすさや
安定性や可用性や信頼性の高さのどれかもしくはその全てだと思っている。
(違うというのなら「違う」と言って終わるのではなく自分の言葉で説明するように)

で、メンテナンス性や変更のしやすさや安定性や可用性や信頼性の高さであれば
それは決定の遅延で実現するものではなく、非同期処理や壊して作り直すという方面に
変わってきているということ。

そこに言語レベルで使用されていた遅延システムは登場しない。
一旦稼働したならば、その構成に変更は加えない。加える必要があるならば壊して作り直す。
言語レベルで言えば、プロセス終了させてプログラムビルドして最初からリスタートするようなものだよ。
言語レベルで動かしたまま修正が加えられるといっても、結局システムレベルから停止と再起動をさせられてしまう。

532デフォルトの名無しさん2017/09/18(月) 12:54:44.25ID:DpRq8b6A
アランケイの馬鹿を未だに信望してる時点でお察し
俺の方が頭いいしなw

533デフォルトの名無しさん2017/09/18(月) 13:04:23.69ID:lltdeu1n
自分の言葉で説明しろ

丁寧に説明する

無視する

まじで反論はないのか

また勝利してしまった

このループもう飽きたんだけど別スレにフォークしてそっちでやってくんないかな

534デフォルトの名無しさん2017/09/18(月) 13:06:36.96ID:DpRq8b6A
別スレにフォークwwwwwwwwwwww
最近覚えた言葉を使いたかったのかな?^^

535デフォルトの名無しさん2017/09/18(月) 13:08:11.29ID:V36jjlwk
> 自分の言葉で説明しろ
> ↓
> 丁寧に説明する

↑これがないんだよなーw
いや、有るっていうのなら、
そのレス番にアンカーしてくれればいいんだが。

あ、無視しないで反論している所は、
当てはまらないのは、理解してるよね?

大抵はこの流れ

自分の言葉で説明しろ

的はずれな説明する

反論する

反論に答えられず逃亡

536デフォルトの名無しさん2017/09/18(月) 13:12:00.42ID:nAoTSCTK
>>527
君の言う言語レベルの遅延システムって何?
具体的にどういう機能を指してるの?
それができると具体的に何がうれしいの?

537デフォルトの名無しさん2017/09/18(月) 13:16:15.36ID:lltdeu1n
アラン・ケイ 議論スレ 1 [無断転載禁止]©2ch.net・
http://mevius.2ch.net/test/read.cgi/tech/1505708105/

ほい
どんどん書き込んでくれ
こっちでやるのはスレチだぞ

538デフォルトの名無しさん2017/09/18(月) 13:26:24.99ID:IcOpWHLw
オブジェクト指向って何だよw

539デフォルトの名無しさん2017/09/18(月) 13:31:07.94ID:IcOpWHLw
このスレ、ずっと見てるけど
未だにオブジェクト指向設計のメリットが1つも見えない

540デフォルトの名無しさん2017/09/18(月) 13:42:29.90ID:cPQ15VUa
Smalltalkとオブジェクト指向議論スレ [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1505709697/

ほい
Smalltalkに関連するオブジェクト指向の話は
そっちでやってくれ
こっちでやるのはスレチだぞ

541デフォルトの名無しさん2017/09/18(月) 13:50:50.27ID:IcOpWHLw
そもそも議論ってなんの議論してるのか毎回わからない
オブジェクト指向のメリットにつながるのかと思ってみてるとくっだらねぇ
知識自慢だし
その議論に決着が付いたところでオブジェクト指向のメリットは1つもわからないゴミクズばかり
議論しにくるクソスレ

542デフォルトの名無しさん2017/09/18(月) 13:51:24.83ID:SwAbTcsc
Smalltalkのオブジェクト指向はそもそも特殊で、
元祖か何か知らんが、今となってはSmalltalkだけが例外で
他の一般的にオブジェクト指向には当てはまらんから
分離するのは賛成。こっちくんな。

543デフォルトの名無しさん2017/09/18(月) 13:55:34.29ID:IcOpWHLw
>>542
オブジェクト指向のメリットは何だと考えていて
smalltalkにはそれがなくて
他の言語にはそれがあるという
意見で良い?

君の考えるオブジェクト指向のメリットは何?

544デフォルトの名無しさん2017/09/18(月) 14:05:41.25ID:prBX19q5
>>543
× smalltalkにはそれがなくて
○ smalltalkは大風呂敷を広げすぎていて、
OSやマシンレベルでやるべきことまで
言語の機能を使ってやろうとしていた。

言語レベルでは目的がありメリットがあったが
それを盲信するあまりOSやマシンにまで適用しようとし
目的を見失い、決定の遅延をさせるという手段が目的となった
もはやだれも目的を理解していない

その一方、目的ベースで考えている人たちは、Smalltalkにも
オブジェクト指向にも頼らず、OSやマシンレベルで
真の目的(>>531に書いてあるようなこと)を達成すべく
いろんな技術を生み出してきた。

Smalltalkは以前昔のまま。


> 君の考えるオブジェクト指向のメリットは何?
前提としてSmalltalk特有の話は分離させよう。
でないと話は始まらない。

545デフォルトの名無しさん2017/09/18(月) 14:16:45.92ID:AUL476A9
>>535
> 自分の言葉で説明しろ
> ↓
> 的はずれな説明する
> ↓
> 反論する
> ↓
> 反論に答えられず逃亡

俺が読んだ感じだと

すでにアラン・ケイが言っていることとさして変わらないことを反論と言い張る

それアラン・ケイが言っているから同意見でしょ?読んでない、読めてないんじゃ?と指摘する

俺は完璧に理解している反論があるなら自分の言葉で反論しろ

困る

勝利宣言

って感じのループ

546デフォルトの名無しさん2017/09/18(月) 14:17:51.45ID:DpRq8b6A
逃亡くんはスレ分割して何がしたいの?
見えない敵と戦っているの?

547デフォルトの名無しさん2017/09/18(月) 14:20:13.50ID:DpRq8b6A
ジャップさあ・・・なんだい、このスレは?

ジャップランド村の土人さんたちは議論ができないって本当だったんだな
すーぐ感情的になって論点ずれて人格攻撃に走る

ファビョの起源はジャップランド土人ってマジ?w

548デフォルトの名無しさん2017/09/18(月) 14:27:27.38ID:4Oi7LGiO
>>545
問題はね

> すでにアラン・ケイが言っていることとさして変わらないことを反論と言い張る

これがどれかを言えないことなんだよ

549デフォルトの名無しさん2017/09/18(月) 14:28:20.42ID:4Oi7LGiO
まあ、アランケイのオブジェクト指向は死んだと
アランケイが言ってるっていうのなら、それはそれでいいんだがw

550デフォルトの名無しさん2017/09/18(月) 14:31:35.94ID:AUL476A9
>>548
そんなのいくらでも出ているだろう
直近では>>527がそうだし、ちゃんと上の方さかのぼればいくらでもありそうだが?

551デフォルトの名無しさん2017/09/18(月) 14:37:31.75ID:4Oi7LGiO
>>550
自作自演失敗かね?

>>527を言ったのはお前だろ
そして>527の内容じゃわからんから、
>>528>>536が、ちゃんと説明しろと言われてるのに
ほらまたお前、それを無視してるじゃんか

この流れだよ。

552デフォルトの名無しさん2017/09/18(月) 14:53:38.23ID:AUL476A9
>>551
自分の発言を参照したら自演なの?わけわからんわ
対応している段落まで示さないといけないのは面倒くさいなぁ…
「早すぎる最適化は後でコストがかさむからできるなら避けよう」は
The Fram oil filter principleのところで述べられているんだよ
ついでを言えば、その次のLate bindingにある図で、プロジェクトの途中で得られたノウハウを
早期結合の言語で決めうちして作られたプロダクトだと適用しにくいという指摘がある

553デフォルトの名無しさん2017/09/18(月) 14:55:09.36ID:4Oi7LGiO
それがオブジェクト指向と何の関係があるのだろう?

554デフォルトの名無しさん2017/09/18(月) 14:57:29.30ID:4Oi7LGiO
> ついでを言えば、その次のLate bindingにある図で、プロジェクトの途中で得られたノウハウを
> 早期結合の言語で決めうちして作られたプロダクトだと適用しにくいという指摘がある

これは嘘だね。

別に早期結合の言語でもそうでない言語でも
適用のしやすさに違いはない。

ただ単にノウハウを取り入れてコードを修正して
再コンパイルすればいいだけの話なんだから

555デフォルトの名無しさん2017/09/18(月) 15:04:46.44ID:4Oi7LGiO
ついでにいうと「早すぎる最適化は後でコストがかさむからできるなら避けよう」は
「決定の遅延」とは何の関係もない。

なぜなら、最適化してないコードをもう作ってるわけだろう?
遅延しているのは最適化だけであって、コードは作られている、つまり決定はなされている。

それに「避けようと決定している」という言い方もできる。
つまり避けるぞーっと方針を決定している。遅延せずに。

何が言いたいかというと「決定の遅延」とは何の決定なのか
全く書いてないし、そもそもアランケイが言った言葉なのかも不明。

「オブジェクトの結合の遅延」の話から目的を忘れ、
遅延という言葉だけが独り歩きし、オブジェクト指向と関係ないことにも
適用しようとしている。オブジェクト指向とは関係ない話だから
「決定の遅延」と呼ばざるをえない。

556デフォルトの名無しさん2017/09/18(月) 15:04:51.13ID:AUL476A9
>>554
ちょw、おまw、読んでなかったんじゃん…

557デフォルトの名無しさん2017/09/18(月) 15:10:35.01ID:AUL476A9
>>433以降のループはいったい何だったんだ?

558デフォルトの名無しさん2017/09/18(月) 15:13:54.47ID:4Oi7LGiO
>>556
いや?読んでいたけど?
何をどう解釈するとそうなるんだ?

まさか「アランケイが言いたいこと」が
明らかに間違いの部分だとは思わなくてね

結局、早期結合の言語で決めうちして作られたプロダクトだと
プロジェクトの途中で得られたノウハウを適用しにくいと
言いたかっただけ?

559デフォルトの名無しさん2017/09/18(月) 15:17:18.19ID:DpRq8b6A
すまん。ワイ以外にアランケイに勝ってる奴おりゅ?w

560デフォルトの名無しさん2017/09/18(月) 15:30:04.85ID:4Oi7LGiO
殆どの人は「早期結合の言語で決めうちして作られたプロダクトだと
プロジェクトの途中で得られたノウハウを適用しにくい」と言われると
なんでだ?って思うはず。

プロジェクトの途中で得られたノウハウを適用するのに
早期結合の言語かどうかなんて関係ないじゃんと。
確かにその通りなんだよ。関係ない。

おそらくアランケイが考えていたシステムはSmalltalk上で
すべてを動かし、システムを止めること無く変更を
適用するという前提があったのだろう。それならば理屈はあう。

だけど今の時代は、稼働しているシステムとは別の待機系とか
ステージング環境とか開発環境とか、そういった止められる
環境で開発し、必要ならば止めずにシステムをデプロイ
する技術があるため、早期結合の言語であってプロジェクトの
途中で得られたノウハウを適用できるようになってる。

その点でアランケイが言ったことは今となっては間違いになってるんだよ

561デフォルトの名無しさん2017/09/18(月) 15:40:34.35ID:AUL476A9
うんだからWeb開発はサービス単位で遅延結合が出来てるからいいんじゃないの?
その君の主張は誰も否定していないよ?
アラン・ケイはWeb開発に特化した話はいっさいしてないってだけ

562デフォルトの名無しさん2017/09/18(月) 15:41:44.09ID:Ti3gEoq2
ちゃんと引用しろよ

563デフォルトの名無しさん2017/09/18(月) 15:42:07.34ID:4Oi7LGiO
何はともあれようやく話は進んだじゃないか。

アランケイが言ってることとはすなわち
「プロジェクトの途中で得られたノウハウを早期結合の言語で
決めうちして作られたプロダクトだと適用しにくい」
ということだそうだ


それはなぜなのか、それは正しいのか
その話をしようじゃないか。

間違いであることは>>560で書いたとおりだ。

反論を待っているぞ

564デフォルトの名無しさん2017/09/18(月) 15:42:22.69ID:Ti3gEoq2
リンクだけ貼って投げっぱなしのジャーマンのやつにレスするな

565デフォルトの名無しさん2017/09/18(月) 15:42:47.36ID:4Oi7LGiO
>>561
アランケイが言った言葉は間違いだってこと?

「プロジェクトの途中で得られたノウハウを早期結合の言語で
決めうちして作られたプロダクトだと適用しにくい」

566デフォルトの名無しさん2017/09/18(月) 15:43:52.96ID:Ti3gEoq2
>>565
そんなのおっさんの開発した言語でできる性能はないよw

567デフォルトの名無しさん2017/09/18(月) 15:44:26.97ID:4Oi7LGiO
>>561
> Web開発はサービス単位で遅延結合

あんたが言うサービス単位で遅延結合とはどういうこと?

俺はサービス単位で遅延なんかせずに普通に結合していると思ってるけど。

なんか無理やり関係ない言葉を再利用しようとしていない?w
Web開発におけるサービス単位の「遅延」って何よ?

568デフォルトの名無しさん2017/09/18(月) 16:00:10.16ID:AUL476A9
>>563
> ようやく話は進んだ

そうだね
ただこちらが抜粋した内容をその都度吟味していくのは相互に関連することもあるし非効率なのでとりあえず
http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
から読んで明らかな間違いだと思う点を箇条書きでいいから(しかし場所が分かるように)列挙してみてくれないかな?
そうすればお互いの誤解や問題領域の齟齬がどんなところにあるか論点をしぼりやすいと思うので
列挙するのが大変なくらいたくさん間違いがあるようなら、とりあえずは目に付いた2〜3項目だけでもいいよ

569デフォルトの名無しさん2017/09/18(月) 16:02:04.98ID:4Oi7LGiO
明らかな間違いはそこ以外無いんじゃないかな?

プロジェクトの途中で得られたノウハウを早期結合の言語で
決めうちして作られたプロダクトだと適用しにくい
というのは間違い。

話を進めましょう

570デフォルトの名無しさん2017/09/18(月) 16:06:08.91ID:4Oi7LGiO
システムレベルの保守性可用性は言語レベルでやるこっちゃねぇ、
停止して再起動すれば良いんだからオブジェクトの結合の遅延は
徹底するほどのものでもねぇってのは最初から俺がずっと言ってることだしね。
そこに戻ったってだけ

571デフォルトの名無しさん2017/09/18(月) 16:14:38.54ID:4Oi7LGiO
先々週のハイライト? (俺の書き込みじゃないよ)
結局この話に戻ってきたなぁと

295 名前:デフォルトの名無しさん[sage] 投稿日:2017/09/02(土) 20:43:07.29 ID:SLw7DScq [2/2]
>>280
それは完全に「メッセージ指向派」が悪い。
これ関しては、ID:x3xo3AHAが100%正しい。

プログラミングは結果ではなく手段でしかない。
「○○指向」するのは何らかの目的があっての事だ。
「決定の遅延」によって何を得たいのか、それを明示出来ない時点で
「決定の遅延」なんて使い物にならない、と言っているのと同じ。

ID:x3xo3AHAは、「決定の遅延」によって得たい物が「仕様変更」なら、
それは既に他の方法で十分に達成されているから要らない、と繰り返し述べているだけ。
これ自体は全くその通りだし、
議論を進める為に「他の目的を明示しろ」というのも至極まっとうな意見だよ。
そして>>284にはそれが書いてないのも確かだよ。

>>284内でグダグダ言われていることは、
Evalを持っている言語なら普通に出来ることでしかない。
しかしEvalは普通は要らんというのも事実だし、
メジャーなEval使える言語(JavaScript)もあるんだし、欲しければそれ使え、でしかない。

>>293
それが今対応出来てなくて、「決定の遅延」で対応出来るとでも思ってるの?

572デフォルトの名無しさん2017/09/18(月) 16:16:54.30ID:AUL476A9
>>569
え?そうなの?じゃあ

For example, a paradigmatic system such as generalized desktop publishing can
be examined in both worlds, and some answers can be given about why the late
bound one in Squeak is more than 20 times smaller, took even less fractional
person-time to create, and yet still runs faster than human nervous systems
at highly acceptable speeds.

も間違いとは思わないと?にわかには信じられないなぁ…

573デフォルトの名無しさん2017/09/18(月) 16:20:21.77ID:4Oi7LGiO
>>572
知らんがなw
アランケイのファンじゃないんだから
読み飛ばしたりしてる部分だって有るだろうさ。

あんたがそこが間違いだっていうのなら、
そこも間違いでいいんじゃね?

574デフォルトの名無しさん2017/09/18(月) 16:40:14.70ID:AUL476A9
>>573
なるほど

ではこちらの主張はどうだろう?ここは>>563にも関わる本質部分だと思うのだけれども
とくに問題とは思わなかったと言うことはやはり読み飛ばしちゃってた?

On the other hand, most programmers learn their craft by starting with
“algorithms and data structures” courses that emphasize just the opposite:
sequential logic and nonobjects. This is a kind of simple “godlike” control of weak
passive materials whose methods don’t scale. I think it is very hard for
many programmers to later take the “nongod” view of negotiation and strategy
from the object’s point of view that real systems designs require.

575デフォルトの名無しさん2017/09/18(月) 16:50:38.67ID:4Oi7LGiO
読みとばすっていうか忘れてるんだよ
何年前だと思ってんだよ。読んだの

つーか俺が読んだか読んでないかを追求するのはそんなに重要な事なのか?
仮に俺が読んでないとするならば、それだけすきがあるってことだろ?
そこを攻めてこいよ。

自分の言葉で俺が言ったことに反論してきてくれ

576デフォルトの名無しさん2017/09/18(月) 16:52:33.02ID:IcOpWHLw
>>544
平気でこういうおかしなレスをする
オブジェクト指向のメリットになんねぇならどっちでもいいだろがそんなとこ

自分の指摘箇所がオブジェクト指向にとってどうでもいいのにこだわってるの君?

577デフォルトの名無しさん2017/09/18(月) 16:52:51.34ID:lltdeu1n
どうでもいいけどスレチでレス消化しまくるのうっとおしいからあっちいけ
アラン・ケイ 議論スレ 1 [無断転載禁止]©2ch.net・
http://mevius.2ch.net/test/read.cgi/tech/1505708105/

578デフォルトの名無しさん2017/09/18(月) 16:55:47.92ID:4Oi7LGiO
またかよーw

>>576
だから、おかしいと思ったなら、
どこがどうおかしいかをレスしろって。

ほんと俺ばっかりだなお前

579デフォルトの名無しさん2017/09/18(月) 16:56:18.01ID:4Oi7LGiO
間違い

ほんとそればっかりだなお前

580デフォルトの名無しさん2017/09/18(月) 16:59:43.55ID:IcOpWHLw
>>578
死ねよ
ちゃんと書いたじゃん

>>544
平気でこういうおかしなレスをする
オブジェクト指向のメリットになんねぇならどっちでもいいだろがそんなとこ

自分の指摘箇所がオブジェクト指向にとってどうでもいいのにこだわってるの君?

解説するよ
まずさ、君はsmalltalkを他のオブジェクト指向言語と違うって主張でいいんだよね?
そしてそれはオブジェクト指向のメリットである部分に抵触してるんだよね?
ここまではおk?

581デフォルトの名無しさん2017/09/18(月) 17:15:55.26ID:4Oi7LGiO
>>580
全然OKじゃねーよw

Smalltalkは他のオブジェクト指向言語に比べて余計な思想が有る。
その部分を信者どもは優れていると言うが、
余計な部分でありSmalltalkの言語からは消し去るべき部分
言語でやらなくていい部分だからだ。

ここまではおk?

582デフォルトの名無しさん2017/09/18(月) 17:17:34.19ID:4Oi7LGiO
Smalltalkの余計な部分というのは
オブジェクト指向とは全く関係ない
ということも言っておかないとダメだったな

583デフォルトの名無しさん2017/09/18(月) 17:35:33.28ID:IcOpWHLw
>>581
それって俺の質問に答えてなくね?

それはお前が考えるオブジェクト指向のメリットに抵触する箇所なの?

584デフォルトの名無しさん2017/09/18(月) 17:37:15.57ID:IcOpWHLw
>>582
だったらお前の指摘ってのっけからズレてんじゃん
smalltalkと他のオブジェクト指向言語に大した違いは無いって自分で言ってるけど
みんなにごめんなさいって言えよとりあえず

585デフォルトの名無しさん2017/09/18(月) 18:22:23.93ID:XvxaP9zF
Smalltalkは余計な機能が付いてて
他の言語と比べて出来損ないのゴミである

これに反論できるやつはいないって事?
まずは一つづつ明確な結論を得て行こうよ

586デフォルトの名無しさん2017/09/18(月) 18:25:25.32ID:nAoTSCTK
一連の議論の発端は>>224, 225, 228
2週間以上もやってるんだね。

単純な質問に答えられず、意味のある反論も出来ないなら
無駄レスが続くだけだからもうやめてくれよ

587デフォルトの名無しさん2017/09/18(月) 18:52:03.20ID:DpRq8b6A
醜いジャップランド土人村の子

588デフォルトの名無しさん2017/09/18(月) 19:19:40.41ID:IcOpWHLw
それもこれもオブジェクト指向のメリットを誰も挙げられないからだ

あるような?
ないような?

どこにも明確に書かれていないし
各自が勝手な解釈を垂れるだけ
各自が勝手な郷土研究を発表するだけ

実際はどうだ?と問うと
今度はそれはオブジェクト指向じゃない
お前のは違う、俺のがあってる
技術の統一見解が全くない

ハッキリ言って

 捨 て ち ゃ え よ こ れw

589デフォルトの名無しさん2017/09/18(月) 20:28:01.22ID:S8/CpHKy
>>585
そんなの次世代言語スレかSmalltalkスレ行ってやれよ

590デフォルトの名無しさん2017/09/18(月) 21:44:18.37ID:9UUI5dsL
OMTで設計うまく行ってると思ってるんだけど
何か見えてない問題点あるのか?

尊師の教えと違うとか宗教的なことでなくて
3行で言えるメリット

591デフォルトの名無しさん2017/09/18(月) 21:45:20.34ID:Bwfp2Sqx
>>589
そうやって反論どころか主張すら曖昧な書き込みするから
いつまでも話が堂々巡りになるんだよ

Smalltalkはゴミ。存在価値なし。それで良いよな?

592デフォルトの名無しさん2017/09/18(月) 21:46:43.69ID:IcOpWHLw
>>590
メリットをどうぞ

593デフォルトの名無しさん2017/09/18(月) 21:49:03.55ID:9UUI5dsL
>>592
比較対象がないとメリットもデメリットもないよ

594デフォルトの名無しさん2017/09/18(月) 21:56:09.34ID:IcOpWHLw
>>593
オブジェクト指向とそうじゃないのと

595デフォルトの名無しさん2017/09/18(月) 21:58:59.22ID:9UUI5dsL
>>594
そんな話はしてない

596デフォルトの名無しさん2017/09/18(月) 21:59:42.35ID:9UUI5dsL
>>594
スレチ

597デフォルトの名無しさん2017/09/18(月) 22:01:45.25ID:IcOpWHLw
>>595
いや、それが語れないならこのスレいらないだろ
自分の形を知るには他人が必要なんだよ
オブジェクト指向も同様

598デフォルトの名無しさん2017/09/18(月) 22:02:09.15ID:4Oi7LGiO
>>591
> Smalltalkはゴミ。存在価値なし。それで良いよな?
それでいいんじゃね?w

俺は最初からSmalltalkのやり過ぎなオブジェクト指向、
言語とは関係ない部分にオブジェクト指向を適用するのが
おかしいと、アランケイの考えが古いと言っていたのに、
それを理解できてないやつがいるんだよな。IcOpWHLwとか

599デフォルトの名無しさん2017/09/18(月) 22:02:37.40ID:IcOpWHLw
あー、なんとなくわかってきたなぁ
お前ら、ぶっちゃけこれ以外での組み方知らない?

600デフォルトの名無しさん2017/09/18(月) 22:11:26.52ID:9UUI5dsL
>>597
このスレは既にオブジェクト指向設計をする前提でその上での良し悪しだろ?
じゃなかったら設計全般スレの一つの主張でいいだろ

601デフォルトの名無しさん2017/09/18(月) 22:20:16.44ID:IcOpWHLw
>>600
は?
じゃあ、何をやるにも全くメリットわからないのに
自己流でオブジェクトに分けてそれで何がしてーの?
何がよくなんの?
何に向かって何やってるの?
すげー馬鹿だろお前等
じゃあ、オブジェクト単位で分割するの辞めてみたら?
それでも分割するお前の行動は何か利益を産んでるの?
全く無駄なことやってるの?

602デフォルトの名無しさん2017/09/18(月) 22:27:40.96ID:9UUI5dsL
>>601
プログラミングのスレでPCの電源の入れ方から質問するようなもんだろ
いちいち初心者に説明してたらキリがない
まずオブジェクト指向について勉強してから出直せ

603デフォルトの名無しさん2017/09/18(月) 22:30:51.87ID:IcOpWHLw
>>602
っていつも逃げるけど
オブジェクト指向のメリットなんてどこにも書いてないし

604デフォルトの名無しさん2017/09/18(月) 22:32:21.17ID:FKyHuAgC
>>542
それは知らないだけだろ
オブジェクトの指向の源流だから
今当たり前に使っている技術も
Smalltalkから生まれてきた

たとえばRubyが「すべてはオブジェクト」だ
っていうのもSmalltalkが元祖
テストフレームワークも
最初にSmalltalkで生まれた

605デフォルトの名無しさん2017/09/18(月) 22:33:28.20ID:FKyHuAgC
>>547
それで君はどこの土人だい?

606デフォルトの名無しさん2017/09/18(月) 22:41:02.34ID:9UUI5dsL
>>603
入門書に書いてあるだろ

607デフォルトの名無しさん2017/09/18(月) 22:42:30.53ID:9UUI5dsL
>>603
説明してやってもいいけど
使ってもいないのに聞いてどうするの?

608デフォルトの名無しさん2017/09/18(月) 22:42:59.21ID:FKyHuAgC
>>561
>Web開発はサービス単位で遅延結合が出来てる
マイクロサービスが典型的だな
サービスを分けることでマクロに遅延結合できる

だけど別にアランケイが間違っていたわけじゃなくて
むしろその発想を大規模に発展させた結果だよね
Smalltalk誕生の時代にはインターネットなかったから

609デフォルトの名無しさん2017/09/18(月) 22:44:38.63ID:IcOpWHLw
>>607
議論の軸になるはずだが
予言していいけど絶対お前は説明できない

610デフォルトの名無しさん2017/09/18(月) 22:45:57.14ID:nAoTSCTK
>>603
何と比較したいの?
こういうやり方のほうが俺はいいと思ってるってな意見があれば議論になると思うけど

611デフォルトの名無しさん2017/09/18(月) 22:49:49.74ID:4Oi7LGiO
>>608
> マイクロサービスが典型的だな
> サービスを分けることでマクロに遅延結合できる

でもそれオブジェクト指向ではないですよね?

612デフォルトの名無しさん2017/09/18(月) 22:51:03.60ID:4Oi7LGiO
>>608
> だけど別にアランケイが間違っていたわけじゃなくて

アランケイが間違っていたのはオブジェクト指向や
Smalltalkで実現しようとしていた所
マイクロサービスにSmalltalkもオブジェクト指向も関係ない

613デフォルトの名無しさん2017/09/18(月) 22:52:02.80ID:9UUI5dsL
>>609
先にはっきりさせときたいんだけど、
どういう点を論ずるの?

614デフォルトの名無しさん2017/09/18(月) 22:55:18.51ID:ACfwNVcC
>>603
わざわざ書く必要がないほど自明だからだよ。

だけど初心者には分からない。なぜならOOPは大規模じゃないとメリットが無いから。
だから大きい(10k行以上)の物を書き、保守をしばらく続ければ、誰でもわかるようになる。
例えばCの手続き型で書いたとしても、保守しやすく保てば、だんだんOOPに似てくる。
これが分かっているからJava等では最初から初心者をOOP信者として洗脳しようとする。
ところが初心者にはOOPのメリットが見えるはずもない。これが大体のパターン。

500行程度のプログラムをOOPで書いても大してメリットない。当然理解出来るはずもない。
最低3k行程度、出来れば10k行以上書いて保守してみ。いやでも分かる。

615デフォルトの名無しさん2017/09/18(月) 23:03:49.23ID:FKyHuAgC
>>611
>>612
>マイクロサービスにSmalltalkも
>オブジェクト指向も関係ない
いやそうは言い切れない

マイクロサービスは突然出てきた訳じゃなくて
オブジェクト指向からコンポーネント指向や
サービス指向を経由してきたもので
オブジェクト指向が発想の源流

616デフォルトの名無しさん2017/09/18(月) 23:04:53.82ID:IcOpWHLw
>>614
は?
悪い
俺には全くメリットがわからねぇ
お前のそんな長文を読んでも全くメリットが欠片もわからねぇ

617デフォルトの名無しさん2017/09/18(月) 23:07:52.17ID:4Oi7LGiO
>>615
その根拠は?
なんでそれを書かないかな

618デフォルトの名無しさん2017/09/18(月) 23:16:18.54ID:ACfwNVcC
>>616
オブジェクト指向の利点が分からず、君がいっぱしのプログラムを書けるというのなら、
その君のやり方で大規模な物を書いて保守してみればいい。
だんだんオブジェクト指向に似てくるから。
500行程度のプログラムを書き捨てするのなら、大してメリットはないし、当然理解も出来ないよ。

プログラミング言語C++とか読めば、いろいろ具体的にハゲが力説してるよ。
ただその意味は初心者には分からないと思うよ。

619デフォルトの名無しさん2017/09/18(月) 23:18:19.59ID:IcOpWHLw
>>618
そんなにどこにでも書いてあるなら
リンクを5個ぐらい貼ってみろよ
オブジェクト指向の入門サイトにでもあるんだろ?
なにせ常識らしいからな

620デフォルトの名無しさん2017/09/18(月) 23:20:22.40ID:ACfwNVcC
>>616
ちなみに、分からなければ分からないでいい。
所詮はOOPも手段であり、OOPを用いずとも困ってないのなら、わざわざ使う必要はない。

621デフォルトの名無しさん2017/09/18(月) 23:21:34.19ID:IcOpWHLw
>>620
違うだろバカ
テメーはメリットなんか知らないだろ

622デフォルトの名無しさん2017/09/18(月) 23:22:51.75ID:IcOpWHLw
>>620
何偉そうにしてんの?
わからないくせに
わかるならいくつでも箇条書きで
書いてみろよアホ

623デフォルトの名無しさん2017/09/18(月) 23:24:17.62ID:FKyHuAgC
規模が大きくなるほど
手続き型で保守しにくくなる

大規模プログラムで保守性が高まるのは
オブジェクト指向のメリットのひとつで
いろんな入門書に書いてある

624デフォルトの名無しさん2017/09/18(月) 23:27:29.49ID:4Oi7LGiO
>>623
言語レベルではそうだね。

だけど大規模プログラムを保守しやすくするなら
オブジェクト指向にするだけじゃなくて
単純に規模を小さくすればいい
それがマイクロサービスでもある

625デフォルトの名無しさん2017/09/18(月) 23:27:57.21ID:DpRq8b6A
>>619
ひょっとして、手続き型おじいちゃんの土人の方ですか?
屁臭いペチプァの方ですか?

626デフォルトの名無しさん2017/09/18(月) 23:28:42.89ID:9UUI5dsL
ID:IcOpWHLwが論点を挙げられないのは
テキトーに否定するだけだったからか

627デフォルトの名無しさん2017/09/18(月) 23:28:45.85ID:ACfwNVcC
>>619
日本語でおk

628デフォルトの名無しさん2017/09/18(月) 23:30:22.06ID:IcOpWHLw
>>623
どういう原理で?w

そもそもなんででかくないと効果がないの?
機能10個作るのと機能20個作るので難易度変わるの?
変わるように組んでるの?

629デフォルトの名無しさん2017/09/18(月) 23:31:42.19ID:IcOpWHLw
>>626
お前は全くメリット挙げられないクズ

630デフォルトの名無しさん2017/09/18(月) 23:32:46.81ID:IcOpWHLw
>>627
そんなにオブジェクト指向のメリットが常識だって主張するなら
書いてあるサイト探してこいって言ってんだよ
嘘つき野郎

631デフォルトの名無しさん2017/09/18(月) 23:34:05.63ID:9UUI5dsL
>>629
説明損になるとこだったよ

632デフォルトの名無しさん2017/09/18(月) 23:35:05.51ID:IcOpWHLw
>>631
消えろ邪魔

633デフォルトの名無しさん2017/09/18(月) 23:36:35.21ID:9UUI5dsL
メリットなんてケースによるんだから否定するのは容易い
俺は大規模開発なんてしないもん!とかな

自分の開発対象にあった開発方法をとって、
その上での議論だろ

634デフォルトの名無しさん2017/09/18(月) 23:37:27.40ID:9UUI5dsL
>>632
論点を挙げられないこと指摘されて邪魔か
さすがクズ

635デフォルトの名無しさん2017/09/18(月) 23:37:50.84ID:IcOpWHLw
>>633
速く死ねよ
あぼーんで見えねぇよ

636デフォルトの名無しさん2017/09/18(月) 23:39:45.83ID:9UUI5dsL
なんで見えないのにわかるんだ
口からでまかせばかりだな

637デフォルトの名無しさん2017/09/18(月) 23:44:08.97ID:ACfwNVcC
>>624
ちなみに俺はそれもありだと思ってるよ。

具体的に言えばJavaScriptの連中が壮絶に酷くて、OOPどころかそれ以前なんだけど、
実際はそれでも結構動いてしまう。
理由は簡単で、サーバー/クライアント構成でデータ管理は完全に分離されてて、
データクエリはhttpでフォーマットもJSONとお決まりで、何も考える必要なく、
JavaScriptは単にGUIの装飾だけやればいい感じだから。
抽象度もそれなりだから50行位で一機能出来てしまって、
5個くらい(=250行)あればまあまあ見栄えしてしまう。
ああこれでは成長せんなーとは思ったね。
この規模なら毎回コピペ+書き捨ての方が生産性高いし。

ただ、従来はデータ管理等も全部自前でやるから肥大化するのであって、
正直OOPでがんばって自前でやりくりするより、
既製品のDBとか使ってマッシュアップするJavaScript的開発の方が楽だから、
今後はそうなる気もする。

638デフォルトの名無しさん2017/09/18(月) 23:48:22.36ID:ACfwNVcC
>>630
> そんなにオブジェクト指向のメリットが常識だって主張するなら
> 書いてあるサイト探してこいって言ってんだよ
これを主張した奴はこのスレ内にはいない。
つまり、日本語でおk
俺が言ったのは「プログラミング言語C++」で、これは本だ。

お前が知りたいのなら、おまえ自身が探してきて、
ここにこんなこと書いてますが合ってますか?と訪ねればいいだろ。

639デフォルトの名無しさん2017/09/18(月) 23:52:37.86ID:nAoTSCTK
>>637
今どきはJavaScriptでもwebpackとかあるんだし
使い捨てせずにモジュール化して使いまわすよ普通は
OOPかどうかは別として

640デフォルトの名無しさん2017/09/18(月) 23:55:59.34ID:FKyHuAgC
>>637
ああそういう所はあるよな

Web(アプリ)って単体のコードは
壮絶に汚くなりがちだし
OOPも退化してる

だがフロントエンドとバックエンドを分けるとか
Webの仕組みが上手くできてるんで
それでも何とかなっちゃうんだよな

641デフォルトの名無しさん2017/09/18(月) 23:56:19.32ID:3rLLB/Qm
張り切ってるヤツは
俺の考えにそぐわない物は間違いである
って主張なの?

642デフォルトの名無しさん2017/09/18(月) 23:59:55.60ID:4Oi7LGiO
オブジェクト指向は、それ以前から存在する技術も
オブジェクト指向に取り入れた=オブジェクト指向の技術
と言うつもりなんだあろうか?

保守性とか拡張性とか、そんなもんオブジェクト指向以前から有るだろ

例えば金融業界、COBOLなんかの世界で使われてる
全銀フォーマット規格
http://www.kitashin-bank.co.jp/pdf/f-manual/99-02-00_WEB-FB.pdf

こういうのまでオブジェクト指向だって言うつもりなんだろう?
マイクロサービス化におけるAPIは、この全銀フォーマット規格となんもかわらん。
こういうフォーマットでデータ投げれば処理してくれますよーなんだから

643デフォルトの名無しさん2017/09/19(火) 00:04:25.20ID:9ArzpmiB
結局こういう論理なんだよな


オブジェクト指向を使うと従来よりも保守性や拡張性が向上する場面が有る

オブジェクト指向は保守性や拡張性をもたらすものである

保守性や拡張性をもたらすにはオブジェクト指向を使ったほうが良い

保守性や拡張性がある=オブジェクト指向である

マイクロサービスとかクラウドとか保守性や拡張性が有るやろ?
それらは全部オブジェクト指向なんやで?


オブジェクト指向とは一体何なのか?

644デフォルトの名無しさん2017/09/19(火) 00:06:29.46ID:H6eyWyRr
>>641
っていうか
この技術は効果無しの似非技術で
間違いなくね?

そんなに当たり前の技術なら
メリットなんてググったら
その仕組みから明確なものが出てきていいだろw

こんなに勿体ぶる必要もないし
仕組みがわかれば大きいプロジェクトでないと効果がないも
わかるけどそもそも
正しいオブジェクト指向が反映されたソース自体よくわからんし

645デフォルトの名無しさん2017/09/19(火) 00:13:23.26ID:H6eyWyRr
そもそもなぜここまでメリットの説明できないものを
効果がありそうに言うの?
お前らは
これ役に立たないだろ
だから説明できないじゃん

お前らがアホなんじゃなくて
どの資料にもサイトにも
具体的なメリットおよびその効果をもたらす仕組みの記述がねぇんだよ
だから誰も具体的な話がよくわからないが正解だろこれ

んでオブジェクト単位で分けたところで
書く必要のある処理を書かなくて良くなることはないし
保守だの拡張だのなんてあるわけないし
なんで騙されてるって気が付かないんだ?

646デフォルトの名無しさん2017/09/19(火) 00:16:43.07ID:yzSynM5D
>>639
使いまわせればそれに越したことはないんだけど、
チョイ変更が必要なときどうするかだよ。
そこを共通モジュール側に変更として取り込むか、使い捨てと割り切ってコピペ+改変で乗り切ってしまうか。

やってみて分かったんだが、GUIって実際に使ってみないと使い勝手が分からないことも多くて、
張り切って作ってもゴミだとか、
或いは一時凌ぎで適当に作ったら意外に使いやすくて拡張していき、おかげで酷いことになるとか結構あって、
どれを取り込むべきか最初には分からないんだよ。
(俺にGUIのセンスが無いといえばそうだが)
だからとりあえずコピペ+改変で組んでしまって、
後で本当に使える場合はもう一度共通側に取り込むほうがましだと俺は判定している。
二度手間ではあるが、変に最初に取り込んで除去する方が死ねるから。

>>640
イエス。

647デフォルトの名無しさん2017/09/19(火) 00:18:34.87ID:stFT2Xr6
>>644
じゃあ他の手法でやってりゃいいじゃん
自分でどういう設計するか自分じゃ決められないのか

648デフォルトの名無しさん2017/09/19(火) 00:20:28.09ID:stFT2Xr6
>>645
騙されてるって、誰がなんのためにプログラマを騙すんだよ
なんらかの陰謀論のせいにして思考停止ですかw

649デフォルトの名無しさん2017/09/19(火) 00:22:36.67ID:H6eyWyRr
>>648
c言語が完璧過ぎたから
オブジェクト指向言語って名目で売り出したかったんだろ?
販売戦略の一環だろこれ

650デフォルトの名無しさん2017/09/19(火) 00:24:26.80ID:H6eyWyRr
そろそろitproとか日ソフに
オブジェクト指向役に立ちませんでしたって記事書いてほしいけどね

651デフォルトの名無しさん2017/09/19(火) 00:24:32.28ID:6o+b/JQG
まともに作ったオブジェクト指向プログラムでは
ユーザーの既知の言葉とクラスが対応している
クラスに関わる情報が集約されてる
よって仕様変更に対応しやすい

もっともメリットを享受してるのはここだな

652デフォルトの名無しさん2017/09/19(火) 00:26:06.13ID:H6eyWyRr
>>651
意味がわかんない
どう仕様変更されるかもわからないのにそんな言葉出しちゃう時点で
テメーはクソだから発言しなくていいよ

653デフォルトの名無しさん2017/09/19(火) 00:27:06.08ID:yzSynM5D
>>639
ああすまん、俺が言っているのは「スニペット」と言うのかもしれん。
(俺自身はあの機能は嫌いだから使ってないが、たぶん意味的にはこれ)

モジュールというよりは「お約束的コード」の塊を持っておき、
それをベースにその都度必要なら改変して使う、って奴。
それで使えると判明したら「お約束的コード」に新しい機能を取り込む。
JavaScriptはGUIの装飾が主だから、割とこんな感じのほうが上手く行く気がする。

654デフォルトの名無しさん2017/09/19(火) 00:27:42.18ID:stFT2Xr6
>>649
関数型も完璧すぎるC言語に対抗するためのマーケティングと捉えてる?

655デフォルトの名無しさん2017/09/19(火) 00:29:49.11ID:H6eyWyRr
>>654
名前なんかなんでもいいんだろ
言語と必要であれば設計手法も付けて売り出せれば本当になんでもいいんだと思うよ

656デフォルトの名無しさん2017/09/19(火) 00:30:54.19ID:stFT2Xr6
>>652
え、どう仕様変更されるかわからないからって仕様変更への対応しやすさはまったくの度外視でシステム作っちゃうのお前

657デフォルトの名無しさん2017/09/19(火) 00:32:11.91ID:stFT2Xr6
>>655
構造化もマーケティング、手続きもマーケティング、さあどこまで遡ればマーケティングと無縁の世界、お前の桃源郷に辿り着くんでしょうかw

658デフォルトの名無しさん2017/09/19(火) 00:34:11.72ID:9ArzpmiB
>>645
> そもそもなぜここまでメリットの説明できないものを
> 効果がありそうに言うの?

メリットというか、人間のメンタルモデルに一番マッチしてるから
使いやすいってだけだよ

小学校入学前の子供であっても、車という種類(クラス)があって
白い車、黒い車、なんて属性(プロパティ)や
走る、止まる、曲がる、なんて処理(メソッド)が
車に紐付いてるって理解してるだろ?

なんかその道のプロは、オブジェクト指向の真のメリットは
継承やカプセル化や多態性とか言ってるけど、
それはオブジェクト指向の応用でできることであって、
オブジェクト指向はわかりやすいっていうのが
(メリットではなく)特徴

659デフォルトの名無しさん2017/09/19(火) 00:35:21.48ID:H6eyWyRr
>>657
ちゃんと見定めればいいんじゃないかな?
役に立つものと立たないものを

660デフォルトの名無しさん2017/09/19(火) 00:38:39.43ID:9ArzpmiB
>>656
> え、どう仕様変更されるかわからないからって仕様変更への対応しやすさはまったくの度外視でシステム作っちゃうのお前

仕様変更に対応しやすくするために必要なのは、
コードを書かないこと。これはオブジェクト指向とは関係ない。
コード量が少なければ、仕様変更で書き換えるコードも少なくなる。

オブジェクト指向的にはモジュールを抽象化して、拡張性を持たせることだろうが
それは過剰な設計になって複雑さが増すだけで無駄になることが多い。

最初に作り込むのをやめて、最低限動くコードを書くのが良い。
これもオブジェクト指向とは関係ない話

661デフォルトの名無しさん2017/09/19(火) 00:40:09.40ID:m+YtWxtc
プロトタイプ開発

662デフォルトの名無しさん2017/09/19(火) 00:40:23.37ID:6o+b/JQG
>>652
仕様変更はユーザーの既知の言葉でなされる

663デフォルトの名無しさん2017/09/19(火) 00:41:58.60ID:9ArzpmiB
ユーザーの既知の言葉はオブジェクト指向ではない

664デフォルトの名無しさん2017/09/19(火) 00:47:42.06ID:stFT2Xr6
>>659
オブジェクト指向は役に立つね

665デフォルトの名無しさん2017/09/19(火) 00:48:50.65ID:H6eyWyRr
>>664
お前、ミソが腐ってるからな

666デフォルトの名無しさん2017/09/19(火) 00:53:31.47ID:m+YtWxtc
>>665
お前、性根が腐ってるからな

667デフォルトの名無しさん2017/09/19(火) 00:54:13.00ID:stFT2Xr6
>>660
オブジェクト指向と関係ないか
じゃあどんな設計手法となら関係ある?手続き型も関数型も、再利用のしやすさ、仕様変更への対応のしやすさとはまったくの無関係?
どんな設計手法を取ろうと、仕様変更への対応はまったく同じだけのコストがかかる?

668デフォルトの名無しさん2017/09/19(火) 01:00:45.76ID:6o+b/JQG
>>663
ユーザーの既知の言葉をクラス化したと言ったはずだが
お前には何もできないね

669デフォルトの名無しさん2017/09/19(火) 01:03:40.84ID:9ArzpmiB
>>667
> じゃあどんな設計手法となら関係ある

どんな設計手法とも関係ない。
例えば仕様変更に備えて既存のコードを読みやすくするために
わかりやすい変数名をつけることは、どの設計手法とは関係あるか?と
聞かれてお前、なんて答える?

そういうレベルの話

> どんな設計手法を取ろうと、仕様変更への対応はまったく同じだけのコストがかかる?
場合による。どれが最高とかはない。銀の弾丸はないのだよ君

670デフォルトの名無しさん2017/09/19(火) 01:05:01.44ID:9ArzpmiB
>>668
ユーザーの既知の言葉には
動詞もあるはずだが、それもクラスにしたのか?

671デフォルトの名無しさん2017/09/19(火) 01:08:32.48ID:6o+b/JQG
>>670
動詞はクラスのメソッドだろ
基本くらい勉強してこい

672デフォルトの名無しさん2017/09/19(火) 01:09:31.94ID:9ArzpmiB
ユーザーの既知の言葉をクラス化したというが
じゃあオブジェクト指向以外ではできないと思うのか?

理由はクラスが無いからできないと思ってる?
関数しか無いからユーザーの既知の言葉は関数になると思ってる?

違うな。C言語で作られたLinuxでも見ればわかるだろう。
他の手法ではモジュール(またはファイル)になるんだよ

673デフォルトの名無しさん2017/09/19(火) 01:23:49.02ID:yzSynM5D
まあバトるのはいいと思うけど、結局のところsmalltalkの話と似たような事になっていて、

・smalltalkが「遅延結合」で実現しようとしたことは、現在は他の手法で十二分に達成されており、
わざわざsmalltalkを用いる必要はない
・OOPのメリットは、現在では他の手法でも得られるため、OOPに頼る必然性はない。

だからメリットが見えないのなら使わなければいいだけ。
JavaScriptとかの状況だと、OOPで書いてもあまりメリットないのは事実だし。

674デフォルトの名無しさん2017/09/19(火) 01:32:29.64ID:y3g67zRP
ID:H6eyWyRr

完全なるガイジ
こういうのが現場に一匹でも紛れ込んでいたら
さぞ迷惑だろうな

675デフォルトの名無しさん2017/09/19(火) 01:35:21.15ID:6o+b/JQG
>>672
それはオブジェクト指向言語でないとできないかという話か?
設計の話をしてんだよ
できるしgtkとかC言語でオブジェクト指向設計で組んだプログラムもある
オブジェクト単位で分けたならオブジェクト指向設計だし、そうでないなら他の設計だろ

モジュールはオブジェクトだったり機能分割だったりより包括的な言葉だ
お前の言っていることは間違えてる

676デフォルトの名無しさん2017/09/19(火) 01:49:41.82ID:9ArzpmiB
結局さ、オブジェクト指向が生きるのは実装の話なんだよね。
言語より外に出ないでほしい。

677デフォルトの名無しさん2017/09/19(火) 02:07:01.99ID:OkajuEzq
オブジェクト指向言語で実装しやすいように設計したり
オブジェクト指向言語で実装した場合に後でメンテナンスが楽になるように設計するのが
オブジェクト指向設計じゃろ?

678デフォルトの名無しさん2017/09/19(火) 02:07:22.02ID:6o+b/JQG
弁解せずに話し飛ばして逃げたか
ID:9ArzpmiBが恥を晒すだけのスレになってしまったな

679デフォルトの名無しさん2017/09/19(火) 02:13:40.15ID:NMSJB/uW
「オブジェクト指向」って言葉自体、色んな意味で使われて混乱の元になっていたのは事実だわな。
最近の本では
「オブジェクト指向でなぜつくるのか」
がそのあたりの状況も含めてすっきり整理して分かりやすかった。

とりあえず
「オブジェクト指向プログラミング」
「オブジェクト指向設計」
「オブジェクト指向分析」
はきっちり分けて会話しないとますます混乱するな。

680デフォルトの名無しさん2017/09/19(火) 02:38:22.83ID:9ArzpmiB
>>678
それについて弁解しろと?

681デフォルトの名無しさん2017/09/19(火) 02:45:40.97ID:OkajuEzq
>>678
横レスだが君のレスのほうが普通におかしいよ

>まともに作ったオブジェクト指向プログラムでは
>ユーザーの既知の言葉とクラスが対応している

ユーザーの既知の言葉が先にあって
それをオブジェクト指向言語で実装しやすく・メンテしやすくするために
対応するクラスを作ったんだよね?
オブジェクト指向言語以外でも同じように実装しやすく・メンテしやすくするために
対応する関数やデータ型を作るだけじゃないの?

ユーザーの既知の言葉にどの程度対応付けできるかは
実装言語で扱える抽象化の方法にもよるけど
対応付けができるのはオブジェクト指向言語に特有のことではないよ

682デフォルトの名無しさん2017/09/19(火) 02:46:40.11ID:9ArzpmiB
>>679
一時期オブジェクト指向が目的になってる感があったよね

オブジェクト指向の適用範囲はプログラミング
そして設計のうち基本的な部分までだろう。

基本的な設計というのは具体的に言えばフレームワーク。
そのフレームワークというのは汎用的なもので
フレームワークの利用者に具体的な処理の部分だけを
書けばいいような形に設計するから、オブジェクト指向を意識する必要はなくなる。

またサーバー設計とかデータベース設計(オブジェクト指向データベースは除く)は
そもそもオブジェクト指向とは関係ない

683デフォルトの名無しさん2017/09/19(火) 03:07:31.07ID:6o+b/JQG
>>681
だから言語の話はしてないって
ガイジかよ

684デフォルトの名無しさん2017/09/19(火) 04:43:07.90ID:1X4lIwJc
>>651
その通り
DDDの発想だね

>>667
そんな訳ないよな
仕様変更しやすいのはOOのメリット

685デフォルトの名無しさん2017/09/19(火) 04:52:13.36ID:1X4lIwJc
>>681
>対応付けができるのは
>オブジェクト指向言語に特有のことではない

横レスに横レスだが……

OOPじゃないと「できない」わけじゃないが
OOPの方が「やりやすい」

686デフォルトの名無しさん2017/09/19(火) 05:09:27.48ID:Js438x12
・「オブジェクト指向」には「抽象データ型をクラス等でやる(カプセル化・継承・多態性)」と「遅延結合を(メッセージを送ってとかを方便にして)徹底する」という2種類あり混ぜると危険

・「オブジェクト指向」には「〜プログラミング」(前二者の混在)の他に「〜分析」(前者の強い影響下)「〜設計」(後者の強い影響下)があり混ぜるとワケワカメ

って二段階において区別が付かない人間がいるともう議論はおろか会話すら成り立たなくなるといういい例だったな

ついでにこのスレには「遅延システムを言語仕様に持ち込むな」とかいう宗教のSmalltalkアンチ&他人の話は読み飛ばすくせに自分の意見は押し付けるガイジがいて、話がエンドレスエイト

687デフォルトの名無しさん2017/09/19(火) 07:09:47.56ID:H6eyWyRr
>>686
で?
それってどこの資料に書いてあるの?
テメーの意見だろ
死ねよ

688デフォルトの名無しさん2017/09/19(火) 07:52:39.18ID:oNO26kuq
>>686
もうSmalltalkはゴミだから存在価値なしって結論出たろ
その時に反論できなかったくせにシレッと復活させんな

689デフォルトの名無しさん2017/09/19(火) 09:41:53.11ID:baYuuAVc
>>687
オブジェクト指向プログラミング(のひとつ)が、抽象データ型(簡単に言うとユーザー定義のデータ型のこと)を
クラスなどで実装するアイデアだというのは、ビャーン・ストラウストラップが次で提唱(厳密には整理)しています
http://www.stroustrup.com/whatis.pdf

大枠としては、Simulaという言語が初めて作った「クラス」という言語機能を使って
整数型や浮動小数点少数型、文字列などといった通常は言語組み込みのデータ型と同様に
プログラマがデータ型を拡張できるようにしようというアイデアです。メリットは、いったん必要なデータ型を定義して
しまえば、そのデータ型やそれ同士の操作というかたちでプログラムの記述を抽象化(換言すると
シンプルに)できるというところにあります。

ストラウストラップのこのアイデア(正確には同時期に抽象データ型の発案者のリスコフ、Simulaの設計者の
ダールとニガードは当然として、Eiffelのバートランド・メイヤーらも同様の発想に到達しています)に準じれば
オブジェクト指向プログラミングのメリットのひとつは抽象データ型(データ抽象ともいう)を実践することと変わりませんから
(もちろんクラスを使うことで追加して継承による差分プログラミング、その結果の多態性を享受できます)、
メリットを検索したければまず"抽象データ型" "利点" などとしてググるとちゃんと出てきます。

まずここまでよろしいでしょうか?

690デフォルトの名無しさん2017/09/19(火) 09:49:26.36ID:H6eyWyRr
>>689
え?どこに仕組みが書いてあるの?w
そもそもそいつの理論自体クソなんじゃねコレ

メリットは、いったん必要なデータ型を定義して
しまえば、そのデータ型やそれ同士の操作というかたちでプログラムの記述を抽象化(換言すると
シンプルに)できるというところにあります。

はぁ?
これが本当にメリットになっているか
こんな曖昧な表現で誰も検証してねぇのがそもそもの間違いなんだよ

691デフォルトの名無しさん2017/09/19(火) 09:59:43.63ID:E7A1w6jZ
俺はオブジェクト指向言語でプログラミングを覚えたから、やっぱり設計するときもベースになるのはオブジェクト指向だな
なんかやたらとオブジェクト指向に噛みついてる人がいるけど、勝手に自分がいいと思う方法論でやればいいじゃんっていうw

692デフォルトの名無しさん2017/09/19(火) 11:47:50.43ID:baYuuAVc
>>690
とりあえず、まずは抽象データ型をクラスを使って実践するアイデアの「オブジェクト指向プログラミング」が
それなりに名の知れた先達のアイデアであり、>>686個人の意見ではないことを言外に了解いただけたことは良かったです

抽象データ型(ユーザー定義のデータ型)のメリットについてはデータ型自体のメリットが当たり前すぎて
それを具体的に意識できないとちょっとピンと来にくいかもしれません
たとえばもし浮動小数点数データ型(float)が言語の組み込みでなかったとしたら
小数同士の演算やそれを入力・表示するためにプログラムを書くときに
どんな不都合が生じるかを考えると逆にメリットをイメージしやすいと思います

そもそもデータ型というのは人間とコンピューターの両方に対しこれから扱おうとするデータが
何を意味するのかについての情報を共有するためのタグのような役割を果たします

浮動小数点数ならその型であるfloatを宣言することで
人間側は変数や関数を通じて浮動小数点数(指数表現付き小数)を扱えることを知ることができ
コンピューター側は変数に代入された、あるいは関数に渡されたビット列データが浮動小数点数として
つまり各ビットが符号、指数部、仮数部のどれを表しているかを知り、ビット列に対し相応しい扱いをすることができるわけです

もしこのデータ型という情報がビット列データや変数、関数に附随させることが出来なかったら
たとえば浮動小数点数同士の加算を行なう関数(仮にadd_float)を呼び出すにも
渡したビット列が果たして本当に浮動小数点数を表すのか
そもそもそのadd_float関数を使うことが適切なのかの判断がしにくくなり
プログラムの正しさを保証・把握しにくくなります

また応用として(こちらの方が即効性のあるメリットですが)変数や関数にもデータ型情報を付加することができれば
同一名の関数や演算子を渡すデータ型ごとに適切に振る舞わせることが可能になり
プログラムの記述をシンプルにすることに役立ちます
a, b が float で、add_float(a,b) の場合、add_int、add_fractionなどというようにデータ型ごとに
いちいち区別せずに単に add(a,b)で済ませることが出来たり
演算子を用いてもっとシンプルに a + b と記述することも可能になります

693デフォルトの名無しさん2017/09/19(火) 12:15:42.13ID:lAmeNxGf
>>692
そいつらもなんも説明してないよな
そいつらの説明する文書にメリットの具体的な仕組みがない
曖昧な表現で溢れてて
本当にメリットなのか誰にもわかなくなってしまった

694デフォルトの名無しさん2017/09/19(火) 12:26:34.99ID:sTkEDscL
>>691
自分が初めてちゃんとやったプログラミングがVisualWorksでの開発だったから,
今後他の言語でプログラム組むようになったら大変だろうなと思う

695デフォルトの名無しさん2017/09/19(火) 12:45:28.49ID:baYuuAVc
>>694
最初の本格的プログラミングが商用Smalltalkというのは羨ましいですね

696デフォルトの名無しさん2017/09/19(火) 14:50:14.42ID:OkajuEzq
>>685
DDDはオブジェクト指向かどうかに関係ないよ
DDDをF#でやる例
http://www.slideshare.net/ScottWlaschin/domain-driven-design-with-the-f-type-system-functional-londoners-2014

OOPの方が「やりやすい」場合があるのも確かだけど
そういう主張は往々にしてそれはOOPでのやり方しか知らないから

697デフォルトの名無しさん2017/09/19(火) 15:02:00.92ID:OkajuEzq
>>692
抽象データ型はOOPじゃなくても
現在に使われてる言語の大半で実現できることなのでそのメリットを長々と語っても意味がない
抽象データ型を”クラス”を使って実現することがOOPの特徴だと言うなら
“クラス”を使うことのメリットを説明しないと

698デフォルトの名無しさん2017/09/19(火) 15:19:08.58ID:6o+b/JQG
設計の話で言語がー言いだす
ガイジは言語スレ行けよ

699デフォルトの名無しさん2017/09/19(火) 16:11:27.59ID:E7A1w6jZ
>>696
F#はマルチパラダイムだけど、いったんそれは置いとくとして、オブジェクト指向言語と非オブジェクト指向言語ではどっちがDDDやりやすいの?
オブジェクト指向言語しか知らないから教えてほしいな

700デフォルトの名無しさん2017/09/19(火) 16:31:00.62ID:baYuuAVc
>>697
おっしゃるとおりです
ただ ID:H6eyWyRr への説明だったのであえてデータ型まで掘り下げました

701デフォルトの名無しさん2017/09/19(火) 17:08:27.00ID:1X4lIwJc
>>692
C++やJavaは抽象データ型を重視するOOP

ただJavaScriptはプロトタイプベースだから
オブジェクト指向の全部じゃないんだけど
静的型OOPの主流ではある


>>689
>もし浮動小数点数データ型(float)が
>言語の組み込みでなかったとしたら
この例は分かりやすかった

(抽象)型設計していくのが
C++やJavaのOOP

702デフォルトの名無しさん2017/09/19(火) 17:13:43.45ID:1X4lIwJc
>>696
別にPrologでDDDやってもいいんだよ

でもエリックエヴァンスのDDD本では
オブジェクト指向がメインになってるので
そこを無視して「関係ない」と言ってはいけない

やっぱりOOPの方がDDDをやりやすい

703デフォルトの名無しさん2017/09/19(火) 19:39:03.99ID:3IGf5g9v
このスレなら信頼できるレスを期待できると信じて質問しますです。

<< 質問 >>

デザインパターンは、大手企業の開発者以外では使われていないのだろうか?

特に地方では、全くと言っていいほど使われていないのだろうか?

704デフォルトの名無しさん2017/09/19(火) 19:55:22.09ID:8vQ/BDKS
>>703
よほどのことが無い限りOSS使って開発するのがほとんどだから意識しないうちに触ってるとかはよくある
Factoryパターンとかは頻繁につかうからデザインパターン勉強してないやつが設計しても出てくる
デザインパターンバリバリに意識して設計されてるのは見ない

705デフォルトの名無しさん2017/09/19(火) 20:27:42.88ID:6o+b/JQG
>>703
デザインパターンは良く使われてるデザイン、設計をパターン化したものだ
そのデザイン自体は無能でなければどこかしらで使っているだろうが、
パターンとして認識してるかは別だ

706デフォルトの名無しさん2017/09/19(火) 20:32:55.48ID:oRSrnZEU
フレームワークは、デザパタの集積だから、知らず知らず使ってる

フレームワーク製作者は、デザパタの勉強が欠かせないけど、
使う方は、知らなくても使える

707デフォルトの名無しさん2017/09/19(火) 21:38:54.06ID:oUqqEkrK
>>703
singletonはよく使われてる

708デフォルトの名無しさん2017/09/19(火) 21:47:07.15ID:yzSynM5D
>>703
デザパタ自体はあるあるに名前を付けただけだから知ってても知らなくても使ってる。

コードを配置するときに、結果的に○○パターンというのはあるが、逆に、
デザインパターンの中からどれにするか選ぶ、という奴はいないと信じたいが、どうなん?
構造を検討するのならクラス図を直接ホワイトボードに書けばいいだけで、(名前がまるで直感的でないので)
それをわざわざ会議で「ここは○○パターンで行きましょう!」ってのもないと信じたいが、これもどうなん?

というか俺はあの名前を真面目に覚える気にはならない。
あれって、継承/委譲/インタフェース等の組み合わせを全部展開して命名しただけであって、
それより継承/委譲/インタフェースをそれぞれどういう時に使うかをしっかり抑えたほうがいい気がしている。
例えるなら、物理でma=Fとsin/cosで終わるところを、
角度30度の斜面のときは…とか展開して覚えている感があるので気に入らない。
それ以前にクロージャ/関数ポインタ等、もっと使える部品も入ってないし。
というわけで、俺はデザパタはいらない子、と思っている。(使っているが、デザパタとは意識してない)

まあそれ以前に、最近は継承はいらない子、委譲だけでよし、ってのも流行ってるみたいだが。Goとか。

709デフォルトの名無しさん2017/09/19(火) 22:28:41.59ID:1X4lIwJc
>>703
ストラテジーみたいに単純なものは
意識されなくても自然と使われてる
ビジターとか複雑なのはあまり使われてない

デザパタは意識して組まなくてもいいが
一通り学んだ方がいい
「これは○○パターンだな」って分かると
設計するときの土台になるから

710デフォルトの名無しさん2017/09/19(火) 22:29:43.79ID:GKe55KcR
デザインパターンって打つのも億劫か

711デフォルトの名無しさん2017/09/19(火) 22:56:50.66ID:xOoZ3PLO
デザパタは神話
カタログ化こそに異議があるという意見もあるが
それこそ噴飯物
読者のレベルにもよるのはわかってるが
だいたいガバガバ理解ですれ違ってるのを見る
GoFのことかと思えば
GoFのことではなくて独自用語ぶっこんできたりもする
(>>704に見られる「Factoryパターン」であったり)

設計のための勉強に使うと言い切ったほうがまだマシに思える現状

712デフォルトの名無しさん2017/09/19(火) 22:57:09.49ID:xOoZ3PLO
×異議
○意義

713デフォルトの名無しさん2017/09/19(火) 23:07:22.41ID:1X4lIwJc
>>711
>>704は「Factory」だけで意味通じる

GOFの23パターンだと
Factory MethodかAbstract Factoryだけど

そこまで融通が利かなかったから
そりゃ使いにくいだろうけど

714デフォルトの名無しさん2017/09/19(火) 23:15:17.03ID:xOoZ3PLO
断言していいと思うけど

・(いわゆる)ファクトリメソッド
・Factory Methodパターン
・Abstract Factoryパターン

この区別は>>704には無いし
後者二つについての理解は不十分だと思うw
デザパタデザパタ言ってみても
早速その辺で深い溝を感じる

715デフォルトの名無しさん2017/09/19(火) 23:28:15.81ID:9ArzpmiB
おい、デザパタ用語使わずに
デザパタの話しろよ

716デフォルトの名無しさん2017/09/19(火) 23:42:04.65ID:yzSynM5D
つまり、方言が多くて意味無いって事か?

俺も、>>704で通じると思う派だが、しかし確かに>>714の3つって何よ?とも思い、確認してみたが、
正直、区別する必要なくね?理解は以下でいいか?

・(いわゆる)ファクトリメソッド=factory関数をどこかに用意して使う
・Factory Methodパターン=factory関数をメソッドとして提供する
・Abstract Factoryパターン==factory関数を別クラスに配置する

要するに直newせずにファクトリ呼べ、ってだけで全部同じだが。
俺はデザパタのこの手の無駄に組み合わせ数が爆発してる感が大嫌い。
OOPもそうだが、デザパタもここまできたらデザパタが目的になってる感がある。

717デフォルトの名無しさん2017/09/19(火) 23:51:52.40ID:9ArzpmiB
デザパタはパターンに名前を付けたことに
意義があるというが眉唾

だからデザパタ用語を使わずに
デザパタの会話しろ

できるだろ!

718デフォルトの名無しさん2017/09/19(火) 23:53:38.39ID:xOoZ3PLO
>>716
一部にのみレス返す

・(いわゆる)ファクトリメソッド
インスタンスを返すメソッド
単にメソッドのこと

・Factory Methodパターン
インスタンス化をサブクラスに任せる
サブクラス化時にオーバーライドすることによって
親クラス内部で使ってるインスタンスの一部を置き換える
メソッド、親クラス、派生クラス、という関係性の中にあるパターン

・Abstract Factoryパターン
インスタンス群を作成するファクトリを抽象化する
ファクトリごと置き換えて、インスタンス群を丸ごと置き換えたい時使う
インスタンス群、ファクトリごと、が特徴
こーいうのはクラスライブラリを作って他人に提供しようとしたとき欲しくなるパターン

719デフォルトの名無しさん2017/09/19(火) 23:54:32.93ID:xOoZ3PLO
インスタンスを返すメソッド

インスタンスをnewして返すメソッド

のほうがいいかな

720デフォルトの名無しさん2017/09/20(水) 00:07:15.23ID:fL5PgjM3
>>718
了解した。jこれでいいか?
・(いわゆる)ファクトリメソッド=factory関数は非仮想関数
・Factory Methodパターン=factory関数は仮想関数でオーバーライドされる
・Abstract Factoryパターン=数クラスのfactory関数を纏めて抽象化

上2つは区別の必要なし、
下1つはメタ気味だからこれが適切な場合に「ファクトリ」と言えば上2つと混同することはなさそう。
って感じだなあ、俺は。

721デフォルトの名無しさん2017/09/20(水) 00:17:42.90ID:BVH1qyCN
>>707
地獄のstaticおじさんやんけ!

722デフォルトの名無しさん2017/09/20(水) 00:24:55.54ID:fL5PgjM3
ちと補足すると、

・(いわゆる)ファクトリメソッド=factory関数は非仮想関数
・Factory Methodパターン=factory関数は仮想関数でオーバーライドされる

この2つが普通に「ファクトリ」と呼ばれるもので、俺は区別する必要が無いと思っている。
これらを使ったクラスが複数合った場合、それらを束ねるために

・Abstract Factoryパターン=数クラスのfactory関数を纏めて抽象化

が使われると思うので、下から組む場合には、文脈的に混同されることはないはず。
上から組む場合は若干齟齬があるかも。

723デフォルトの名無しさん2017/09/20(水) 00:30:04.30ID:aRa9PEEA
電気回路でも有名なやつには名前がついているものだからなぁ
組み合わせたり改良して使うのだろうから
〜の亜種、ということが多いのかもしれないが

724デフォルトの名無しさん2017/09/20(水) 00:31:45.57ID:LoYhuMpt
関数とメソッドの違いについて

725デフォルトの名無しさん2017/09/20(水) 00:42:43.36ID:lixqcDrr
お前らいつまでデザパタイコールGoFなのw

726デフォルトの名無しさん2017/09/20(水) 01:08:02.93ID:DOSxYj0U
>>699
どっちでやりやすいかは対象のドメインと
モデリングする人間のメンタルモデルによる
例えばDDD本に出てくる経路選択サービスなんかは
関数型の考えでモデリングするほうが自然に思える人が多いんでない?

実装言語としては型の表現力の高さや抽象化のしやすさは重要
F#のUnion TypeみたいのがあるとそれがないScalaでは面倒くささが全く違う

727デフォルトの名無しさん2017/09/20(水) 01:43:57.85ID:NjwKaGnN
ScalaがOOP寄りでF#がFP寄りだから
関数型ならF#の方が組みやすいが

Scalaが選ばれるときは
Javaとの親和性で選ばれる
Java(Web、Android)かWindowsか

728デフォルトの名無しさん2017/09/20(水) 01:47:25.09ID:NjwKaGnN
DDDがOOPの方がやりやすいのは
ビジネスソフトには
状態を持ったモデルが多いから

状態を持たない経路探索なんかは
関数型(論理型)の方が得意だが
全体のサービスの一部なら
マイクロサービスでそこだけ関数型にしてもいい

729デフォルトの名無しさん2017/09/20(水) 09:02:53.40ID:jNWRVYAN
デザインパターンすら書くのも面倒なのか

730デフォルトの名無しさん2017/09/20(水) 09:18:34.29ID:Ga15J+U7
まっ、デザパタは現場では死言ということがわかった。

簡単なごく当然な(デザパタと言うほどのことはないイテレーターとかコマンドとかファクトリメソッドとか・・・)

パターンは自然と使われているということね。

みなさん、サンクス。

731デフォルトの名無しさん2017/09/20(水) 09:19:40.96ID:Ga15J+U7
× 死言
〇 死語

732デフォルトの名無しさん2017/09/20(水) 09:21:37.84ID:qH6V6v7k
× \r\r
〇 \r

733デフォルトの名無しさん2017/09/20(水) 10:43:59.15ID:yYGRyM8i
Iterator パターンは、イテレータを提供するパターンだぞ
独自のデータ構造なんかを作った際に、それを辿れるようなイテレータを提供すること

既にあるイテレータを使ってるからといって
Iterator パターンを使ってるのとは違う
設計することと、設計されたものを使うことは違う
Iterator パターンを使って設計するのと、そのイテレータを使うことは違う

デザパタへの誤解は仕方ない
必要になるまでは分からないだろうから
設計の立場に立つまでは分からないだろう
ならばせめて
必要になるまではせめて語らないでほしい

734デフォルトの名無しさん2017/09/20(水) 11:18:37.43ID:qH6V6v7k
イテレーターがプログラム機能として初めから無い言語が無くなってきたから
パターンを意識しなくてよくなったんだよな。

735デフォルトの名無しさん2017/09/20(水) 11:40:51.15ID:yYGRyM8i
そう、その言い方が正しい

736デフォルトの名無しさん2017/09/20(水) 12:46:50.80ID:DYqQfVY4
使う側も含めてのパトゥーンだろ

737デフォルトの名無しさん2017/09/20(水) 19:13:16.31ID:NjwKaGnN
イテレータが言語にあるから
もうデザパタいらない
って考えは非常に短絡的だと思う

それだと言語に標準である
配列のイテレータとか以外で
独自のデータ構造を走査するとき
とたんにゴチャゴチャになる

738デフォルトの名無しさん2017/09/20(水) 20:04:03.57ID:fL5PgjM3
>>733
> 設計の立場に立つまでは分からないだろう
> ならばせめて
> 必要になるまではせめて語らないでほしい
多分ここが間違っていて、というよりはポリシーの違いだが、
君の職場は「設計」と「コーダー」が完全に分離していて、「コーダー」にはデザパタの知識は必要ないのか?
俺が知っている限り、設計とコーダーの分離は失敗だったと聞いているが。

そもそも設計において必要なのは「外部インタフェースの固定」だ。これは
・(いわゆる)ファクトリメソッド(A)
・Factory Methodパターン(B)
・Abstract Factoryパターン(C)
として、(A)→(B)の場合には外部(使う側)のソースコードの改変は全く必要ないし、
(B)→(C)にアップグレードする場合も正しく隠蔽されていれば同様だ。
中身を見せていれば(B)→(C)時にダウンキャストが必要になるが、これはそもそも設計が悪いし、
それでもラップすれば、外部ソースは改変無しで保てる。
だから使う側からすると「ファクトリを必ず呼ぶ」ことを徹底すればそれでよく、
中身が(A)(B)(C)のどれでも関係なく、クラス担当者が最適なものを選べ、でしか無いと思うが。
最悪駄目駄目なら差し替えればいいだけだし。本来これが隠蔽のメリットだろうに。

>>737
いらんだろ。イテレータ自体、
・走査を begin(), next(), end() と抽象化すれば実装によって異なる走査が必要でも隠蔽できます
なんだし、言語側のイテレータもこれとインタフェース合わせてあるし。
同じ思想を2度学んでも意味が無い。
仮にデザパタがGoF以外の100人から提唱されているとして、それぞれ微妙に方言があり、
「○○のデザパタでは△△のことをこう呼びます」ってのを色々覚えても意味無いだろ。
デザパタのイテレータパターンと言語のイテレータ」は違います!ってのは俺にはこう見える。
どうでもいいことにこだわりすぎだ。

739デフォルトの名無しさん2017/09/20(水) 21:01:08.70ID:NjwKaGnN
>>738
いやいるだろ
言語と設計(思想)が分離する

「外部インタフェースの固定」が有効なのはいいが
そういうのもイテレータとかデザパタから学んでいく

740デフォルトの名無しさん2017/09/20(水) 21:12:23.35ID:8N1Ug+q3
お?アランケイは終わったのか?
どの辺りのレス番から再開すればいんだ

741デフォルトの名無しさん2017/09/20(水) 21:21:18.96ID:V1jqjPnq
便所の落書きに永続性を求めてはいかんw

742デフォルトの名無しさん2017/09/20(水) 21:28:11.72ID:fL5PgjM3
>>739
いる/いらないの言い合いは意味無いが、やっぱり俺は区別の必要は無いと思うぞ。
「言語のイテレータ」は「デザパタのイテレーターパターン」を言語側に取り入れた機能であり、
「言語のイテレータ」を正しく使える=「デザパタのイテレーターパターン」を正しく使える、となるから、
別に学ぶ必要はない。

言語と設計(思想)の分離と言うのは、例えば依存性逆転の法則(DI)等であって、
これは言語とはまったく無関係だから、どの言語でも使えるし、また、使わなくとも実装可能だ。
とはいえこれも、例えばフレームワークは基本的にDI的であるので、
フレームワークを正しく使うようにすれば自然と身に付く。
(フレームワークに沿って記述することが必要であり、これはプチDI)

上達を登山に例えれば、デザパタは一つの登山道であるが、それ以外のルートもあるということ。
どれが効率がいいのかは知らんが、
少なくともデザパタを通らないと頂上にたどり着けない、って事はない。
本来デザパタの目的はこの「上達への最短ルートの開発」だったはずだが、
GoFからして冗長で暴走気味だと思うよ。

743デフォルトの名無しさん2017/09/20(水) 21:42:10.80ID:IJ0bOnfP
DIP=Dependency Inversion Principle
DI=Dependency Injection

744デフォルトの名無しさん2017/09/20(水) 21:48:59.10ID:lixqcDrr
>>742
イテレータの本質はコレクションとアルゴリズムの分離だから学ぶ意味はあるよ
イテレータのことをコレクションを走査するインタフェースとしか捉えないなら、いまや大抵の言語でサポートされてるから使い方だけ知ってればいいけど

745デフォルトの名無しさん2017/09/20(水) 21:58:17.38ID:NjwKaGnN
>>742
>「言語のイテレータ」を正しく使える=
>「デザパタのイテレーターパターン」を正しく使える
ならないって

たんにループ文の代わりに使ってるだけだと
言語でサポートしてない部分になった途端に
分からない、出来ないゆとりになる

ただ使うだけでなく仕組みを知る必要があるが
仕組みを学ぶにはデザインパターンが有効

746デフォルトの名無しさん2017/09/20(水) 22:01:51.52ID:NjwKaGnN
言語やフレームワークを使ってれば
パターンが自然と身につくってのは大いに疑問

OOP言語のJava使ってても
中身は手続き型で書いてるケースがよくある

自然と身につくのは道具の使い方だけで
パラダイムは意識的に学習しないと分からない

747デフォルトの名無しさん2017/09/20(水) 22:04:20.27ID:FueCi3Km
いいんだよ
そんなのどうせ金にならねぇから
工数が決まっちまった後の話に力を入れるな

748デフォルトの名無しさん2017/09/20(水) 22:21:45.45ID:fL5PgjM3
>>746
本人に学ぶ気があれば、使っていれば身につくんだよ。
お前は日本語を学んで上達したのか?違うだろ。使って上達したんだよ。

もっと分かりやすい例で言うと、ギャグだな。
「鉄板」「お約束」「乗り突っ込み」等のデザパタはあるが、
これらをデザパタとして学ばないと「乗り突っ込み」出来ないのか?
違うだろ。使ってるのを見て学んだんだよ。
(トンキンでは学ぶのかもしれないが、関西人のは地だぞあれは。
「ふーん、で、オチは?」という環境にいるから自然と身につくんだよ)

749デフォルトの名無しさん2017/09/20(水) 22:24:58.78ID:DOSxYj0U
用意されたイテレータを使うだけの人と
イテレータやジェネレータを自分で作って使える人とでは
力にかなりの差があるのでパターンとして学ぶことの意義はあると思うけどな

750デフォルトの名無しさん2017/09/20(水) 22:51:24.28ID:lixqcDrr
>>748
オブジェクト指向設計は学ばなくても使ってれば身に付くという思想なら、そもそもこのスレに何しに来てんの?お喋り?自分の考えを聞いてほしくて?

751デフォルトの名無しさん2017/09/20(水) 22:59:41.30ID:NjwKaGnN
>>748
>日本語を学んで上達
日本語は母語だから自然と上達するが
英語だと学ばないとカタコトのまま
数学だとさらに意識的な学習が必要

プログラミング言語は英語や数学に近い
意識的に学習しないと上達しない

752デフォルトの名無しさん2017/09/20(水) 23:01:29.19ID:NjwKaGnN
>>749
まさに要点はそこだね
使うだけの人になるよな

使うだけなら慣れれば十分だが
作る人になるには学ぶ必要がある

753デフォルトの名無しさん2017/09/20(水) 23:06:42.94ID:fL5PgjM3
>>750
むしろお前は何しに来てんだ?
デザパタ学べば上達するなら、本なりサイトでも読めばいいではないか。

754デフォルトの名無しさん2017/09/20(水) 23:14:19.88ID:fL5PgjM3
>>751
× > 英語だと学ばないとカタコトのまま
○ 英語は使わないとカタコトのまま
これはほぼ通説だぞ。むしろ俺の説を補強してどうする?

学ぶ=イメトレであって、それは上達を早める方法ではあるが、
学ぶだけでは上達しないんだよ。使わないといけない。
もちろん使ってさえいれば上達するか?と言えばそうじゃない。
日本人内でも文章の上手下手があるように、いろいろ意識して使って無いと駄目だ。
いわゆる職人気質だよ。今よりも上を常に求めているか?ということ。

755デフォルトの名無しさん2017/09/20(水) 23:16:09.78ID:VBPZEd03
デザパタは名前が付いてることが大事なんだよ
その一言で共通認識ができる

こんな基礎もわからん馬鹿がデザパタはいらないキリッ
とかいいながらペチプァ〜でウンコードモリモリ大将軍してるんだろ?
PHPと共に死んで欲しいね

756デフォルトの名無しさん2017/09/20(水) 23:19:26.12ID:NjwKaGnN
>>754
>英語は使わないとカタコトのまま
違う、もちろん実際に使わないで
座学だけではダメだが
発音は意識して学ばないと
いくら使っててもカタコトのままというのが定説

757デフォルトの名無しさん2017/09/20(水) 23:30:17.48ID:VBPZEd03
おい聞いてるのかペチプァ
単価最底辺の土方ども
生きてるだけ無駄なんだよ屑が
今すぐ死ねよ!

758デフォルトの名無しさん2017/09/20(水) 23:45:01.20ID:VZIyuCp2
>>756
英語は使わないとカタコトのまま
ということは否定するんですよね?

759デフォルトの名無しさん2017/09/20(水) 23:50:15.80ID:fL5PgjM3
>>756
もう完全に脱線しているが、さらに続けると、

> 発音は意識して学ばないと
> いくら使っててもカタコトのままというのが定説
これは正確ではない。
一般日本人について、確かに君の上記意見は当てはまる。
しかしこれはエラーをフィードバックする「耳が無い」からであって、
逆に言えば「耳がある」人は意識して学ぶ必要はない。例えばネイティブの幼児とかがそうだ。

脳科学的に、確か聴覚は幼児期に発達して、そのまま終わりだったはず。
それで俺たちはLとRが聞き分けられない耳になってしまって、結果、LとRの発音が出来なくなる。
これは、先天的聴覚障害者がアーウーとしか言えず、正しく発音ができない(滑舌が著しく悪い)ことからもわかる。
聴覚障害は口蓋の障害ではないのに正しく発音できないのは、
自分の発音が聞こえず、正しく発音できていないことを認識して修正できないから。
(分かりやすく言えば、噛んだことが分からないから)

英語についていえば、LとRの違いがわかる耳があれば、明らかに違う(らしい)のであっさり上達する。
(むしろ、何でこれが聞き分けられないの?と不思議らしい)
俺らみたいに、「耳がない」人が「正しい発音」をする為には、
俺らも聴覚障害者と同様に、正しい発音をする為の口や舌の動きを意識しないと上達しない、というだけ。

だからまあ、エラーをフィードバックできれば自己学習で上達はする、ということにはなる。
つまり自分で書いた糞コードが糞だと認識できれば、上達する、とも言える。

760デフォルトの名無しさん2017/09/20(水) 23:58:32.97ID:DOSxYj0U
イテレータをパターンとして学ぶ価値があるかどうかから
パターンそのものの価値があるかどうかに話変わってるよね
んでもって、その英語の話はもうパターン関係なくなってる

761デフォルトの名無しさん2017/09/20(水) 23:59:45.04ID:DOSxYj0U
もしLとRを聞き分けられるようになる<LRパターン>があるとしたら
パターンを学んだやつのほうが学習効率が高く上達が早いわけだ

そのパターンを知らないやつ独学でいくら努力しても
いつまでたってもLとRが聞き分けられない可能性もある

無理やりパターンにつなげるとだけど。

762デフォルトの名無しさん2017/09/21(木) 00:11:32.59ID:F/cUryZs
>>760
そうじゃない。

自分のコードが糞だと認識する為には、逆に、良いコードならこんな感じになるはず、と想像できる必要がある。
当然、あらかじめ「良いコード」を知っておく必要がある。
だからコードリーディングも同様に上達の手法ではある。これもよく言われてるだろ。

もちろんデザパタ学習も上達の方法だし、やればいい。
ただ、頻出パターンならコードリーディングでも当然遭遇するし、>>704はそういうことなんだよ。
だから>>704が理解出来ない=OSSを使ってない、コードリーディングしてない、ということ。
どっちが上達が早いのかは知らん。両方やるのがベストなのだろうが。
デザパタ学習が唯一の道ではない。

763デフォルトの名無しさん2017/09/21(木) 00:14:31.04ID:ijaAIW4i
>>758
英語は使わないとカタコトのまま
英語は学ばないとカタコトのまま

上の両方を肯定する
「使ってれば学ばなくても自然と覚える」
という片方だけを否定することを否定する

764デフォルトの名無しさん2017/09/21(木) 00:17:36.42ID:ijaAIW4i
>>759
クリティカルエイジ以前の幼児が
英語を自然と身につけるのは知ってる

プログラムの話に戻ると
幼児の頃からプログラミングしていた
奴なら自然と身につくかもしれないが
一般人については意識して学ぶべき

765デフォルトの名無しさん2017/09/21(木) 00:18:52.78ID:EmOs9oCs
内部がどんな実装か知ってる必要ないね
使い捨ての土方なら

766デフォルトの名無しさん2017/09/21(木) 00:28:25.80ID:F/cUryZs
>>764
俺が否定しているのは、君らが学びの方法が唯一デザパタ学習だと信じていることだ。
これは明らかに間違いで、>>762の通り。コードリーディングでもデザパタは身につく。
OOP信者と同様、デザパタ信者もまた、視野狭窄だ。

767デフォルトの名無しさん2017/09/21(木) 00:35:05.01ID:ijaAIW4i
>>766
もちろん唯一の道じゃないけど
コードリーディングだけで
デザインパターンを身につけるのは効率が悪い

あらかじめパターンを知ってて
「これは○○パターンだな」っていう方が
圧倒的に上達が早い

768デフォルトの名無しさん2017/09/21(木) 00:50:20.24ID:n0XifzBg
時間の無駄になる相手に
レスを返しては行けない

分かる人だけ守って欲しい
自分の時間を守って欲しい

769デフォルトの名無しさん2017/09/21(木) 00:59:26.34ID:K0No9bcT
>>762
何がそうじゃないのかわからんのだがww

今度は「デザパタ学習が唯一の道ではない」に主張を変えたのか
その主張なら誰も否定しないだろね
最初からデザパタ学習が唯一の道なんて言ってる人いないから

770デフォルトの名無しさん2017/09/21(木) 01:08:43.31ID:N1EOCCyb
デザパタとリアルで言っても大丈夫でしょうか?

771デフォルトの名無しさん2017/09/21(木) 01:40:52.00ID:QBtXCTqk
>>770
いやー、やめとけ

772デフォルトの名無しさん2017/09/21(木) 01:43:18.55ID:F/cUryZs
>>767
君がそう思うのならそれでいい。
ただ事実として言えるのは、「デザパタ」は頻出パターンであり、当然他でも言及されてるんだよ。

例えばファクトリー、以下はJavaScriptの例だが、クロージャの部分でさらっと出てくる。
ただしJavaScriptの場合はクロージャを生成する為にファクトリーを積極的に使う理由があり、GoFの範囲を超えている。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures
もちろんイテレータはプログラミング言語C++の中でハゲが力説しているし、
ストラテジーについては継承まんまだろ。OOP言語なら確実に説明されてる。

各言語機能も、作った側は「こう使って欲しい」ってのがあるから、それぞれ力説されてる。
(K&Rはあまりにも淡々としすぎているが)
だから頻出パターンならいい教科書で各言語機能を学べば自然と目にしてる。
そして文法は学ぶ必要があるから、これらは読むしかない。
その後にデザパタを見ても、頻出パターンは確実に重複するんだよ。
そしてどうでもいいパターンを学ぶ意味はないし。

デザパタは結局頻出パターンだから、学ぶ気があればどの方法でも自然と身につく。
コードリーディングでも、教科書を読んでも。
「デザパタ自体を学習せねば!色々初めて見るし!」と思ったのなら、それは君らが普段からあれこれ見落としているだけ。
デザパタなんてそこかしこに転がっている。いちいち言及されてないけど。
だから本来はわざわざ別に学習しなければならない物でもないのさ。

773デフォルトの名無しさん2017/09/21(木) 02:03:32.34ID:2yneGSNP
>>772
> 文法は学ぶ必要があるから、これらは読むしかない。

文法はコード書いたり読んだりしてれば自然と身につくよ
日本語の文法を学ばない人に日本語は使えないかというとそうじゃないだろ?
教科書を読むのが文法を学ぶ唯一の方法だと思ったら大間違いだよ

はい、これがお前的反論パターンw

774デフォルトの名無しさん2017/09/21(木) 02:29:40.61ID:q11aClZE
ハロパタ

775デフォルトの名無しさん2017/09/21(木) 02:35:36.57ID:ijaAIW4i
>>772
上から目線で捉えていることは
無条件で正しいとでも思ってるのかな
「君がそう思うのならそれでいい」が

GOFの23パタをすべて習得してるのは当然の前提として
GOF以外のデザパタもあるし
GOFの23パタからアレンジしたものもある

日本ではマイナーなものもある
Null Objectなんかは最近浸透してきたが
Type ObjectとかExtension Objectとか他にも色々ある

またイテレータと同様に
ビジターにも内部/外部があるとか
関数型やジェネリックの書き方があるとか
発展的なトピックもある

だからデザパタ単体で学習した方が整理される
言語を学んでいるときはパターンより文法に
コードリーディングしてるときは
実装のテクニックに目が行きがちだしね

776デフォルトの名無しさん2017/09/21(木) 05:42:15.46ID:eSaSp7RC
みなさん、ほんとうにデザパタを使っているんですか?

簡単な分かり易いものは使っているんでしょうが、これぞっていうパターンを
使っている人このスレに居ますか?

大手企業のパッケージ開発やフレームワーク開発に従事している秀才プログラマー
が使っているのは度々見ましたが、中階層、低階層の現場では見たことありません。

ちなみに我輩はしがない流れ者の派遣プログラマー(プログラム設計もやってます)です。

777デフォルトの名無しさん2017/09/21(木) 06:50:22.15ID:aDCr5zcn
アルカンシェルパターンはよく使ってるね
最強のパフォーマンスを目指す選ばれた者だけが行使することを許された神ーGODーの力

778デフォルトの名無しさん2017/09/21(木) 07:20:26.51ID:QBtXCTqk
>>776
使ってねぇって言ってるだろハゲ

779デフォルトの名無しさん2017/09/21(木) 07:51:05.32ID:xOLq2+H5
>>776
http://www.techscore.com/tech/DesignPattern/index.html/
適当にググって出て来たここに紹介されてる奴を眺めて思い返してみたけど、ほぼ全部使ってるわ
もちろん、これはナントカパターンだ赤ペン先生でやったぞ!ってモロに意識しながら使うと言うよりか、いつも書いてるあのコードってカタログから選ぶとこのパターンだなって感じ

780デフォルトの名無しさん2017/09/21(木) 09:12:15.36ID:Xs4LibNR
>>771
やっぱりそうですよね
普通にデザインパターンって言いますよね
うっかりデザパタとか言わないように気を付けます

781デフォルトの名無しさん2017/09/21(木) 15:56:35.21ID:EmOs9oCs
>>776
GUIで使われるようなものはwebだと使う機会なかったりするし
無理に使うようなものじゃない

GoFのデザインパターンは共通認識としての意味合いが強いから
勉強しとかないと話にならない

782デフォルトの名無しさん2017/09/21(木) 16:00:36.62ID:QBtXCTqk
>>781
はぁ?
一度も使ったことねーけど?w

783デフォルトの名無しさん2017/09/21(木) 18:57:33.91ID:jvulp0iD
パターンハラスメント

784デフォルトの名無しさん2017/09/21(木) 19:07:59.73ID:EmOs9oCs
>>782
毎回長々と説明してるのか
生産性の低い環境でやってるんだな

785デフォルトの名無しさん2017/09/21(木) 19:29:18.74ID:ffbJfIAO
デザインパターンなんてゆとりには通じないよ
ゆとりはif文とforループしか理解できない
彼らとのコミュニケーションは全て懇切丁寧に一から説明しないといけない
そして彼らはそれが当たり前だと思っている
甘やかされて育った人間があれほど厄介な生き物になるとは思わなかった
違う生き物と話しているようで辛い

786デフォルトの名無しさん2017/09/21(木) 20:01:30.88ID:0x00hAVC
デザパタの分かる年寄りより
分からない若いのを雇うのがIT土建屋

787デフォルトの名無しさん2017/09/21(木) 20:13:18.07ID:EmOs9oCs
>>786
若いから安く買えて
工数かかるから高く売れるんだな
サビ残人身売買

788デフォルトの名無しさん2017/09/21(木) 20:18:00.45ID:ffbJfIAO
使い潰してもいくらでも捕獲できるし便利っちゃ便利だわな

789デフォルトの名無しさん2017/09/21(木) 20:18:42.03ID:N1EOCCyb
デザインパターン

790デフォルトの名無しさん2017/09/21(木) 21:59:15.38ID:F/cUryZs
>>775
なんだゆとりか。

つか、君は結局何が言いたいんだ?
> 圧倒的に上達が早い (>>767)
については、俺は既に
> どっちが上達が早いのかは知らん。 (>>762)
と言っているんだから、平行線だし、ここの議論では結論は出ない。
各自が各々の考えを主張できるだけだ。
君がそう思うのなら、君はそうすればいいだけ。俺はそうは思わないから、俺はそうしない。
それ以上でも以下でもないだろ。勝手に切れるゆとりは多いが。

> コードリーディングしてるときは
> 実装のテクニックに目が行きがちだしね
それは君がそうだってだけ。自覚できているのなら、そうならないように気をつけながら読めばいいだけ。

>>785
ゆとりが糞なことについては同意。
てかまじで、>>775とか何が言いたいのか分からん。
同意してくれなきゃヤダってゴネてるのか?としか。
よく見かけるけどね、このパターン。

791デフォルトの名無しさん2017/09/21(木) 22:05:21.29ID:QBtXCTqk
デザパタなんて使わねーよ

792デフォルトの名無しさん2017/09/21(木) 22:53:56.69ID:1e+K8/4+
>>791
使ってることに気づいていないクズ

793デフォルトの名無しさん2017/09/21(木) 23:13:46.19ID:F/cUryZs
>>776
何でもそうだが、デザパタもやりすぎたら手段が目的化するんだよ。>>775とか。
言われてみれば使ってるっていう、>>779位がちょうどいい頃合だと思うよ。

何が問題って、GoF自体が古いからではあるが、今ならもっと単純にできるものが大量に有って、
というかGoFの時点で既にアクロバティック気味で、何がやりたいんだこいつらは?って感じなんだよ。
名前も厨二過ぎてイミフだし。
結局はOOPの文法の全ての組み合わせから、あるあるに厨二な名前をつけただけ、っていう。
例えばコンテナ等でお約束的に使われる「型消去」だが、GoFにはないだろ。
(見落としかもしれんが、それなら「型消去」と直感的な名称の方が断然良いからGoFが使われないだけ)
だからWikiにも書いてある通り、俺は
> デザインパターンをむやみに適用するのは不適切であり、不適切な使用はコードの複雑さを無意味に高めてしまうと注意している。
> 一部のデザインパターンは、プログラミング言語(例: Java, C++)の機能の欠損の印であると主張されることがある。
の側面もかなりあると思うよ。

794デフォルトの名無しさん2017/09/21(木) 23:14:03.96ID:F/cUryZs
>>776(続き)
ただ、使ってる/使ってないと言えば、それは確実に使っている。
既に言ったがストラテジーは継承そのものだから、OOPならほぼ間違いなく使うし、
オブザーバーってのはフレームワークのイベントモデルがこれ(.NETとHTMLはそう)なので、
例えばC#やJavaScriptにおいてこれを使ってないというのはありえない。(自覚しているかどうかは別)
なおJavaScriptはこれを言語自体にも取り込もうとしたが、いいところまで行って頓挫した。
https://www.html5rocks.com/ja/tutorials/es7/observe/
本当に頻出なら言語で直接サポートした方が便利だから、そうなって行くものなんだよ。
それがイテレータであってね。
だから、この類の「言語新機能」を追いかけていても、頻出パターンについては自然と学習することになる。
GoFは1995だし、それからソフトウェア工学も進歩しなかったわけではない。(Javaは10年間進歩しなかったが)
新しい言語は分かりきっている問題に対しては対策をしてくる。
そしてGoは「継承はいらない」という彼らなりの結論を出してる。
GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。

> ちなみに我輩はしがない流れ者の派遣プログラマー(プログラム設計もやってます)です。
君がここら辺の話について来れないのなら、とりあえずまず読んでみろ、ではある。
それでどう思うかは君の自由だ。

多分結局は適性なんだよ。パターンから選ぶほうが楽なら積極的に使えばいい。
俺にはデザパタは粒度が大きすぎる。自分で継承/匿名関数等を使って組み上げるほうが楽だ。(というより直感的)
ただし結果的には同じようなことになっているとも思うが。

795デフォルトの名無しさん2017/09/21(木) 23:55:29.08ID:2yneGSNP
ストラテジーが継承そのものってどういう意味?

HTMLのイベントモデルがオブザーバーってどういうこと?

796デフォルトの名無しさん2017/09/22(金) 00:00:17.04ID:kB3Gqsn3
>>794
> そしてGoは「継承はいらない」という彼らなりの結論を出してる。
> GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。

いまでもGoFを学ぶ意味があると言うと、盲信してることにされちゃうんだね
ということは、Goの出した結論をGoを指示する人は盲信してるの?

まぁGoが正しいわけじゃないし、SwiftやScalaが出した答えも考える価値があるね

797デフォルトの名無しさん2017/09/22(金) 00:31:51.44ID:sr7lvu8c
>>796
> まぁGoが正しいわけじゃないし、SwiftやScalaが出した答えも考える価値があるね
その通りだ。俺は自分で考えろと言っているだけだ。

GoFが古いのは事実だ。
その間にソフトウェア工学が進歩していると仮定するなら、当然問題は解決されてくる。
実際そうなっているわけでね。
メジャー言語では、Javaは例外的に全く進歩してないが、
他言語(C++/C#/JavaScript)はなんだかんだで色々試行しているよ。

俺自身、継承はちょっと結合が強すぎるとは感じる。
ただ全部委譲の方がいいか?と言われれば、どうかな?とも思うが。
とはいえ、「全部委譲でよし、継承イラネ」ってのは2chでも散見されるだろ。

で、君はSwiftやScalaを知っているんだろ?それはどうなっているんだ?

798デフォルトの名無しさん2017/09/22(金) 00:32:11.77ID:Nn2M/THg
>>794
> そしてGoは「継承はいらない」という彼らなりの結論を出してる。
> GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。

継承という文法がなくても
継承を別の方法で実装できるからでしょ?

「継承はいらない」ではなく「継承を直接行うための文法はいらない」が正しい
そしてGoでも継承自体はやる。

799デフォルトの名無しさん2017/09/22(金) 00:38:17.90ID:9s7VGfiV
ほんと、ストラテジーが継承そのものってどういうことよ??
最近はOOでも関数を渡せる言語が増えてきたから
ストラテジーの実装は継承使わないほうが多いと思うぞ

古臭いGoFをそのまま学ぶ必要はないだろうが
単に各パターンを知る・使えるようになることよりも
パターンを通してOOの設計原則を学ぶことが重要

800デフォルトの名無しさん2017/09/22(金) 09:48:55.51ID:eeRMTLx0
アラン・ケイやGoFのデザパタに触れるとスレが荒れるということは分かった

801デフォルトの名無しさん2017/09/22(金) 11:19:40.04ID:b6yHr9//
名前がついてるものの中でも
クイックソートやB+Tree、線形補完でスレが荒れるなど聞いたことないし
やはり何か根本的に微妙なんだろうな

802デフォルトの名無しさん2017/09/22(金) 12:09:12.17ID:z4GP1i1k
良し悪しを証明出来ないからだろう
アルゴリズムのオーダーとかなら数学で証明できるから議論の余地がない
数学的に曖昧なものほどバカでも議論に入る余地があるから調子乗って参加しちゃう
こういう議論でしか話せないんだよバカは

803デフォルトの名無しさん2017/09/22(金) 12:52:53.21ID:gDV2cvxW
クイックソートでも再帰を使えないアホウが発狂するぞ
どんなネタでも発狂するキチガイは存在する

804デフォルトの名無しさん2017/09/22(金) 14:02:03.76ID:juWn7/fD
再帰なんてわかんなかったら繰り返しになるまでコード書いて見ればいい
繰り返し部分を関数にすれば作成完了だ

しかし、スタックオーバーフローで死ぬ
ここまでがワンセンテンスだ

805デフォルトの名無しさん2017/09/22(金) 14:30:09.14ID:b6yHr9//
要は名前を付けるほどの物でも無かったんじゃね、説

806デフォルトの名無しさん2017/09/22(金) 14:39:52.97ID:b6yHr9//
例えばクイックソートなんか、明らかに名前を付けるに値する人類の英知でしょ
ちょっと自分では思いつかないかもしれないし
誰でも真っ先に思いつきそうなセレクションソートなんかと比べれば効果は劇的だし
動きも複雑っちゃ複雑なところもあるから、人に説明するのも大変でしょ
だからクイックソートは絶対名前を付けて共有したほうが良い
それと比べてどーなんかなーという

807デフォルトの名無しさん2017/09/22(金) 15:05:58.23ID:kB3Gqsn3
じゃあバブルソートとかリニアサーチは名前つけるほど大層なもんでもないから、先頭からひとつずつ見ていくやつ、みたいな感じで表現すればいっか

808デフォルトの名無しさん2017/09/22(金) 15:53:34.28ID:b6yHr9//
基本的には名前が知られて有名になっていく過程というものが有るんじゃないかと
その自然的プロセスをすっ飛ばして
良くありそうなアルアルに名前を付けます、俺の独断と偏見でな!
ってのがね

809デフォルトの名無しさん2017/09/22(金) 21:46:42.33ID:9s7VGfiV
パターンに名前を付けることの価値がわからない人には
オブジェクト指向は向いてないんじゃね?

a, b, x, y, t1, t2みたいな命名しとけばいいと思うわ

810デフォルトの名無しさん2017/09/22(金) 22:19:39.92ID:sr7lvu8c
>>801
俺自身は単品の説明は必要だと思っている。例えば、
・継承/インタフェース/委譲/関数ポインタ/匿名関数/クロージャはそれぞれこういう場合にこう使う
ところがデザインパターンはこれらの組み合わせであり、
・ここで継承、ここは委譲してこう組み合わせる、これが○○パターン(キリッ ←うぜー
バリエーションで無駄に名前を増やしすぎている。>>738のとおり、
・(いわゆる)ファクトリメソッド(A)
・Factory Methodパターン(B)
・Abstract Factoryパターン(C)
なら(A)->(B)->(C)のアップグレードは自明であり、別々に名前をつける必要はない。
(だから混同されているし、また逆に、混同してても問題ないから混同されたまま、とも言える)
GoFからして水増し感ありまくり。半分くらいリストラ出来るんじゃないか?真面目に見たことはないが。

そういえばJavaScriptのIndexedDBはAPIがFactoryになっている。
まあこれに意味があるのかは疑問ではあるが。
https://developer.mozilla.org/ja/docs/Web/API/IDBFactory
あと、Proxyパターンは標準化済みだ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Proxy
いずれにしても頻出パターンは受動的にも学べる。

811デフォルトの名無しさん2017/09/22(金) 22:20:48.95ID:Sr724cYm
パァーン

812デフォルトの名無しさん2017/09/22(金) 22:21:11.90ID:sr7lvu8c
>>802
プログラミングは暗記だ!と思っている文系の馬鹿がすがるからだろ。
彼らにとっては、自分達が「上級者」だと証明するものは記憶したデザインパターンの個数しか無く、
そんなもの無意味だ、と言われて発狂してるだけ。
上記の遠り、俺は何度も「何故意味がないか」を具体的に説明しているが、
彼らは感情的にしか反論できてない。これがまた彼らの馬鹿っぷりを証明している。

本来は経験の差を知識で埋め、初心者→熟練者にジャンプアップさせることが目的だった。
これは表面的には達成できるんだけど、やっぱり中身は初心者のままで、考え方がずれてるんだよ。
しかしそのメッキしただけのまがい物が上級者ぶって語るからおかしなことになる。

ただまあ、デザパタ議論をしているだけでもマシな方だ。
JavaScriptはネット見てるだけでマジでカオスで、ろくなコードはないし、でたらめを主張する奴も普通にいる。
現場は壮絶な状態だというのは想像に難くない。
あいつら、jQueryが使えたら達人扱いっぽいのだが、jQueryってCでいうprintfだからな。

813デフォルトの名無しさん2017/09/22(金) 23:15:39.67ID:sr7lvu8c
>>808
名前を付けるのは基本的にはいいことなんだが、直感的じゃ無いと駄目なんだ。
これはmemeと同じで、みんなが妥当だと思わないと広まらないんだよ。
(これが君の言う「自然的プロセス」で、つまり自然淘汰されただけとも言える)

ストラテジーパターン、アダプターパターン、デコレーターパターン、ビジターパターンとか言われても、は?だろ。
バブルソート、クイックソート、リニアサーチ、バイナリサーチってのはそのものずばりだ。
>>807みたいな馬鹿にはそれすら分からないらしいが。

ところで>>807、お前は早くSwiftとScalaの説明しろ。

814デフォルトの名無しさん2017/09/23(土) 00:15:19.15ID:47xDJ4SG
愚にもつかない長文を一生懸命連投するメンタリティが悲しい

815デフォルトの名無しさん2017/09/23(土) 00:25:56.13ID:47xDJ4SG
愚にもつかない長文を一生懸命連投するメンタリティが悲しい

816デフォルトの名無しさん2017/09/23(土) 03:16:02.43ID:PZVogj5V
>>814>>815
書き込めたかどうか確認することすらできない人はそう言った

817デフォルトの名無しさん2017/09/23(土) 03:56:40.05ID:3Bk8qYPA
>>813
クイックソートのどこがそのものなんだ?
単に「速いソート」って名乗ってるだけだろ

クイックソートよりも速いアルゴリズムを採用して
「超速いソート」と名付けたらそのものズバリだと思うか?

超速いソートという名前からどんなアルゴリズムを想像するよ?

818デフォルトの名無しさん2017/09/23(土) 05:07:06.10ID:Tcv0uwXr
デザインしたことたいやつにはわからんよ

819デフォルトの名無しさん2017/09/23(土) 05:07:31.96ID:Tcv0uwXr
デザインしたことないやつにはわからんよ

820デフォルトの名無しさん2017/09/23(土) 09:00:59.54ID:Z1NsXN0c
>>817
ゆとり死ね

>>808
そういえば、実際に頻出だと名前が無いと困るので、別の名前が付いてる。

多態(ポリモーフィズム)=ストラテジーパターン
ラッパ=アダプターパターン(だと思う)
グローバル≒シングルトンパターン
包含/委譲=コンポジットパターン
○○プール(スレッドプール等)=フライウエイトパターン
構造体渡し=コマンドパターン(ただしこれはCでは日常的過ぎてパターンだとも認識されてない)

元々有った物については、イテレータ等同じ名前でないものはデザパタ側の名前がアホ過ぎてスルーされてる。
例外的にsingletonは使われているが、これはglobal=悪というJava教ではなぜかsingleton=善とされているから。
(適用範囲はほぼ同じ。実は駄目っぷりもほぼ同じなのだがスルーされてる。
坊主がウサギを鳥だと言い張って食ったようなもの。)

ぱっと見た感じはこんなもんか?
俺はデザパタの名前は普段使って無いから間違ってるかもしれんが。

821デフォルトの名無しさん2017/09/23(土) 09:08:00.24ID:Z0Kw+Iw9
全然イコールじゃなくてわろた

822デフォルトの名無しさん2017/09/23(土) 09:28:01.41ID:nAanI8EG
長文書く奴はバカの法則

823デフォルトの名無しさん2017/09/23(土) 09:34:12.45ID:lJTicCY1
クラス、変数名全部頭にunkoってつけてやる

824デフォルトの名無しさん2017/09/23(土) 09:45:25.48ID:Z1NsXN0c
3行しか読めない馬鹿はマジでプログラマ辞めて自殺してくれ。
絶対に上達しないし、糞コード量産されるだけで迷惑だ。
つか、普段から仕様書なり解説記事なり読んでないの丸分かりだし。

825デフォルトの名無しさん2017/09/23(土) 10:49:54.45ID:7PRDVMsP
>>824
でもお前の文章が冗長なのも事実だ

826デフォルトの名無しさん2017/09/23(土) 10:57:31.46ID:zdCb7/9/
>>824
伝わらないことを他人のせいにしてんじゃないよ
長くても読みやすい文章はいくらでもあるけどおまえはそうじゃない

827デフォルトの名無しさん2017/09/23(土) 11:11:51.31ID:pHSma+nn
下らん長文書く奴はたいていわけわからん仕様書書く

828デフォルトの名無しさん2017/09/23(土) 11:17:26.32ID:Jh9lXn4N
自分だけはバカじゃないという前提

829デフォルトの名無しさん2017/09/23(土) 11:21:38.27ID:Z0Kw+Iw9
ゴミみたいな長文を書くウジ虫はコードも長い
平気な顔して10行20行の関数を書く

830デフォルトの名無しさん2017/09/23(土) 11:59:27.08ID:g84quUgG
パターンとかなんでも名前ついてるじゃん
reduxとかpromiseとかgit flowとか
頻出だったら名前が必要でそうでなければ不要とか、主張の意図がわからんわw
名前があったら困るのかw

831デフォルトの名無しさん2017/09/23(土) 12:07:41.55ID:Z1NsXN0c
やはりゆとりは殺すべき。
根本的に勘違いしている。長文のほうが簡単なんだが。

832デフォルトの名無しさん2017/09/23(土) 12:09:39.94ID:Z0Kw+Iw9
>>831
BaKa

833デフォルトの名無しさん2017/09/23(土) 12:10:13.25ID:Z1NsXN0c
>>830
> reduxとかpromiseとかgit flowとか

834デフォルトの名無しさん2017/09/23(土) 12:15:27.16ID:qINfq2L1
>>831
長文はキチガイ

835デフォルトの名無しさん2017/09/23(土) 12:34:46.78ID:47xDJ4SG
長文自体が問題でもあるけどこの場合
「愚にも付かない」長文を「一生懸命連投」しちゃってるところが涙を誘う
小学生の九九暗唱連呼なら、しつこくても間違ってても、まだ微笑ましい

836デフォルトの名無しさん2017/09/23(土) 12:43:54.76ID:Z0Kw+Iw9
長文を書くからボロが出る

837デフォルトの名無しさん2017/09/23(土) 12:56:54.86ID:Z1NsXN0c
既に言ったが俺は>>775の意図が理解出来ない
文才溢れるゆとりによる適切な解説を求む

838デフォルトの名無しさん2017/09/23(土) 14:04:19.43ID:0ADpWaV5

839デフォルトの名無しさん2017/09/23(土) 14:34:52.76ID:vbQ5UjHD
俺はデザパタ知らないし話についていけてないけど
それでも長文書くやつはバカだろ
長文書いただけで、そいつが言ってることが
間違いだってわかる=デザパタはクソ

840デフォルトの名無しさん2017/09/23(土) 14:40:40.69ID:ghlB+mQW
>>839
長文嫌いなの?

841デフォルトの名無しさん2017/09/23(土) 14:44:31.43ID:OVoD4rc5
ディベートのテクニックの一つだよ
相手が長文で攻めてきたら
長文はキモいの一言で
で相手の理論を論破できる

842デフォルトの名無しさん2017/09/23(土) 14:48:58.43ID:Z0Kw+Iw9
要点を絞れない
簡潔に説明できない
長文はアホの得意技

843デフォルトの名無しさん2017/09/23(土) 14:49:33.57ID:j6VCxv0o
>だからデザパタ単体で学習した方が整理される言語を学んでいるときは
>パターンより文法にコードリーディングしてるときは
>実装のテクニックに目が行きがちだしね

なるほど、確かに何言ってるか分からんな

844デフォルトの名無しさん2017/09/23(土) 14:54:26.06ID:OVoD4rc5
>>842
それもディベートでよく使う。
基本相手の発言は遮って自分の発言で上書きするのが
テレビでもよく使われるテクニックだが、

相手がなにか言ってしまったら、
要点を絞ってもう一回発言してくださいと
逆に相手に同じことを言わせるというテクニックもある。

このテクニックをうまく使うと、要点を絞らせるから
相手がいいたいことを減らすことができる。

845デフォルトの名無しさん2017/09/23(土) 15:20:32.55ID:PshCXG8Z
×デザパタ
○デザインパターン

846デフォルトの名無しさん2017/09/23(土) 15:24:18.47ID:Z1NsXN0c
>>839
俺は「デザパタはクソ」派なんだが

847デフォルトの名無しさん2017/09/23(土) 15:25:09.29ID:qWNtk5Ea
長文書く奴は脳が女の脳してるからプログラムには向いてないんだよな。

848デフォルトの名無しさん2017/09/23(土) 15:32:14.50ID:Z1NsXN0c
>>840
ゆとりにとって「長くても読みやすい文章 (>>826)」とはこういうのらしい。
http://news.denfaminicogamer.jp/projectbook/zelda
これは対談なのでこの形式で問題ないとはいえ、やはり冗長感ありで、スレでも指摘されてた。
基本的には頭が悪い(脳内短期記憶バッファが小さい)から、長文を一度に読み込めず、
小学校1,2年生相手のように一つ一つ対話的に説明してくれないと分からないらしい。
(富豪レスではなく貧民レスじゃなきゃダメ)

ついでにScalaの説明をする奴がいないので少し調べているところだが、
Scala以前については大体これであってるな。
http://rirakkumya.hatenablog.com/entry/2013/04/20/093044

>>842
最近、その手の詭弁テクニックを使う奴激増したよな?
印象も重要なリアルのディベートならさておき、
ここでやる意味は全くないから意味不明なのだが、なんでだか分かる?

849デフォルトの名無しさん2017/09/23(土) 15:38:26.88ID:PFKg/P6i
>>820
その等式、マジで全部間違ってるよ

850デフォルトの名無しさん2017/09/23(土) 15:39:56.99ID:Z1NsXN0c
>>842
> 要点を絞ってもう一回発言してくださいと
> 逆に相手に同じことを言わせるというテクニックもある。
ちなみにこれ思い出した。
> プレゼンで一つ前のスライドに戻すように頼む
> http://netgeek.biz/archives/88894

851デフォルトの名無しさん2017/09/23(土) 15:40:40.91ID:qWNtk5Ea
曖昧で冗長で不正確で理解しにくいの4拍子そろってるな。

852デフォルトの名無しさん2017/09/23(土) 15:46:15.97ID:Z1NsXN0c
>>849
なら君なりの等式を書いて議論を進めて、どうぞ。

というかマジでお前ら、それで何とかなってるのか?
リアルで詭弁論法使う奴がいたら俺はそれ以降相手にしないんだが。

853デフォルトの名無しさん2017/09/23(土) 16:37:32.08ID:47xDJ4SG
お前ら、この状況をよく観察しろよ
そして、スルーの使い時を学ぶんだ

854デフォルトの名無しさん2017/09/23(土) 16:42:14.21ID:zdCb7/9/
>>848
読み辛いよ

855デフォルトの名無しさん2017/09/23(土) 16:57:16.97ID:Z1NsXN0c
>>854
では君が思う「長くても読みやすい文章」の例示よろ

856デフォルトの名無しさん2017/09/23(土) 16:59:16.70ID:zdCb7/9/
え、やだ

857デフォルトの名無しさん2017/09/23(土) 17:00:49.62ID:lJTicCY1
>>855
長くする意味がわからんw
ちょうどいい長さでレスしろよw

858デフォルトの名無しさん2017/09/23(土) 17:58:20.11ID:Z1NsXN0c
そういえば.NETはオブザーバーは標準化済みでユーザタイプeventで使えたわ。
https://msdn.microsoft.com/ja-jp/library/edzehd2t(v=vs.110).aspx

859デフォルトの名無しさん2017/09/23(土) 20:29:44.01ID:b6I3iAXW
>>794
>ストラテジーは継承そのもの
ストラテジーは委譲だよ
継承そのものと言えるのは
テンプレートメソッドの方

デザパタの基本じゃないか

>ここら辺の話について来れないのなら
上から目線で言ってて
間違ってりゃ世話ないな!

860デフォルトの名無しさん2017/09/23(土) 22:48:39.47ID:Z1NsXN0c
>>859
テンプレートメソッドパターンは本来は依存関係なしのコード共通化=C++のテンプレート、C#のジェネリック
のような気がするが、まあそれならそれでよし。

・多態(継承/委譲)=テンプレートメソッドパターン、ストラテジーパターン、コンポジットパターン
・ファクトリーの多態=アブストラクトファクトリーパターン

で、これらは現在、ほぼ全ての場合に左側の用語が使われ、デザパタ用語はリストラ済みの認識でいいか?

861デフォルトの名無しさん2017/09/23(土) 22:50:48.00ID:0YQdpVUK
Smalltalkの話すると荒れるのなんで?

862デフォルトの名無しさん2017/09/23(土) 23:12:24.68ID:b6I3iAXW
>>860
>テンプレートメソッドパターン
>C++のテンプレート、C#のジェネリック
デザインパターンのテンプレートと
ジェネリックのテンプレートは関係ない

ジェネリックは型を汎用的に扱う仕組み
デザパタの方は処理を継承で共通化する仕組み


>ほぼ全ての場合に左側の用語が使われ
その確信の根拠はどこから来てるの?

多態はデザパタとは別の概念で
イコールで使われるようなものじゃないだろ

コンポジットパターンのことを指して
多態って言われても意味分からん

863デフォルトの名無しさん2017/09/23(土) 23:14:18.84ID:b6I3iAXW
>>861
Smalltalkerは
どうしてもOO原理主義的になりがちだから

どんな分野でも原理主義は衝突と摩擦を招く
関数型原理主義とかでも荒れるだろ?

864デフォルトの名無しさん2017/09/23(土) 23:15:33.02ID:OVoD4rc5
>>861
SmalltalkはOSと言語が合体している独自の世界だから

Smalltalk実行環境(=OS=開発環境)のみがコンピュータ上で動いており
Smalltalk実行環境は電源を消すまで動作しているという前提の話をするから
言語だけの話にならない。

例えば開発した新しいプログラムをOS上で起動するというのは
Smalltalkの世界では、Smalltalk実行環境上で新しいクラスを作って呼び出すということで
プログラムを一旦終了してバグを修正して再起動するということは
Smalltalkの世界では、ではクラスを動的に変更するということになる。

このように一般的なOSでは、プログラムの作成や修正という当たり前にできることが
Smalltakでは「オブジェクトは遅延結合が必要で動的に変更できなければならない」という
根拠になってしまっているから、お前らの世界では遅延結合や動的が必須なのだろうけど、
そのマイナーな世界を押し付けるな。そんなものはなくてもできる。という感じで荒れる

865デフォルトの名無しさん2017/09/23(土) 23:33:54.47ID:PFKg/P6i
>>861
良いSmalltalkerと悪いSmalltalkerがいて
このスレには後者が住んでるから

ケント・ベック、ウォード・カニンガム、エリック・エヴァンス、ラルフ・ジョンソンらは
Smalltalkを垣根を越えてこの世界に影響を与えた人達
日本だと羽生田さんとか

悪いSmalltalkerはSmalltalkの世界観に閉じこもって現実を見ない
技術力が無いから他に生かせないというのもある

866デフォルトの名無しさん2017/09/23(土) 23:42:38.26ID:Z1NsXN0c
>>862
C++のテンプレートなら、
継承関係ないクラスの同じ名前のメソッドを呼び出し側は共通に使えるんだよ。
静的ダックタイピングと言えば分かるか?
Javaはこれが出来ないから継承ありきになるだけであって。

> >ほぼ全ての場合に左側の用語が使われ
> その確信の根拠はどこから来てるの?
だって見たことないし。
ネットでも継承/委譲議論は見かけるが、わざわざデザパタ用語使ってる奴はいないだろ。
余計に分かりにくくなるだけだし。
元々>>703の質問がこれだが、君はリアルで使っているのか?

> 多態はデザパタとは別の概念で
> イコールで使われるようなものじゃないだろ
多態自体が本来はパターン(多態パターン)で、これはオブザーバー/ファクトリー/フライウエイト等と並べられるだろ。
継承/委譲は多態の実装方法であって、それらの組み合わせで○○パターンとか無駄に水増しするからデザパタはダメなんだよ。

867デフォルトの名無しさん2017/09/23(土) 23:49:02.66ID:Z0Kw+Iw9
やはり長文はアホ
また証明されてしまったね

868デフォルトの名無しさん2017/09/23(土) 23:57:20.81ID:zdCb7/9/
そりゃまとめる力がないからな

869デフォルトの名無しさん2017/09/24(日) 00:10:40.58ID:rk9buIU7
まず自分の考えが正しいというのが第一にあって、そこに無理矢理デザパタの思想を当てはめようとするから、
なに言ってんだこいつ、みたいになる
誰だよお前、お前が考えてることなんて知らねえよ、お前の考え基準で説明されてもわかんねえよハゲっていう

870デフォルトの名無しさん2017/09/24(日) 00:34:29.86ID:d6JjhuPW
ハゲじゃねーよ!

871デフォルトの名無しさん2017/09/24(日) 00:35:18.57ID:UM3Vm/oL
薄いだけだもんな

872デフォルトの名無しさん2017/09/24(日) 01:09:02.05ID:ZoycLPfe
>>866
>余計に分かりにくくなるだけだし
オレオレ用語の方が分かりにくいと思うが

長文の応酬だるいから
>>820
に戻ってひとつだけ言うと

>構造体渡し=コマンドパターン
こんなのこのスレで初めて見たぞ

同じようなこと言ってる
人でも本でもサイトでもいいけどいるの?

なんか用語や概念が自分勝手すぎて
議論が噛み合わない


>>869
>お前の考え基準で説明されてもわかんねえよ
だよな

「お前の中ではそうなんだろうな」としか思えないよな

873デフォルトの名無しさん2017/09/24(日) 01:11:16.00ID:3BjqQEbI
まあまあ落ち着けよ、ハゲ同士で喧嘩すんなって

874デフォルトの名無しさん2017/09/24(日) 01:34:59.31ID:R8lp94JX
>>872
それは既に書いただろ。日常的過ぎて言及されないが、あえて言うならそうだと。
Cでは(というか他言語も一般的にそうだが)引数が増え過ぎたら構造体にして見た目単純化するんだよ。
こんなのパターン(キリッされても困るわ。

それに文句言うのなら、ネット上でデザパタ用語使って制御構造議論してる奴探してこいよ。
俺は見たことないぞマジで。

ただまあ、平行線なら平行線でいいよ。
君は君の意思でデザパタを学び続ければいいだけだし、俺が同意する必要すらない。

875デフォルトの名無しさん2017/09/24(日) 01:51:31.62ID:d6JjhuPW
なんてことはない >>820
右がパターン(やりたいこと)で
左がその実装方法(の一つ)ってだけ

876デフォルトの名無しさん2017/09/24(日) 01:53:02.97ID:d6JjhuPW
例えば、

if = 条件分岐制御
for = ループ処理

みたいなことだよ。

877デフォルトの名無しさん2017/09/24(日) 01:53:22.66ID:uS0xIQvj
>>874
>Cでは(というか他言語も一般的にそうだが)引数が増え過ぎたら構造体にして見た目単純化するんだよ。

それコマンドパターンと全く何の関係もないから
みんなツッコんでんだろ

878デフォルトの名無しさん2017/09/24(日) 01:54:33.21ID:uS0xIQvj
>>875
え? え?

879デフォルトの名無しさん2017/09/24(日) 01:57:08.64ID:d6JjhuPW
もちろん>>820で書いている左の実装方法は劣化版。
右にで書いてあるパターンは、もっと多くの要求に対して
スマートな解決策を示しているが、

>>820左の実装方法はパターンで要求しているものの
一部部分しか満たせていない。

もちろん実際にはそれほどの要求は求められていないことが多く
左の実装方法で実現できるある程度のことで十分であることも多い

だけど、所詮左に書いてあるのはパターンの
簡易な実装でしか無い

880デフォルトの名無しさん2017/09/24(日) 02:02:05.28ID:d6JjhuPW
例えば

グローバル=シングルトン
というのは

まず>>820の盛大な勘違いを訂正しておくが、世の中で悪と言われているのは
グローバル「変数」であってグローバル「関数」やグローバル「オブジェクト」ではないということ

グローバル変数のどこがダメかというと、どこからでも
その変数に好きな値を入れてしまえるということ
(変数の型にあったものしか入れられないという制約は有るものの)

グローバル関数はそもそも値を入れるものではないし、
グローバルオブジェクトはpublic変数なんてものは当然禁止で
関数経由で代入するので自由な値は入れられない。

そういった制限ができない時点でグローバル変数では
シングルトンの代替にはならないが、
小規模プログラムで、気をつけて使えばシングルトンの
代わりにならないことはないという点で
かろうじてグローバルでも実装可能

881デフォルトの名無しさん2017/09/24(日) 02:07:55.77ID:d6JjhuPW
> 構造体渡し=コマンドパターン(ただしこれはCでは日常的過ぎてパターンだとも認識されてない)
「構造体渡し」というのが(実装レベルの)パターンの名前だよ

構造体があるのは一部の言語で、通常はクラスのインスタンス(=オブジェクト)渡しということになる。
要するに引き数をオブジェクトにするということ。

つまり引き数が多いから、コマンドパターンを使いましょう。
=引き数をオブジェクトにして実装するということですね!

ということで、パターンがやりたいことで
実装方法がオブジェクトだったり構造体だったりするということ

構造体渡しというのはあくまでオブジェクトがないC言語での実装方法であって
反対に構造体がない言語ではオブジェクト渡しとなる。

その2つを抽象化したものがコマンドパターン。
例えば言語が決定してない時点で構造体渡しを使いましょうなんて言えないじゃないか
構造街があるかないかわからんのだから

だから設計時点での言い方として「構造体渡しという実装方法の名前」ではなく
「コマンドパターンという名前」を用いる

882デフォルトの名無しさん2017/09/24(日) 02:15:14.31ID:d6JjhuPW
> ラッパ=アダプターパターン(だと思う)

これは>>820の勘違いがよく分かる例だな

アダプタパターンというのは、
電源アダプタと同じく、どんな電気機器でも
アダプタを使えばコンセントにさせるということで、
互換性がないものを、ある共通のインターフェースに
適合できるように変換するもののことを指す。

だからラッパという手段を用いることで
アダプタパターンを実装できるが、

だがラッパというのは別にある共通のインターフェースに
適合させる必要はない

あるライブラリがC言語用のAPIしか備えておらず
オブジェクト指向的には使いづらいから、APIのラッパを
作ってオブジェクト指向風に使えるようにするなんてのもある。

これはラッパは必ずしもアダプタパターンが要求している、
ある共通のインターフェースに適合させるなんてことはしていないが、
ラッパを使ってもできる場合があるということでやっぱり実装方法の話題なのさ

883デフォルトの名無しさん2017/09/24(日) 02:25:31.82ID:ZoycLPfe
>>881
>つまり引き数が多いから、コマンドパターンを使いましょう
眠いから要点だけ言うが
引数を圧縮したいだけなら配列渡しでもいい場合があるよな
逆にコマンドパターンは引数がひとつでも使う場合もある

コマンドパターンはもっと汎用的な抽象化技法で
要求をオブジェクトにすることで
アンドゥの挙動が実現できたりする

884デフォルトの名無しさん2017/09/24(日) 02:28:03.87ID:uS0xIQvj
>>881
その説明コマンドパターンと何の関係ないよ
完全に勘違いしてるのでググって

885デフォルトの名無しさん2017/09/24(日) 02:32:19.28ID:d6JjhuPW
はい。ググって正しいことを証明します。

http://www.techscore.com/tech/DesignPattern/Command.html/

第22章ではCommandパターンを学びます。あるオブジェクトに対して要求を送るということは、
そのオブジェクトのメソッドを呼び出すことと同じです。
そして、メソッドにどのような引数を渡すか、ということによって要求の内容は表現されます。
さまざまな要求を送ろうとすると、引数の数や種類を増やさなければなりませんが、
それには限界があります。そこで要求自体をオブジェクトにしてしまい、
そのオブジェクトを引数に渡すようにします。それがCommandパターンです。

886デフォルトの名無しさん2017/09/24(日) 02:51:01.08ID:uS0xIQvj
>>885
その説明文自体が悪いし書いてるコードも理解してないだろ
これ見てざっくり理解して
http://python-3-patterns-idioms-test.readthedocs.io/en/latest/FunctionObjects.html#command-choosing-the-operation-at-runtime

それ理解したらundoが入ってる例を探すといい
タスクをキューに入れる場合なんかにもよく使われてる

887デフォルトの名無しさん2017/09/24(日) 05:14:10.07ID:5g9dg2+V
>>861
使えない人がいるから

888デフォルトの名無しさん2017/09/24(日) 07:10:11.71ID:8QRYtBFv
デザパタは現場で使ってない

889デフォルトの名無しさん2017/09/24(日) 08:08:05.85ID:Oc3oIVgi
相変わらず低レベルなやつほど長文で連投するねこのスレ

890デフォルトの名無しさん2017/09/24(日) 08:19:44.51ID:8QRYtBFv
ホントだよ
現場ではデザパタなんて使ってないっていうのに

891デフォルトの名無しさん2017/09/24(日) 09:46:34.11ID:asf3lmyK
>>889
自分が何を知っていて何を知っていないかにすら無自覚だから
知らないところを無意識に嘘や想像や見栄で補って膨らませて
フワフワの長文合戦になる

十分な知識かマナーがあれば、どちらかがあれば、こうはならない

892デフォルトの名無しさん2017/09/24(日) 09:52:22.19ID:L7/sMAP/
でも自分で思ってるコマンドパターンが明らかに間違ってて
もう恥ずかしくて出てこれないでしょ
構造体渡し=コマンドパターン とか初めて見たわ

893デフォルトの名無しさん2017/09/24(日) 10:06:43.49ID:R8lp94JX
>>880
君がグローバルの問題を全く理解してないことは分かった。
ただこれは君がグローバルを使ったことが無いことを意味しており、悪いことではない。

>>881
「構造体」を適宜「オブジェクト」に読み替えられないのはゆとりだけ

>>882
「ラッパ」で問題なく通じるのに特殊限定した「アダプターパターン」と言い換える意味はない。

>>886
・関数ポインタ/関数オブジェクト=コマンドパターン
やっぱデザパタ用語って死語じゃん

894デフォルトの名無しさん2017/09/24(日) 10:10:41.01ID:R8lp94JX
>>886、訂正
・関数ポインタ/関数オブジェクト/callback=コマンドパターン
> Design Patterns says that “Commands are an object-oriented replacement for callbacks.”

895デフォルトの名無しさん2017/09/24(日) 10:22:53.31ID:yvoGeauV
>>890
相撲の決まり手みたいなもので
当人は意識せずに作ってて後からこれは、て分類しているようなものだから
先にパターンありきではないし、パターンを理解していなければ作れないということはない

ただ設計時・作成時に、ここはこのパターンを使う、って明示できる場合には
そのパターン名をモジュールの名前につけることで
設計書の記述を省略できたり、後からコードを見た時に理解しやすくなるという利点がある

896デフォルトの名無しさん2017/09/24(日) 10:28:00.99ID:sQZN3/qk
>>895
正解

てかこんな基本のKも理解できずに
デザパタいらない、デザパタは死んだ、デザパタなんて学習しなくても俺天才(キッ
とか言ってる馬鹿どもは馬鹿なのか?馬鹿w

897デフォルトの名無しさん2017/09/24(日) 10:39:05.39ID:R8lp94JX
>>895
前半は同意だが、、、

> そのパターン名をモジュールの名前につけることで
> 設計書の記述を省略できたり、後からコードを見た時に理解しやすくなるという利点がある
ねーよ。StrategyMyModule とか恥ずかしすぎるし余計分かりにくいわ。

898デフォルトの名無しさん2017/09/24(日) 10:44:17.50ID:dIaNhcU3
>>893
> 君がグローバルの問題を全く理解してないことは分かった。
あんたがグローバルの問題を全く理解してないと言いたいのはわかった。
だが、あんたはその理由を全く言っていないw

899デフォルトの名無しさん2017/09/24(日) 10:45:29.83ID:dIaNhcU3
>>894
> ・関数ポインタ/関数オブジェクト/callback=コマンドパターン

だ、あらそれ、コマンドパターンというパターンを
関数ポインタ/関数オブジェクト/callbackで
実装しますって話だよね?

900デフォルトの名無しさん2017/09/24(日) 10:48:01.59ID:sQZN3/qk
>>897
で、お前は
OrizinaruTensaiHoge
とか付けるんだろ?

神だなw神馬鹿w

901デフォルトの名無しさん2017/09/24(日) 10:48:10.22ID:dIaNhcU3
undoを実装するにはどうしたら良いでしょうか?
正解 コマンドパターンを使います。



undoを実装するにはどうしたら良いでしょうか?
誤答 関数ポインタを使います。
え? 関数ポインタ?

関数オブジェクトも使います。
え? 関数オブジェクト?

コールバックも使います。
え?コールバック?

それらを使って実装します。
だからそれらを使ってどのように実装しますかって話なんですが? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)

902デフォルトの名無しさん2017/09/24(日) 10:49:08.03ID:rk9buIU7
>>897
StrategyMyModuleはないわww

903デフォルトの名無しさん2017/09/24(日) 11:09:57.56ID:sQZN3/qk
ID:R8lp94JX
ラッパでも吹いてろゴミゆとりwwwwwwwwwwwwwwwww

904デフォルトの名無しさん2017/09/24(日) 11:15:24.97ID:R8lp94JX
>>899
俺はデザパタ用語は死語だと言っているだけ。

>>901
> undoを実装するにはどうしたら良いでしょうか?
> 正解 コマンドパターンを使います。
undoに何が必要か全く考えずに、ググって見つけたコードがコマンドパターン(キリッだったんですね。
コピペプログラマ死ね

905デフォルトの名無しさん2017/09/24(日) 11:20:12.29ID:zoxaw5LC
>>893
構造体とオブジェクトの違いがわからない(理解しようとしない)クズ

906デフォルトの名無しさん2017/09/24(日) 11:56:26.32ID:dIaNhcU3
>>904
> undoに何が必要か全く考えずに、

え? よく知られた設計を使わずに
独自で考えるの?無駄じゃない?
だからデザインパターンがあるんでしょ

907デフォルトの名無しさん2017/09/24(日) 11:58:08.61ID:dIaNhcU3
>>904
> 俺はデザパタ用語は死語だと言っているだけ。
今普通に使われてる用語が死語だと言われましても・・・

908デフォルトの名無しさん2017/09/24(日) 12:10:37.74ID:rk9buIU7
>>904
なんとかパターン(キリッ

普通のプログラマがふっつーに語彙として使ってるパターン名を、お前はドヤ顔されてるように感じちゃうからイライラするんだな
勝手にイライラしてる人ってたまにいるけど、お前もそっちだったか

909デフォルトの名無しさん2017/09/24(日) 12:44:49.84ID:5g9dg2+V
これはヤバイ

901 デフォルトの名無しさん sage 2017/09/24(日) 10:48:10.22 ID:dIaNhcU3
undoを実装するにはどうしたら良いでしょうか?
正解 コマンドパターンを使います。

910デフォルトの名無しさん2017/09/24(日) 12:48:49.90ID:dIaNhcU3
そして理由を書かない
いつものパターン(笑)

911デフォルトの名無しさん2017/09/24(日) 12:49:33.29ID:sQZN3/qk
>>904
お前の名前は今日から
「構造体」を適宜「オブジェクト」に読み替え関数ポインタ/関数オブジェクト「ラッパ」パターン
君な

912デフォルトの名無しさん2017/09/24(日) 12:50:06.83ID:sQZN3/qk
>>910
それデザインパターンやん!
いつパタやん!

913デフォルトの名無しさん2017/09/24(日) 12:58:38.50ID:5g9dg2+V
>>910
undoっていったらmementだろ
やったことじゃなくて状態の方を覚えとくんだよ

914デフォルトの名無しさん2017/09/24(日) 12:58:45.83ID:R8lp94JX
>>907-908
とりあえずデザパタ言及以外でデザパタ用語が使われてる例探して来いよ

>>910
ggrks

915デフォルトの名無しさん2017/09/24(日) 13:03:51.26ID:Oc3oIVgi
>>910
またお前か
メメントも知らないカスが粋がるんじゃあない

916デフォルトの名無しさん2017/09/24(日) 13:04:36.29ID:rk9buIU7
>>914
GitHubでパターン名を検索するくらいの知恵もないのか

917デフォルトの名無しさん2017/09/24(日) 13:11:14.14ID:sQZN3/qk
>>914
「構造体」を適宜「オブジェクト」に読み替え関数ポインタ/関数オブジェクト「ラッパ」パターン君
自演パターンはよくないで

918デフォルトの名無しさん2017/09/24(日) 13:17:39.49ID:R8lp94JX
>>913
なるほど以下を見る限り、undoはmementoだな。
http://www.techscore.com/tech/DesignPattern/Memento.html/
とはいえ、デザパタに頼る=デザパタが無いと何も出来ないから、というのはよく分かった。
undoすらパターン提示されないと作れない程馬鹿なのね。

・スナップショット+正方向履歴=メメントパターン
mementoってパターンにする必要ないほどのゴミだろ。この程度でいちいち命名してたらきりがない。

919デフォルトの名無しさん2017/09/24(日) 13:20:45.50ID:rk9buIU7
>>913
> とはいえ、デザパタに頼る=デザパタが無いと何も出来ないから、というのはよく分かった。
> undoすらパターン提示されないと作れない程馬鹿なのね。

そうやって相手の程度を決めつけないと上に立てないほど自信がないのはよくわかった。

って言い返されたいパターン?

920デフォルトの名無しさん2017/09/24(日) 13:21:21.52ID:Oc3oIVgi
マウントパターン

921デフォルトの名無しさん2017/09/24(日) 13:25:26.63ID:dIaNhcU3
>>918
> mementoってパターンにする必要ないほどのゴミだろ。この程度でいちいち命名してたらきりがない。

じゃあmementoって名前を使わずに
mementoの話をしてくださいな。
自分でmementoって言ってるくせになぁw

922デフォルトの名無しさん2017/09/24(日) 13:41:52.80ID:R8lp94JX
デザパタ派はアルゴリズムを考えることを全くせず、既存パターンからコピペすることは分かった。
この場合、パターンは手持ちのカードだから、無理にでも増やそうとするのも分かる。
実際、馬鹿にプログラムさせる場合はこの方が捗るかもしれん。この感覚は俺にはなかった。

923デフォルトの名無しさん2017/09/24(日) 13:49:00.51ID:L7/sMAP/
たしかに、引数が多いのをまとめるために構造体渡しにすることを
コマンドパターンとか言っちゃうオツムの人にとっては
デザインパターンは便利かもしれないね

924デフォルトの名無しさん2017/09/24(日) 13:52:17.29ID:L7/sMAP/
同時に、コマンドパターンを見て
引数が多いのをまとめるために構造体渡しにすることと同一だと
思ってしまうオツムのひとは
デザインパターンを学んでも理解できないわけだから
それ以前の知能が足りてないという意味で役に立たないだろうね
こういう人は本を読んでも、誰かに説明を受けても
理解できない、知識が吸収できない、抽象的なことが理解できない
わけだから、常に場当たり的に対応するしかないね
会話も成り立たないし

925デフォルトの名無しさん2017/09/24(日) 13:57:45.31ID:dIaNhcU3
>>922
> デザパタ派はアルゴリズムを考えることを全くせず、既存パターンからコピペすることは分かった。

いやそりゃそうだろw
設計はアルゴリズムじゃない。
アルゴリズムは処理だが、
設計は構造だ

お前全く分かってないじゃないかw

926デフォルトの名無しさん2017/09/24(日) 14:08:32.54ID:dIaNhcU3
アルゴリズムにも名前ついてるの知らないのかな?

コピペはしませーん。
他の人が作ったアルゴリズムのライブラリを
使うだけだからコピペじゃありませーんって
言うつもりなのだろうか?

927デフォルトの名無しさん2017/09/24(日) 14:31:19.48ID:R8lp94JX
>>926
旧来の貧民プログラマにとってundo実装の第一選択肢は「逆方向履歴」なんだよ。
これがダメな場合は「スナップショット+正方向履歴」になる。
君はこのことにすら気づけない程の馬鹿だ。
しかし、実際、後者のほうが圧倒的に簡単だから、馬鹿には後者を押し付けておけ、というのは合ってるんだよ。

俺はC出身だから「馬鹿はプログラミングするな」という感覚なのだが、
昨今は文系馬鹿もプログラミングする機会があるわけだし、デザパタ洗脳も現実解としてはありなのかもしれん。
出来ない奴に考えさせたら永久にループするからね。
JavaでOOPこそが正義と洗脳するのも似たようなもんだし。

928デフォルトの名無しさん2017/09/24(日) 14:34:09.72ID:dIaNhcU3
>>927
逆方向履歴パターンと
正方向履歴パターンですね?

新しいデザインパターンを考えて
名前をつけましたって言いたいの?

929デフォルトの名無しさん2017/09/24(日) 14:47:05.63ID:99mn0O+v
>>924
いつもの自分の狭い知識でなんとか理解したつもりになろうとして
「だから自動車というのは馬なし馬車だろう?」ってほざく輩の
辺りにまき散らす「めまい感」たるやw

930デフォルトの名無しさん2017/09/24(日) 14:47:11.92ID:R8lp94JX
>>928
上司がお前らを馬鹿と見極めて「デザパタ洗脳」していたとしたら、全て辻褄が合うんだよ。

931デフォルトの名無しさん2017/09/24(日) 14:48:22.76ID:dIaNhcU3
お前ん中ではな(笑)

932デフォルトの名無しさん2017/09/24(日) 15:51:48.82ID:sQZN3/qk
喚くだけの基地害
こんなやつとは絶対に一緒に仕事したくないな

933デフォルトの名無しさん2017/09/24(日) 16:00:01.88ID:/PuckvVk
>>918
undoめっちゃ難しくないか
そのへんのテキストエディタで操作履歴覚えてUndoしてるのとかって
どうやってるのか見当もつかん

934デフォルトの名無しさん2017/09/24(日) 16:08:12.02ID:uS0xIQvj
>>933
undo stack

935デフォルトの名無しさん2017/09/24(日) 16:18:43.21ID:L7/sMAP/
テキストエディタのUndoぐらいならわけない
何処までの操作を1コマンドとするかというのは有るが
まぁできるよこれぐらいは

Redo、Undoでメモリ節約のため差分を取っていく方式なら
全てのデータの変更の差分を取っておかないと上手くいかないが
そのデータが自分の管轄外の外部からも編集可能だった場合は難しい
腕の見せ所

936デフォルトの名無しさん2017/09/24(日) 16:20:14.18ID:L7/sMAP/
つまりは差分を取っていくといっても
外部からも勝手に変更されるので
完ぺきには出来ないから
ある程度ファジーなつくりにする必要があるんだわ

937デフォルトの名無しさん2017/09/24(日) 16:27:00.69ID:L7/sMAP/
例えばA→AB→ABCっていう編集なら
差分を取るのは簡単だし、元に戻すのも簡単だけど
他所のソフトからリアルタイムで「B」が削除されたとして
それは自分のソフトからも検出可能かもしれないが
自分のソフトから「B」を消したわけじゃないから
自分のソフトのUndoコマンドリストに入れるのはおかしな話だし
でも実際「B」は無くなってるわけで・・・
この辺下手にやるとRedo動作で消したはずの「B」が復活したりする
このような場合は若干難しい

938デフォルトの名無しさん2017/09/24(日) 16:53:15.51ID:Oc3oIVgi
>>933
イベントを記録して再生機能をつけるだけ
スーパーファミコン時代からある古典的なテクニックだ

939デフォルトの名無しさん2017/09/24(日) 17:06:20.42ID:gFeQddMX
>>937
undo するんだから外で変更されたって覚えておけばいいだけだろ
そもそもそれ直感に反した動作になりがちだからよほどの理由がないとやらない方がいい

940デフォルトの名無しさん2017/09/24(日) 17:12:54.02ID:R8lp94JX
>>937
無能らしくきちんとメメントパターンにすがれ

941デフォルトの名無しさん2017/09/24(日) 17:47:27.17ID:ZoycLPfe
>>929
>「自動車というのは馬なし馬車」
「コマンドパターンは構造体渡し」って
そういうことだな、言い得て妙

942デフォルトの名無しさん2017/09/24(日) 19:10:06.85ID:sQZN3/qk
デザインパターンを理解し、undo/redoに対してきちんと設計を考え答えられる人

対して、

デザインパターンが理解ない人


940 名前:デフォルトの名無しさん[sage] 投稿日:2017/09/24(日) 17:12:54.02 ID:R8lp94JX [11/11]
>>937
無能らしくきちんとメメントパターンにすがれ


悲しいなぁ

943デフォルトの名無しさん2017/09/24(日) 19:28:13.46ID:L7/sMAP/
>>939
「それは自分のソフトからも検出可能かもしれないが」
とは書いたが、必ずしも検出が現実的に行えるかはわからないし
完璧なリアルタイム性が無くて、後から「変更したよ」
って通知が届くだけかもしれないし
そもそも取りこぼすかもしれないし
こういったことを考えていくと、ある程度ファジーに作っとくしかない
一体何の事例だと言われそうだが、俺の場合はファイルシステムだった
ファイル構成は俺の知らないところで
エクスプローラとかから勝手に変更されたりするから

フォルダ一覧から取得したファイルリストに対して何か編集が出来て
そのファイルリストがリアルタイムで実際のフォルダ構成に従って更新されうる場合

普通であれば、ファイルリストを、「一覧取得時点」での静的な物にしてしまうか
Undo、Redoを諦めるか、のどちらかだが
俺の場合はたまたま両方必要になってしまった
かなり稀なケースだとは思うけど、まぁ面倒だ

944デフォルトの名無しさん2017/09/24(日) 20:07:26.73ID:gFeQddMX
>>943
ファイルシステムなら実行してダメならエラー表示するだけだろ
(どうしてもぶつかる可能性があるから)
>>937の編集とは全然違う話やん

945デフォルトの名無しさん2017/09/24(日) 20:13:27.53ID:R8lp94JX
俺にしたらデザパタ厨はゴミだとよく分かったけどね。

undo/redoするだけなら>>938-939で全く正しい。
履歴はコマンドを保持する形になり、呼び出し形式がコマンドパターンと類似してくる。これが>>886が混同した理由。
なおこのケースでは大半の場合、コマンドには関数ポインタは含まれず、構造体が渡される。
これすら分からない馬鹿が粘着している。
俺だったら内部でテーブルジャンプかハッシュだね。コマンド側から関数ポインタを与えるメリットが無いから。
なおEmacsはここでユーザ関数ポインタを与える構造になっているから、ほぼ無限の拡張能力がある。

>>943は相変わらず全く分からないみたいだが。
要はデザパタ厨はデザパタから一歩離れれば何も出来なくなるわけだ。
元々初心者にメッキを施す為だし、この意味では機能している。
>>933のようにundo出来ないよりは「○○パターン」で実装する奴の方が上と言えば上だ。
しかし俺は>>933を評価したい。理由は上達する可能性があるからだ。

どうすればいいのか?を考え続ければ上達はする。これが>>933だ。
この場合はこれ、を何度続けても、慣れはするが上達はしない。これがデザパタ厨だ。
プログラミング暦だけ長くても全く上達しない奴が偶にいて不思議だったのが、これか。
ただ、undo/redo等は標準的な機能ではあるし、OSS等を参考にすれば脳死済みのデザパタ厨でもある程度戦えるのかもしれん。

946デフォルトの名無しさん2017/09/24(日) 20:17:22.51ID:Oc3oIVgi
バーカ

947デフォルトの名無しさん2017/09/24(日) 20:35:02.81ID:ZoycLPfe
>>945
>プログラミング暦だけ長くても全く上達しない奴
自己紹介パターン

948デフォルトの名無しさん2017/09/24(日) 20:38:27.77ID:ZoycLPfe
日本人のカタカナ英語って
英米人と明らかに発音が違うが

オブジェクト指向を手続き型の中で
解釈するのってそれと似てるな

自分では同じつもりなんだろうけど
ぜんぜん違うんだよ

949デフォルトの名無しさん2017/09/24(日) 20:57:58.94ID:uS0xIQvj
コマンドパターンの適用例の一つとしてundoがあるだけで
undoを実現するために存在してるパターンじゃないよ

undo/redoの実装方式だって一つじゃないんだし状況に応じて設計を選択すればいい
技術力の高い人はその選択が適切に出来る人

950デフォルトの名無しさん2017/09/24(日) 21:10:06.90ID:sQZN3/qk
>>945
おいおい

「構造体」を適宜「オブジェクト」に読み替え関数ポインタ/関数オブジェクト「ラッパ」パターン君が
コマンドパターンなんて言葉使っちゃダメだろ

> デザパタ厨はゴミ
1レスでブーメラン頭に突き刺すとか民主党もビックリだぜ!

951デフォルトの名無しさん2017/09/24(日) 21:18:11.67ID:R8lp94JX
>>949
> コマンドパターンの適用例の一つとしてundoがあるだけで
ちなみに君の中のコマンドパターンの定義は、コマンド内には関数ポインタがあることが必要なのか?
通常のundoなら一番単純な実装はe(EventArgs)をundo stack に積んでいくことであり、
この場合は関数ポインタを保持してないから矛盾するが。

952デフォルトの名無しさん2017/09/24(日) 21:34:19.75ID:6WCXGFDs
お前ら暇そうだな

953デフォルトの名無しさん2017/09/24(日) 21:45:55.89ID:/PuckvVk
テキストエディタとか
操作毎にスナップショット撮るわけにもいかんだろ

オペレーション毎に逆捜査も実装しとんの?
それともうまいこと変更箇所だけ前後を記憶してるのか

954デフォルトの名無しさん2017/09/24(日) 22:31:02.79ID:5g9dg2+V
>>918
頭の中でシュミレーションできる演繹な人なら
逆の作用を実装しなきゃいけないこと、
作用にかかわる環境、DB等も含め保存しとかないと再現できないこと、
が想定できるからcommandのようなものでなく状態の方を保持した方が楽とわかる

数学の公式を暗記する人と、自分で導いたり証明できる人との差だな
そしてわかってる人に説明するときピタゴラスの定理とかいえばいちいち証明せずに簡潔に伝わる
これが共通認識

デザインパターンは演繹と経験の帰納からによるベストプラクティスでもあるが、どこにでも使いたがるゴールデンハンマーアンチパターンもある
お前のように暗記するだけの奴は陥りがち

955デフォルトの名無しさん2017/09/24(日) 22:37:03.69ID:sQZN3/qk
ID:R8lp94JX

パターン暗記人間を馬鹿にしてるのに
自分がパターン暗記のワンパターン人間だったパターン

結局、ただの同族嫌悪パターンだったんだね

956デフォルトの名無しさん2017/09/24(日) 22:43:55.92ID:R8lp94JX
>>954
> 逆の作用を実装しなきゃいけないこと
お前らは本格的に馬鹿だな

957デフォルトの名無しさん2017/09/24(日) 22:55:31.56ID:L7/sMAP/
>>944
それがファイルのリストを編集するんよ
順番を入れ替えたり、属性くわえたり、あれやこれや
例えば順番入れ替えるのに挿入位置と元の位置をインデックスで覚えておくとすると
ファイル一覧が更新されたとき差異が有ったらインデックスがズレるから修正するとかね
(もっとほかの方法もあるけど、単純にインデックスで覚えておくとそうなる、という例え話)
もしくはファイルが消えたと思ったら、ゴミ箱から復活してきたりしたときに
ちゃんと元の編集情報を引き継げるのかとか
そういうのがUndo、Redo全般にまで絡んできてややこしいよね、って話

958デフォルトの名無しさん2017/09/24(日) 23:09:35.85ID:L7/sMAP/
まぁ何か操作されるたびに状態全部丸ごと保存しておくような
アホみたいな実装でもメモリが圧迫しないほど
対象物が小さければ、それが一番簡単だわな
ただ実際には問題になるケースがあるから
逆操作どうのこうのになるんだが
逆操作が面倒なら、操作のうち30回に一回ほど完璧なスナップショットを取って
それ以外は順方向の差分にしておく方法もあるな
巻き戻すときは近場のスナップショットから順方向に差分を展開して求める
動画のキーフレームと差分フレームみたいなものだな
逆操作が要らなくなるから、かなりの負担軽減になるのと
スナップショットの頻度でメモリ使用量のチューニングが効くな

959デフォルトの名無しさん2017/09/24(日) 23:16:13.53ID:L7/sMAP/
業務アプリではUndo、Redoを実装してくれって要望はあまりないんだろうな
大体は何かのエディタとかで必要になる機能だからなぁ
そんな印象を受けた

960デフォルトの名無しさん2017/09/24(日) 23:18:28.72ID:R8lp94JX
>>958
> まぁ何か操作されるたびに状態全部丸ごと保存しておくような
お前も相当にアホだな。デザパタ厨なんてこんなもんのようだが。
つか、レス読めよマジで。

961デフォルトの名無しさん2017/09/24(日) 23:34:49.79ID:dIaNhcU3
結局のところコマンドパターンを使えばいいんでしょう?

962デフォルトの名無しさん2017/09/24(日) 23:38:10.28ID:gFeQddMX
>>957
もういいよ
どうみても要件がおかしいとしか思えんし

963デフォルトの名無しさん2017/09/24(日) 23:39:49.07ID:R8lp94JX
ちなみに俺のレスが読めないとしても、俺以外のレスにも正解はあるんだから、
読み取れないのはお前らがどれが正解か分からないってことだぞ。

undo/redoなんて標準機能なんだし、考えたことはあってしかるべきで、
疑問を持っていた>>933はこの機会を逃さず尋ね、>>953までは進んだ。これは正しい進歩だ。
それに比べてデザパタ厨は何も考えてきて無いからこの有様。
「もっと上」を追求し続ける職人気質は必要だし、無いと上達はしない。
これは>>933にはあった。デザパタ厨にはない。

964デフォルトの名無しさん2017/09/24(日) 23:42:39.61ID:dIaNhcU3
スナップショットと言ってもオブジェクトの全ての
情報を保存しておかなければいけないとは限らない。
一部だけで良い場合もある。

じゃあこのスナップショットを設計するには
どのようなクラスやメソッドが必要だろうか?

少し時間をあげるから考えてみると良い

965デフォルトの名無しさん2017/09/24(日) 23:43:38.74ID:dIaNhcU3
>>963
あんたは重要なことをやってない。
undo/redoを行うとは言っているが、
その時に必要なメソッドはどんなものか?
を提示していない。

966デフォルトの名無しさん2017/09/24(日) 23:48:53.18ID:R8lp94JX
>>965
> その時に必要なメソッドはどんなものか?
お前も相当な馬鹿だな。

967デフォルトの名無しさん2017/09/24(日) 23:59:11.94ID:dIaNhcU3
>>966
設計というのはそういうものだぞ?
アルゴリズムじゃないんだから、
クラスがあってどんなメソッドが必要かっていうのを
提示しなければいけない

例えばソート関数はアルゴリズムでこれ単体では設計ではないが、
そのソートアルゴリズムを切り替え可能な汎用的な
コレクションクラスのようなものは設計となる

968デフォルトの名無しさん2017/09/24(日) 23:59:55.88ID:R8lp94JX
>>949
結局俺の疑問>>951には答えてくれないのか?

まあそちらは分かっているとは思うが、
コマンドパターンをその名の通り、「コマンドにオブジェクトを与える」とするなら、
殆どの場合で関数ポインタを直接差し込む必要はない。
通常はキーを与え内部でハッシュ等から関数ポインタを呼ぶ。

ただ、Javaでは関数ポインタが取れないから、そもそもこの「関数ポインタ引き用ハッシュ」を作れない。(はず)
だからJavaでコマンドパターンを記述すると無理に継承が行われ、説明が余計に意味不明になる。
それが俺が基本的に説明のコード部分を無視している理由。Javaには構造を正しく記述する能力がない。
ただPythonでもそうなのなら、関数ポインタを差し込むのが定義なのかもしれんが。

969デフォルトの名無しさん2017/09/25(月) 00:29:03.77ID:8cq/CpUk
>>968
コマンドオブジェクト内のメソッドのことを関数ポインタと呼んでるんなら
コマンド内には関数ポインタは必須だよ(間接的に呼び出すのでも別に構わないけど)

コマンドを実行する側が、コマンドの内部実装を気にする必要がなく
executeメソッドやundoメソッドみたいに共通の呼び出しで
各コマンドを処理できることに意味がある

Javaも8からラムダ使えるから単なる関数の実行だけなら
インターフェースや継承使わなくても関数ポインタ的なものを
実行側のリストに直接追加するなりハッシュ作って追加するなりできるよ

970デフォルトの名無しさん2017/09/25(月) 00:36:24.94ID:8cq/CpUk
undo/redoの仕組みは
- 操作を記録する方法
- 状態を記録する方法
- 状態の差分を記録する方法
のどれかかその組み合わせ

コマンドパターンでのundoは操作を記録して逆操作をする
メメントパターンでのundoは状態を記録
それぞれ良し悪しあるから状況にあったのを選べばいい

何を記録するか以外に
サポートするundoの機能によって記録するデータ構造が変わる
stackとかtreeとか

971デフォルトの名無しさん2017/09/25(月) 00:51:45.61ID:N+1HPlkM
スナップショットってどうやって実現すればいいの?
undo/redoってどうやって実現すればいいの?

その答がデザインパターンなんだな

972デフォルトの名無しさん2017/09/25(月) 00:53:39.30ID:3XblncDf
>>969
> コマンドオブジェクト内のメソッドのことを関数ポインタと呼んでるんなら
> コマンド内には関数ポインタは必須だよ(間接的に呼び出すのでも別に構わないけど)
ああ、この認識でいい。
Java7まではメンバポインタを関数ポインタ代わりとみなし、差し込んで上位からメソッド呼び出ししかなかったろ。

そこで疑問だが、ここで関数ポインタ直接差込のメリットあるか?
俺だったらハッシュをクロージャで捕捉して、
「この呼び出し機構から呼べるのはこのハッシュ内関数のみ」として制限する。
この方がソース上で一覧も見やすくなるし。
直接差込だと何でも実行可能になり、どうしてもバラけるし、
(俺はあまり気にしないが)変な物を差し込まれてないかのテスト等がしにくい。
パターン作った連中はここら辺の事情は分かっているはずで、ちょっと不自然さを感じるんだが。

973デフォルトの名無しさん2017/09/25(月) 00:55:43.76ID:N+1HPlkM
メンバポインタってなんだ?

974デフォルトの名無しさん2017/09/25(月) 00:57:17.48ID:N+1HPlkM
C言語には関数ポインタは有るけど、
その関数ポインタは名前の通り関数へのポインタであって
データへのポインタは含まないんだよな
だから関数とデータで別々に扱わないといけない

975デフォルトの名無しさん2017/09/25(月) 00:57:27.34ID:3XblncDf
>>972訂正
× メンバポインタ
○ メンバ関数ポインタ
まあ分かる範囲だろ。

976デフォルトの名無しさん2017/09/25(月) 00:58:44.83ID:N+1HPlkM
>>972
> パターン作った連中はここら辺の事情は分かっているはずで、ちょっと不自然さを感じるんだが。

パターンは実装ではないので、
あるパターンに対して幾つもの実装がある
言語が変われば実装は異なる

だから君みたいに実装のことなんて考えてないんだよ
あくまで設計だから一つ上の層から物事を考えてる

977デフォルトの名無しさん2017/09/25(月) 00:59:09.44ID:N+1HPlkM
>>975
メンバ関数ポインタって何?
Javaに関数ポインタなんて無いんだが

978デフォルトの名無しさん2017/09/25(月) 03:20:37.55ID:eX6e3GbI
みんな話が通じてるかのように会話してるけど俺にはさっぱりだ
ロジックを無理に日本語にせずJavaかC++の疑似コードかなんかで書いてくれた方が誤解なく伝わるぞ

979デフォルトの名無しさん2017/09/25(月) 03:21:41.82ID:/NZHFTqW
しったかの応酬

980デフォルトの名無しさん2017/09/25(月) 05:13:23.75ID:2SJhli4d
>>956
理由を挙げることができないのは馬鹿だからですか?
小学生とかよくそうだよね

981デフォルトの名無しさん2017/09/25(月) 22:28:14.08ID:DU69B7yE
デザパタって何?

982デフォルトの名無しさん2017/09/25(月) 22:34:32.01ID:AtwfXPhb
なんだろう?

983デフォルトの名無しさん2017/09/25(月) 23:07:47.29ID:N+1HPlkM
>>981
> デザパタって何?
デザインパターンのこと
設計のパターン

例えばソートでもアルゴリズムによって
バブルソートなどという名前がついているように、

デザパタでもパターンに名前をつけてる。
もし名前がなくて「undo/redoを実現するやり方」という言い方をしたら
どうやってやるのか?っていうのを他の人と知識の共有ができないし、
逆にどうやってやるのか?を「オブジェクトをリストの形でもって
それぞれが変更内容の情報を持っていて、その変更内容を逆方向に
適用することでundo、順方向に適用することでredoを実現する」という
言い方をしたら冗長な上に正確ではないし、undo/redo以外にも使えるってことが
わからないし、まあ何も良いことがないだろ?

名前をつけることで、デザパタの知識を持っている人の間で
知識を共有できるわけよ。

その知識のカタログがデザインパターン

984デフォルトの名無しさん2017/09/25(月) 23:20:57.87ID:5HagYgjy
哲学

985デフォルトの名無しさん2017/09/25(月) 23:30:01.68ID:3XblncDf
>>981
ゴミ。
結局デザパタ厨は誰もundoすらまともに実装出来なかったろ。推して知るべし。

986デフォルトの名無しさん2017/09/25(月) 23:36:45.43ID:N+1HPlkM
いや・・・クイックソートという名前を出してる人に
クイックソートを実装してみろって意味不明だろ。

987デフォルトの名無しさん2017/09/25(月) 23:40:43.21ID:3XblncDf
ID:3Bk8qYPA == ID:N+1HPlkM

988デフォルトの名無しさん2017/09/25(月) 23:42:00.75ID:N+1HPlkM
>>978
外れw

989デフォルトの名無しさん2017/09/26(火) 00:05:37.02ID:3DlL6rrx
物凄く残念な人が住み着いたから
しばらくはこのスレもお休みだな

990デフォルトの名無しさん2017/09/26(火) 00:43:54.35ID:wPSfJS/Y
俺は最初から居たから、その理論ならデザパタ厨がコミだということになる。

無理に布教しようとするからおかしな事になる。
仮にデザパタ厨がundo如きピシッと実装出来ていれば、自然と布教出来ただろうに。
この有様では訴求力なんて皆無だろ。

991デフォルトの名無しさん2017/09/26(火) 00:47:18.92ID:Yx2E7i/E
>>990
反デザパタのお前に訴求力があればその台詞も格好ついたんだろうけどなあ

992デフォルトの名無しさん2017/09/26(火) 01:04:27.60ID:w3seKs+r
次スレ立てろ

993デフォルトの名無しさん2017/09/26(火) 01:10:41.31ID:wPSfJS/Y
>>991
俺は「反デザパタ」ではなく、「デザパタは役に立たん」と言っているだけ。
ソースはデザパタ厨の実力。

994デフォルトの名無しさん2017/09/26(火) 01:34:04.11ID:SmezMtDi
ID:3XblncDf=ID:R8lp94JX=「構造体」を適宜「オブジェクト」に読み替え関数ポインタ/関数オブジェクト「ラッパ」パターン君

ゴミw

995デフォルトの名無しさん2017/09/26(火) 01:35:14.08ID:SmezMtDi
デザパタは必要

ソースは
「構造体」を適宜「オブジェクト」に読み替え関数ポインタ/関数オブジェクト「ラッパ」パターン

これ読んだだけでわかる

996デフォルトの名無しさん2017/09/26(火) 02:46:47.83ID:LgPIDr44
デザパタ、デザパタうっせーよ
デザインパターンな

997デフォルトの名無しさん2017/09/26(火) 03:18:16.89ID:shxtGnUG
デザパタ

998デフォルトの名無しさん2017/09/26(火) 03:21:34.51ID:shxtGnUG
ザパタデ

999デフォルトの名無しさん2017/09/26(火) 03:22:11.12ID:1aSY2upq
>>996
目立ちたがりやさん

1000デフォルトの名無しさん2017/09/26(火) 03:22:32.56ID:shxtGnUG
パタデザ


lud20221012023906ca
このスレへの固定リンク: http://5chb.net/r/tech/1502182334/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「オブジェクト指向システムの設計 173 [無断転載禁止]©2ch.net YouTube動画>1本 ->画像>1枚 」を見た人も見ています:
オブジェクト指向システムの設計 172
オブジェクト指向が無かった頃って
LinuxカーネルはC言語なのにオブジェクト指向
すまん、プログラミングのオブジェクト指向ってなんなん?PGモメン頼む
【隔離】オブジェクト指向アンチスレ
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
【時代はコンピュータ】仮設住宅早期供給へ新開発 敷地内の住宅数や配置をPC上で速やかに設計出来るシステム 数年内に実用化目指す
ハロープロジェクトにおけるニッチ産業システムとは
 オープンワールドで木や草が刈れる、オブジェクト壊せる、燃やせるなんてゲームの面白さに無関係では
PCメーカー「『PS5』はシステム設計の傑作。ストレージやデータ圧縮技術などの様々な面で革新的」
【技術】ニューロテイラーメイドの実現を目指すウエアラブル型「視覚評価用脳波計システム」を設計開発 [無断転載禁止]
【想定外】廃炉が決定した高速増殖炉「もんじゅ」、液体ナトリウムの抜き取りを想定せずに設計されており搬出困難 ★4
システムアーキテクト Part13
3Dアクションゲームの設計
日立ビルシステムの裏事情3
【野球】<「プロ野球離れ」>どこまで本当か? 伝統のスターシステムの終焉 コアなファンと一般のライトユーザーの二極化... ★3
ヘヴィーオブジェクト 26機目
ヘヴィーオブジェクト 28機目 [無断転載禁止]
【ヘヴィーオブジェクト】おほほちゃんはおほほかわいい [無断転載禁止]
【ヘヴィーオブジェクト】ミリンダ=ブランティーニはジト目かわいい2 [無断転載禁止]
【エプスタイン事件】世界の大手企業、英アンドルー王子のプロジェクト支援を相次ぎ撤回
オクトパストラベラー、IGNJチャンネルでストーリーや戦闘システムなどを酷評される
「ハロプロの合宿システムは、アイドルになるなら受けるべきです」つばきファクトリーのエース・浅倉樹々が語るアイドル論!
歴史的隔離システムのエネルギー
 ディスクシステムの最高傑作ってなに?
英熟語って速読よりシステムのほうが詳しい?
【シャルリとは誰か】E・トッド【家族システムの起源】
中国のスマホゲームの課金システムが合理的ですげえ
ボーイング737MAX8墜落事故、「制御システムの欠陥」でほぼ確定
【悲報】「武器が壊れる」システムのゲーム、クソゲーしかない
【IT】富士通、基幹システムの移行を安価に ライセンス購入の必要なく
札幌が静止する日 基幹システムのDBが大破して戸籍や住民票が吹っ飛んだ模様
なんでレースゲーマーって色んなシステムの作品があるのをよく思わないの?
【ゲーム】『武装神姫』新作ゲームの制作が決定! 〜「武装神姫」シリーズの新プロジェクト始動〜
【名古屋市】市民からの問い合わせにAIを活用へ システムの実証実験始まる
【プログラム/和暦】簡単だと誤解されがちな、システムの「新元号」対応
上國料システムのせいでアンジュルムの雰囲気がおかしくなってきてないか?
貧乏臭い見た目とシステムの「ホームドア」を使った実証実験  近鉄・大阪阿部野橋駅で始まる
【こやけん躍進↑ほま豚歴史的大敗↓】ブチかましアンチスレpart32【支配システムの当然の末路】
【岡山市】コピー代230万円無駄だった タブレット端末使用のペーパーレス会議システムの効果てきめん
【宇宙開発】月の有人拠点建設の「遠隔操作と自動制御の協調による遠隔施工システムの実現」にめど[03/28]
昔のポケモンは特殊の特攻特防分離や技の物理特殊分離みたいにもっと戦闘システムの根幹から新しくなってたんだけど
糞城プボジェクト1229 ステファンの覇権声優予告
【こやけん躍進↑ほま豚歴史的大敗↓】ブチかましアンチスレpart31【支配システムの当然の末路】
【サッカー】<本田圭佑>挑んでいた「地震予知装置」開発...豪雨被害に見舞われた西日本に“水浄化システムの導入”を提案
【臨時政府樹立100年】「特権層の時代終わらせるべき」=文大統領 一方、消防隊員の待遇改善や災害放送システムの見直しも指示[4/9]
【レイプ被害】記者からの暴行被害訴えた伊藤詩織氏が会見 捜査、司法、社会意識の改革とレイプ被害者の救済システムの必要性を訴える
フィリピンの国家プロジェクト【ノアコイン NOAHCOIN】虚偽発覚でも爆上げ? 13
日本代表の戦術・システム part33
プロジェクト東京ドールズ part123
プロジェクト東京ドールズ part143
ガリガリ脱出プロジェクト part63
プロジェクト東京ドールズ part103
【仮面女子】アリスプロジェクトEASTスレ93
【仮面女子】アリスプロジェクトEASTスレ113
【バーチャルYouTuber】ゲーム部プロジェクト 33
【A応P】アニメ“勝手に”応援プロジェクト part33
【プロセカ】プロジェクトセカイカラフルステージ!feat.初音ミクの声優を語るスレ3
PS4に重大なバグ、特定の文字列を含むメッセージを受けるとシステムダウン 3
東京電機大学 工学・二部・未来科学・システムデザイン工学部 Part.123
【少子化対策】ひろゆき氏、少子化対策に大胆提言 1人産めば1000万円支給「社会のシステムが変わる」 ★3
【NHK受信料問題】識者「お金を払わないと画面が映らなくすればすべて解決」「やらないのは今の集金システムが崩れるから」★3
【カルロス・ゴーン】「Xマス後まで、おりの中」ゴーン氏再逮捕、世界に驚き 「日本の刑事システムが世界に暴露」★3
【悲報】SKEのイベント酷すぎw メンバーがポップコーンや綿菓子を販売するも現金では買えずCDを買わないといけないシステムwwwwww★3
【NCOS】NEC通信システムの裏事情 PART 1
15:22:55 up 6 days, 1:47, 0 users, load average: 6.51, 8.77, 9.20

in 0.11015486717224 sec @0.11015486717224@0b7 on 121805