オブジェクト指向システムの設計 173 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
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
2017/09/02(土) 20:23:23.96ID:je61f8uF
>>254のような変なことを考えてしまうやつが出てくるのが
オブジェクト指向という名前のまずさだろうな
もしメッセージング指向って名前ならこんな勘違いするはずなかった
メッセージング指向とは:
メッセージのやり取りを実行順に順番に並べて定義する(←プログラム、手続き)ことで
プログラミングする方式
っていう感じの定義になってただろうからな
2017/09/02(土) 20:24:40.70ID:x3xo3AHA
>>284
よんだ。書いてない。以上
2017/09/02(土) 20:24:49.03ID:je61f8uF
Smalltalkerまで暴れてるのか
2017/09/02(土) 20:29:11.30ID:x3xo3AHA
>>285
メッセージング指向言語なら、勘違いしたかもしれないが、
メッセージング指向システムなら、勘違いしなかったかもねw

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

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


「決定の遅延」とやらは言語レベルでやることじゃぁないって話
2017/09/02(土) 20:31:23.03ID:x3xo3AHA
あ、もちろん

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

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

昔のOSがなくて、言語環境がOSそのものである時代に
そんな発想ができなかったのは仕方ない話。
2017/09/02(土) 20:31:32.64ID:SvMhViqK
素直にNGが正解だったか
このスレではよくあることだが
キチガイを隔離できないと議論の場にもならないな
2017/09/02(土) 20:35:08.35ID:x3xo3AHA
いや反論もなくて、ただ単に書き込み数が多いだけで
キチガイと判断されても困るんですけどーw
2017/09/02(土) 20:36:31.71ID:x3xo3AHA
つーかNGにするならさっさとしてくれ。
そうすりゃ俺の書き込みが見えなくなって
「俺の書き込みに反論ができない」から
俺としては好都合
2017/09/02(土) 20:37:52.79ID:mrBSaSic
>>286
- もしもシステムの基礎に基本的に新しい方法を採用しようとすれば
 かなり最初からやり直さなくてはならない。

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

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

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

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

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

きりがないからやめるけど、どうしてこんな程度が読み取れない? 失読症?
2017/09/02(土) 20:37:55.72ID:w/8WFsta
>>292
永久NGしたいんでコテハン付けてくれ
好都合なら今日だけと言わずずっとそうしようぜ
2017/09/02(土) 20:43:07.29ID:SLw7DScq
>>280
それは完全に「メッセージ指向派」が悪い。
これ関しては、ID:x3xo3AHAが100%正しい。

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

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

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

>>293
それが今対応出来てなくて、「決定の遅延」で対応出来るとでも思ってるの?
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]
> > メッセージ指向が目指したのは「可能な限りの決定の遅延」
>
> 決定の遅延は、問題の先送りと考えればよい。
> 結局あとから問題が発覚するだけにすぎない。

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

人々は何も誤解していないってことになる。
2017/09/02(土) 20:52:24.82ID:x3xo3AHA
でもまあこのくだらない会話でも少しは意味があったな。

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

つまり決定の遅延と誰かが言ってる時、その「決定の遅延」は本質ではなく、
本質は「プロセスを停止しなくてすむ(サービスの停止時間が短くてすむ)」と
言ってるにすぎないということ
2017/09/02(土) 20:55:32.24ID:mrBSaSic
>>296
だからメッセージは方便、唱えていればそれなりに実践はできるお題目だって >>228 でいってるじゃん
本質である「決定の遅延」の徹底の意味の理解ができていれば、メッセージなんて無用ですらあるよ
君の「メッセージ指向」批判もどきはいちいち的を外しているし、端から見れば >>278 に尽きる
2017/09/02(土) 20:59:12.98ID:mrBSaSic
>>297
> 「決定を遅延させるだけ」ならば、
> あとからソースコードを修正してシステムを再起動すれば
> 実現可能

その再起動で失われる物がなにもなければ別にいいと思うよ
2017/09/02(土) 21:00:04.98ID:x3xo3AHA
では、メッセージ指向なんて言わずに

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

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

なんで言い換えるの?
オブジェクト指向と言い換えたことで勘違いさせたのと同じ問題を
メッセージ指向でも発生させている。
2017/09/02(土) 21:01:52.97ID:x3xo3AHA
>>299
> その再起動で失われる物がなにもなければ別にいいと思うよ

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

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

