X



オブジェクト指向システムの設計 172 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0952デフォルトの名無しさん
垢版 |
2017/08/04(金) 17:23:04.95ID:0vZeL7Au
>>951
アラン・ケイの言うメッセージングはお題目にして方便なので(そのような実装を妨げる物ではないけど)
本質は「決定や結合の遅延」の実践・徹底(と、それをシステムによりサポートすること)だよ
詳しくは>>917のリンク先をを読んでみて
0953デフォルトの名無しさん
垢版 |
2017/08/04(金) 17:56:58.55ID:0vZeL7Au
…と書いたものの
少なくともオブジェクト指向“プログラミング”の主流は、ケイのメッセージングのそれよりは
長らくストラウストラップらの抽象データ型のオブジェクト指向の独擅場であり、さらに言えば
今世紀に入ってから作られた言語の型システムも急速に整備されてきている

ケイがSmalltalkでの実験を通じて目指した究極の動的性を必要とするならともかく
そこいらの普通の動的型言語が持っているダックタイピング程度の柔軟性でいいなら
最近の静的言語なら大抵対応できるので、いずれにせよメッセージングのことは忘れていいと思うよ
0957デフォルトの名無しさん
垢版 |
2017/08/05(土) 02:34:30.91ID:r+UIi6ic
何十年前の爺が言った妄言を未だに信奉して
「メッセージがアレなんだぜ知らんけど」
とかもうね馬鹿かとアホかと
おまえ今までずっとマンマのおっぱいでも吸ってたんかボケ?
0958デフォルトの名無しさん
垢版 |
2017/08/05(土) 13:59:51.94ID:3ZFQUHpv
>>950
> その大前提を無視して、モデルかとはそうじゃない、これは全部こいつがやるべきだ、みたいなゴッドOrderクラスはおかしいじゃん?ってのが書き込みの発端。
全部そいつがやれなんてことは誰も言ってなかったと思うが
最初から、オーダーに関するビジネスロジックと権限などによる制限はわけろって論調だったわけで
0959デフォルトの名無しさん
垢版 |
2017/08/05(土) 15:26:03.09ID:U24Mrp9j
制限は分けるけど、同一的に扱えるようにしろって
流れが追加されてるのを忘れないように
0966デフォルトの名無しさん
垢版 |
2017/08/06(日) 11:02:24.39ID:osB5uNH8
見えない敵と戦ってた奴も参戦してて、何百スレも話が混乱したままだったのかもな
0981デフォルトの名無しさん
垢版 |
2017/08/07(月) 19:45:10.29ID:90fIiSpa
Modelって言っても色々あるからな
ViewModel InputModel DocumentModel DomainModel ServiceModel DataModel...
ロジックの集合体みたいなものから振る舞いを持たないDTOまでなんでもあり
オブジェクト指向を知ってるプログラマだと
、ビジネスロジックと言えば主にDomainModelなのでModelはビジネスロジックを持つ、となる
手続き型から脱却できていない人にとっては、ModelとはなんらかのDTOつまりただのデータ集合のことだからModelはビジネスロジックを持たない、ロジックはトランザクションスクリプトに書くものだ、となる
このスレの人間はオブジェクト指向信者が多いが、あの人を代表に敬虔な手続き型信者も紛れ込んでいる
0985デフォルトの名無しさん
垢版 |
2017/08/08(火) 01:18:07.30ID:jXIjDDES
>>984
オブジェクト指向っていうのは構造なんで
処理は別にあるんだよ。

処理は手続き型 or 関数型の二種類が多く使われてる

オブジェクト指向 + (手続き型 or 関数型)で
プログラミングするのが今の主流
0987
垢版 |
2017/08/08(火) 10:33:15.83ID:y4ztJzgK
>>986
その中の、「メソッド」まで見てみた?
あるクラスまたはオブジェクトに存在するサブルーチン、とあって、手続き的な指向までは排斥されてないよ。
0989デフォルトの名無しさん
垢版 |
2017/08/08(火) 12:30:47.84ID:m8GLf68F
つまり、このスレで手続き爺手続き爺って言ってたやつは
自分はアホですって自己紹介していたようなものって事だな

だってこういう場合、普通は手続きって言葉は使わない
パラダイムの世代を表したいなら「構造化言語」って言葉を使うのが普通だ
手続きって言った場合は、関数型に対する手続き型の意味合いがあるからな
0990デフォルトの名無しさん
垢版 |
2017/08/08(火) 12:39:32.38ID:m8GLf68F
それと、巷のオブジェクト指向言語(Java C# C++ etc)が手続き型って認識が無いから
アホみたいな発言を繰り返してしまうってのもあるだろうな
メソッドを呼びあって相互作用する「手続き」を「プログラム」する
ってのが分かってない
OOPだろうが結局バグを生まないために一番大事なのが「処理の順番を守ること」である以上
手続き型としか言いようがない
0991デフォルトの名無しさん
垢版 |
2017/08/08(火) 12:44:18.16ID:m8GLf68F
まぁOOPはカプセル化とか、ある程度は保護してくれるけど
メソッド呼び出しの順番やタイミングを誤ったことをコンパイル時に知らせてくれる
な〜んて事は無いので
結局手続き型の、手続きを守らなければならないという
一番の弱点が残っている以上はOOPも手続き型に違いないわけだ
0992デフォルトの名無しさん
垢版 |
2017/08/08(火) 13:14:56.95ID:m8GLf68F
で、この話は>>412
呼び出してはいけないタイミングでメソッドが呼び出されたらどうする?
って話につながる、というか、戻る

副作用があって処理の順番にプログラムの結果が依存する
手続き型一般にありがちな問題といえる

これを言語仕様で克服できてないということは
JavaもC#もC++も手続き型ということ
手続き型の欠点をそのまま受け継いでいるから
欠点を受け継いでいる以上は無視できない
0993デフォルトの名無しさん
垢版 |
2017/08/08(火) 13:15:17.67ID:qcoC0xc5
>>991
順番やタイミングといった動的なものを
コンパイルという静的な視点でエラーにするパラダイムがあるの?
コンストラクタとかあるタイミングで何かを保証するルールならわかるけど
0994デフォルトの名無しさん
垢版 |
2017/08/08(火) 13:19:47.32ID:m8GLf68F
>>993
無いから「手続き型」だと言ってる
欠点をそのまま受け継いでいるから

ただ、順番やタイミングから逃れられる方式もあって、それが関数型なわけだけど
逆にそれが出来る関数型が存在しているからこそ
順番やタイミングに依存する方式は、より一層、手続き型臭いといえるわけだ
0996デフォルトの名無しさん
垢版 |
2017/08/08(火) 13:26:58.10ID:m8GLf68F
関数型はそれが出来るというより
意図的に排除する仕組みが言語仕様で用意されているといったほうがいいな
0998デフォルトの名無しさん
垢版 |
2017/08/08(火) 13:54:08.20ID:KgKYlFLH
システムの設計について書くやつと言語仕様について書くやつが居てちぐはぐだな
0999デフォルトの名無しさん
垢版 |
2017/08/08(火) 14:05:36.48ID:qcoC0xc5
つまり存在は証明できないが神はいるってことか
関数型って宗教だったんだ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 395日 14時間 15分 19秒
10021002
垢版 |
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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