ハードウェアの冗長化などしてシステムレベルで担保するもんでしょ
2017/09/02(土) 21:05:25.64ID:x3xo3AHA
そうだなー俺だったら「疎結合システム」って名前にするかな
「指向」っていうのもおそらく勘違いの原因になってる。
指向というより、システムだからね
んで、別にそこに言語は問わない。
2017/09/02(土) 21:06:13.43ID:mrBSaSic
Smalltalkだの動的な仕様変更だのを目の敵にしすぎでまともな議論ができんよ
2017/09/02(土) 21:09:52.20ID:mrBSaSic
>>300
いちいち的を外すね
そもそも「メッセージ指向」が、アラン・ケイは自らのオブジェクト指向をこう呼ぶべきだったって話だろう
「決定の遅延指向」でも「疎結合システム試行」なんでもいいけど
よく理解できない人がいるから方便・お題目としてメッセージってメタファを使ってるんだよ
話を堂々巡りさせるなよ
2017/09/02(土) 21:16:57.87ID:x3xo3AHA
下手なメタファは混乱のものと
「メッセージ」で何も理解出来ない。

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

実現したいことを語らず手段から入るから
だめなんだよ。
2017/09/02(土) 21:18:20.73ID:mrBSaSic
>>301
なんでこの期に及んまだ「言語レベル」に拘るの? バカなの?
2017/09/02(土) 21:23:02.25ID:x3xo3AHA
>>306
疎結合システムは言語レベルで実現するものではない
というのが主張だから。
2017/09/02(土) 21:25:05.65ID:w/8WFsta
>>307
コテハンはやくしてよ
2017/09/02(土) 21:25:30.70ID:mrBSaSic
>>307
勝手にやってろと
2017/09/02(土) 21:26:53.87ID:fbxz7fkL
伸ばしてるヤツが居るときは読まなくていい
コテハン案は賛成
2017/09/02(土) 21:28:16.23ID:x3xo3AHA
>>308
しない。
2017/09/02(土) 21:29:03.24ID:x3xo3AHA
本質ではないこと(書き込み数が多いぞ)という
指摘が多いからIPアドレス変えるわw
2017/09/02(土) 21:29:35.74ID:bwiWyWdK
ほらよw 変わった。(もう一回変えるw)
2017/09/02(土) 21:29:43.61ID:w/8WFsta
>>311
してくれ頼む
そっちにとっても都合がいいんだろ
さっきそう言ってたじゃないか
2017/09/02(土) 21:30:49.34ID:UGkdV3fd
なお、変えた所でレス内容見れば誰かわかるから
問題ないだろ?というスタンス

単に同じIDがたくさんあることに対して
ストレスを感じる人への救済策w
2017/09/02(土) 21:31:12.55ID:w/8WFsta
特徴的な長文だからid変えたって無駄だよ
何度でもNGされる
でもそれじゃ不便だろう?
だからコテハンをつけてくれ
毎日NGする手間のせいでみんなが迷惑してるんだよ
2017/09/02(土) 21:32:17.96ID:qPg7LdX5
>>314
ほらよ。してやったぞ。
なお他の誰かとかぶっていても俺は知らん
2017/09/02(土) 21:32:29.97ID:w/8WFsta
わかりきった単純作業はしたくないの
みんなプログラマだから
お前が少し協力的になるだけでみんなが喜ぶ
なんでそうしない
他人に迷惑をかけたいのか?
2017/09/02(土) 21:33:06.20ID:qPg7LdX5
>>316
その理屈だとコテハン付けても
俺は何もメリット無いじゃん?w
2017/09/02(土) 21:33:12.12ID:w/8WFsta
>>317
良し
死ぬまで絶対にコテハン変えるなよ
2017/09/02(土) 21:33:47.27ID:qPg7LdX5
というコテハンはどうだろう?w
2017/09/02(土) 21:34:05.71ID:qPg7LdX5
>>320
あ、ごめんwもう変えたw
2017/09/02(土) 21:34:06.11ID:w/8WFsta
>>319
お前は反論を受けて反論し返す労力がなくなって楽になるだろ
Win-Winの関係だ
じゃあなバイバイ
2017/09/02(土) 21:34:47.73ID:w/8WFsta
>>322
変えるなよハゲ
2017/09/02(土) 21:35:06.66ID:qPg7LdX5
>>323
> お前は反論を受けて反論し返す労力がなくなって楽になるだろ
いや、別に?

なんのために匿名掲示板に
書き込んでると思ってるんだw
2017/09/02(土) 21:35:24.99ID:qPg7LdX5
>>324
ハゲじゃねーよw
2017/09/02(土) 21:35:54.30ID:qPg7LdX5
よし。あそんだからまたIP変えるわw
2017/09/02(土) 21:36:26.88ID:fbxz7fkL
固定ハンドルネームの意味も知らないのか
2017/09/02(土) 21:44:03.05ID:Wpy+cxIC
固定ハンドルネームの意味は少なくとも
NGにしたい人に対してお願いして
付けてもらうものじゃなかったと思うが
2017/09/02(土) 21:49:40.24ID:fbxz7fkL
>>329
>>292 って言ってるから協力してくれると思ってたわ
2017/09/02(土) 21:51:20.29ID:Wpy+cxIC
>>330
NGならIDでできるだろ?
それなら俺には手間はかからない
やるなら今ある情報で勝手にやってくれって話
俺は自由にやりたいようにやる
2017/09/02(土) 22:45:14.73ID:fbxz7fkL
>>331
おまえ自身が実践してるようにIDは変化するんだよ
2017/09/02(土) 22:53:17.53ID:w/8WFsta
「あ」はその点、潔かったな
それと比べてこいつは言うことも馬鹿馬鹿しいが性格が姑息だ
2017/09/02(土) 23:00:10.31ID:Wpy+cxIC
>>332
変化しても見つけたらそばから
NGすりゃいいだけじゃん?
レスするぐらならNGにすればいい
2017/09/03(日) 02:48:19.90ID:ne8qPBqk
>>282
まったく読めてないな
誰がうまく行くなんて言ってるんだ

お前のやりたいことは上から下に流れる行番号プログラムが一番お似合いなんじゃないか?
2017/09/03(日) 07:34:16.18ID:hrqzcgfY
未だにコテハンに拘るやつって・・・
何歳?ガイジ?痴呆老人?
2017/09/06(水) 01:04:35.69ID:j4+F5TZ8
>>334
エンジニアの才能ゼロ臭がすごい
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
>> 多分似たような考え方が多いんと思うんだけど、
似たような考え方はない

>>それぞれ別々の用語で語られるから整合性をとるのが大変。
お前のアタマの出来の問題
2017/09/14(木) 00:12:12.72ID:Hmi0+Px2
インピーダンスミスマッチを知らないのかな
2017/09/14(木) 07:00:44.26ID:CERdfB5z
久しぶりにスレ読んだが

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

>>228
>メッセージ指向が目指したのは
>「可能な限りの決定の遅延」
こっちの方が元祖に忠実な解釈
2017/09/14(木) 07:09:15.99ID:CERdfB5z
>>282
>メッセージングとは「手続き」のこと
>相互作用とは「手続き」のこと
違う

>何がどの順番で実行されるか一目瞭然に
>なるよう念頭に置いて、逆算してクラスを設計する
それはオブジェクト指向設計ではない
2017/09/14(木) 07:11:37.80ID:CERdfB5z
>>285
>メッセージング指向とは:
>メッセージのやり取りを実行順に順番に並べて
>定義する(←プログラム、手続き)ことでプログラミングする方式
違う

むしろ手続き型の逐次性に縛られない
実行時に自由な順序で処理できる
のがメッセージング指向
2017/09/14(木) 07:45:55.41ID:5pJqzEw6
実装は関数型か手続き
パッケージングはオブジェクト指向
システム相互作用はメッセージ指向

今のところこれが最も楽だね
システムの隅々までオブジェクト指向に執着する意味はない
2017/09/14(木) 11:18:13.19ID:emC4w7HW
>>342
アランケイの言うことなどあてにならないから
斜めからとらえてるんだよ
オブジェクトの外が重要→相互作用の手続きが重要
という風に
2017/09/14(木) 19:22:14.60ID:bJf7rU1J
お前の妄想とアランケイの発想とどっちがあてになるかっていったらアランケイだろjk
2017/09/14(木) 21:37:51.92ID:ryfOUSxm
ニシコリケイって最近見ないね
2017/09/15(金) 05:53:41.36ID:W45XFvfB
>>344
アクターじゃんそれ
2017/09/15(金) 05:55:07.30ID:gy747Xnp
>>347
そうそう
オブジェクト指向の元祖だからね

別に盲信する必要もないが
このスレの批判は単に的外れだな
2017/09/15(金) 05:56:09.92ID:gy747Xnp
>>349
アクターモデルとメッセージモデルは近い
というか影響を受けたものだから
別に似ててもおかしくないよ
2017/09/15(金) 07:15:17.35ID:vyY28csJ
カール・ヒューイットのアクター理論はアラン・ケイのSmalltalk-72の方便・お題目であった「メッセージ」を
問題領域を並列処理に限定して真面目に定式化し実装(PLANNERの拡張)を試したものだよ
ケイも後出しでアルトにもっとマシンパワーがあれば似たようなこと(ただし定式化には興味がなく実装の方)は考えてた
みたいなことは言ってる
2017/09/15(金) 08:28:38.45ID:ckGKvGLj
つまりアクターじゃん
2017/09/15(金) 08:29:13.56ID:ckGKvGLj
オブジェクト指向とアクターを分けましょう
2017/09/15(金) 08:29:38.71ID:ckGKvGLj
アランケイはつまりアクターじゃん
2017/09/15(金) 08:31:05.96ID:ckGKvGLj
オブジェクト指向 vs. アクターじゃん
2017/09/15(金) 08:37:46.12ID:xM51rnqJ
まとめて言え
2017/09/15(金) 08:45:57.26ID:gy747Xnp
アクターモデルほど並列化しなくても
OOには手続き的な逐次に囚われない要素がある

IF文と違って継承や多態したメソッドは
コード記述の順番通りでなく
クラス階層に基づいて呼ばれるし
2017/09/15(金) 09:11:38.66ID:ckGKvGLj
>>357
まとめるとそれってつまりアクターじゃん!!
2017/09/15(金) 09:12:37.96ID:ckGKvGLj
>>358
それってつまりこじつけじゃん!!!
2017/09/15(金) 09:13:14.62ID:ckGKvGLj
じゃんメソッドで理解するオブジェクト指向
2017/09/15(金) 09:41:31.46ID:2UxzT/06
>>358
こんなふうにメッセージングやその先の遅延結合を実装や実行中のことだけに限定しがちだから
「決定の遅延」って言い換えた方がいいって>>228で書いてるとおりの展開だな

「決定の遅延」にフォーカスできていれば、ケイのメッセージ指向はアクター理論と
そもそも問題領域が違うんだから混同しようがないよ
2017/09/15(金) 11:30:55.56ID:ckGKvGLj
決定の遅延ってなんスカ? haskellっすか
2017/09/15(金) 13:10:39.74ID:2UxzT/06
神のごとき傲慢さで何でも事前に決めてしまわないことだよ
OSや言語処理系はもちろん、成果物にすらそうした態度をサポートするしくみが期待される
というのがケイのメッセージ指向のオブジェクト指向のキモ
2017/09/15(金) 13:27:50.13ID:gubbGhIq
モンキーパッチでベタベタ
後付け修正をかけてイミフにすることだよ
2017/09/15(金) 15:34:39.82ID:7SacSfM7
ちょっと何言ってんの
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?
 クラスベースよりプロトタイプベースの方が使いやすいと判断したら、途中から移行できるか?
2017/09/15(金) 15:53:13.42ID:2UxzT/06
>>367
いかん ×インスタンス変数 ○インスタンス(=オブジェクト)
2017/09/15(金) 18:23:11.78ID:H0wq/Z/R
>>367は素晴らしい
これ読んだら、意味ない、必要とされてない、ってことが良くわかって良いでしょ
世迷言の類だよ
2017/09/15(金) 18:28:53.55ID:AR0K3TGO
GoFのデザパタってもう古いの?
今は何
2017/09/15(金) 19:04:42.20ID:Ant/l9eg
-デザインパターンとともに学ぶ-
オブジェクト指向のこころ
2017/09/15(金) 20:03:02.40ID:VPUgCPM1
-デザインパターンとともに滅ぶ-
オブジェクト指向のこころ
373358
垢版 |
2017/09/15(金) 21:17:07.69ID:gy747Xnp
>>362
>>358
>実装や実行中のことだけに限定
したつもりはないが

そこまでの流れで
アクターとの違いが疑問になってたから
典型的なOOの挙動を例に挙げたんだよ
2017/09/15(金) 21:20:32.74ID:gy747Xnp
>>370
デザパタは古くないよ

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

ただたんにOOの新しい流行って意味なら
今はDDDとか
2017/09/15(金) 21:27:52.24ID:Z/MvErxh
DDDはもう古い
当たり前のように使われる枯れたデザパタと似たようなポジション
逆に言うと使いこなせていない場合は初心者の烙印を押される
2017/09/15(金) 21:28:48.44ID:Xh3vGrxx
DDDはオブジェクト指向もレイヤーが上
関数型のほうが相性がいい面もある
2017/09/15(金) 22:32:03.57ID:Gt1H0B5V
みんなすごいなぁ..
2017/09/15(金) 22:40:52.52ID:8Yl7c1qt
DDDのサービスとDCIのコンテキストの違いを語れるくらいにはなりたい
2017/09/15(金) 23:00:39.95ID:UWwUyGbk
アホ草
所詮は構造体に毛の生えたもんだろ
2017/09/15(金) 23:02:02.51ID:pZU7ycnu
毛の大切さはそれを失なった者にしか分かるまい
2017/09/15(金) 23:03:27.14ID:MoaBkv/B
深い
2017/09/16(土) 04:50:46.78ID:hF16Uo8A
薄い
2017/09/16(土) 10:22:39.13ID:HODesank
>>375
DDD古いなら今は何?
2017/09/16(土) 11:11:05.26ID:FAEJW2nX
> モンキーパッチのような姑息な手を使うような局面の話ではなく、もっと根本的な問題も後から変えられるように
> 作る and/or それを言語処理系・OS等にサポートさせよう という話だよ

つまりアプリケーションの再インストール
ただしOSは再起動しないことが条件
それってWindowsは実現できてるじゃん?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況