オブジェクト指向システムの設計 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/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は実現できてるじゃん?
2017/09/16(土) 11:13:12.59ID:TyV9wav2
やっぱMSの技術は最先端行ってるんだな
2017/09/16(土) 11:14:09.27ID:FAEJW2nX
もしかしたらOSの再起動をしても良いかもしれないな。
根本的な問題を変える時、OSを再インストールすることで実現できる。

きっとそれは違う!というのだろうけど、
それって「根本的な問題を後から変えられる」が本当に求めているものではなくて
「システムの停止時間がほぼ0に近いこと」が本当に求めているものではないのかね?
2017/09/16(土) 11:21:50.01ID:0nrSN7bk
>>384
アルトで動いていた暫定ダイナブック環境から40余年
https://upload.wikimedia.org/wikipedia/commons/9/91/Smalltalk-76.png
そこらのパソコンもだいぶケイの考えるオブジェクト指向(メッセージ指向)をサポートできるようになったってことか
できたらアップデートするアプリケーションも再起動しないで済む仕組みだとなおいいね
2017/09/16(土) 11:35:51.04ID:FAEJW2nX
>>387
> できたらアップデートするアプリケーションも再起動しないで済む仕組みだとなおいいね
結局それはトレードオフの問題だからね。

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

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

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

だからOSや言語だけで対応できることじゃないんだよ。
今でもやろうと思えばできるが、コストがかかるからやらないってこと
2017/09/16(土) 11:40:49.19ID:FAEJW2nX
またオブジェクトの入れ替え(コードの修正)と言っても
通常は一箇所だけやればいいってもんじゃないからね。

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

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

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

結局はコストと時間を無制限に使えるというのであれば
アランケイの理想は実現できますよ(=不可能という意味)という話でしか無い
390デフォルトの名無しさん
垢版 |
2017/09/16(土) 11:56:37.56ID:gf/ZkNkm
サービスの利用が中断されないならアプリケーションを再起動したって何の問題もない。アップデートされるアプリケーション自体にその機能を持たせる価値がどれ程あるのか?
2017/09/16(土) 11:59:46.89ID:0nrSN7bk
>>388
> メモリ内のデータ構造の変更が必要

まあそれを必要としないのがケイの主張する「決定の遅延」の徹底(と言語やOSによるサポート)のミソなわけなんだが
長々と書いている内容を読んだかんじ、まったくイメージがつかめてないんだろうな…
2017/09/16(土) 12:00:50.91ID:FAEJW2nX
>>391
いや「ミソ」とか言ってごまかすなよ。
今度はお前が説明する番だろ
(やっぱり理解してないのかな?)
2017/09/16(土) 12:02:57.53ID:FAEJW2nX
変更するのはデータ構造だけじゃなくて
データの意味が変わったりもするからね。
そういう場合に変更機能はどうしても避けられない
2017/09/16(土) 12:03:34.13ID:/gVs+HA3
>>387
Mac OSの原型か
2017/09/16(土) 12:09:30.00ID:AcW1bn43
OSの定期的な再起動は
現実的に仕様がないと思うけどね
現代のOSは複雑だから

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

Smalltalkで動かしながらデバッグできるっていうのと
現代のOSとではシステムの複雑さが違い過ぎるから
再起動は必要ない代わりに不具合が出たりするかもしれない
2017/09/16(土) 12:19:19.44ID:0nrSN7bk
>>392
イメージできてない人に説明するのはかなり難しいよ
まして当事者の協力が望めないこの状況ではほぼ不可能だと思う
2017/09/16(土) 12:21:42.56ID:FAEJW2nX
>>396
じゃあイメージしている人に対して説明すればいいだろ?
お前が説明しないのが問題だって言ってるんだから
2017/09/16(土) 12:25:21.02ID:hF16Uo8A
前から疑問だったんだけど「あらゆる意思決定の遅延」の話がなんで「無停止デプロイ」の話にすり替わってんの?
全く別の話だよねこれって
2017/09/16(土) 12:35:04.15ID:FAEJW2nX
>>395
> 現代のOSは複雑だから
結局そこなんだよな

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

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

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

まあすべてを非同期にする必要はないだろうけど、要所要所で
非同期で処理しておけば、システムの更新もしやすくなるんやで
2017/09/16(土) 12:40:46.80ID:FAEJW2nX
>>398
> 全く別の話だよねこれって
結局のところ、意思決定の遅延が何をもたらすのかを
説明できてないのが原因だろうねw


あらゆる意思決定の遅延
→それがあると何ができるか?
→プロセスを停止せずに変更が可能 (ここが一番重要)
→停止して変更すればよくね? (これにうまく反論ができない)
→停止するとつかえなくなる時間がー (苦し紛れの理由)
→それらはデプロイ技術で解決できること
2017/09/16(土) 12:49:12.64ID:0nrSN7bk
>>400
アラン・ケイの主張なんだからとりあえず彼が書いたこれを読もうよ
http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
それから解らないことを具体的に訊いてけばいいと思うよ
2017/09/16(土) 12:50:38.87ID:FAEJW2nX
>>401
読んだ。で?
2017/09/16(土) 12:51:58.36ID:FAEJW2nX
わからないことは何も無いが、俺が勘違いしている可能性はある。
だが勘違いしている俺には、その事実がわかるはずもない。

だから他人から見て間違っているというのであれば
それを説明しろって言ってるだけなんですがーw
2017/09/16(土) 12:58:19.60ID:hF16Uo8A
>>400
→それがあると何ができるのか
→プロセス停止しないで変更可能(ここは全然重要じゃない。無停止デプロイは副次的な効果のうちの1つでしかない)

正しくはこうだろう
ここから間違えてるから議論が明後日の方向に突き進んでる
2017/09/16(土) 13:00:21.80ID:FAEJW2nX
いや、だから副次的な効果ではなくそれ以外の真の効果(なにそれ?)が
言えないのが問題だって言ってるんだが。

間違ってる場所を指摘するだけじゃなくて正しい効果とやらを言えよ
だからいつもデプロイ技術で解決できちまうんだよ。
2017/09/16(土) 13:03:13.48ID:FAEJW2nX
ちなみにさっきも言っているが「変更」自体はプロセスを停止して
リセットすることで、行うことができる。

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

アランケイはリセットしたほうが早いというのを
計算に入れることができなかったんだろうね
2017/09/16(土) 13:11:46.44ID:hF16Uo8A
正しい効果なんてとっくに明確になってるだろ「意思決定を遅延させることができる」
そのまんまだよ

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

そしてこういった意思決定の遅延を普遍的なモデルとして再考してあらゆる問題に適用しようぜというのがメッセージ指向の本質
無停止デプロイの話なんてどこにも出てこないんだよ
無停止デプロイはメッセージ指向を応用すれば簡単に実現できるね程度の枝葉の話だ
2017/09/16(土) 13:12:37.99ID:FAEJW2nX
「意思決定を遅延させることができる」
→それがあると何ができるか?
→プロセスを停止せずに変更が可能 (ここが一番重要)

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

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

これが正しい解釈だからねw
2017/09/16(土) 13:25:28.76ID:FAEJW2nX
> 無停止デプロイの話なんてどこにも出てこないんだよ

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

だからプロセスを停止するかしないかだけが焦点となってしまう。
2017/09/16(土) 13:28:34.44ID:6N2IGxKU
世界改変のためには一度世界を滅ぼす必要があるのか!
2017/09/16(土) 13:31:13.63ID:FAEJW2nX
安心しろ。世界を滅ぼさなくても一部だけを修正すればいいだけだ。

そしてソフトウェアは世界じゃない。
止めてリセットして同じところまで再開することが可能なのに、
わざわざ止めずに修正する必要なんて無いんだよ。
2017/09/16(土) 13:36:49.70ID:hF16Uo8A
だめだこりゃ
話を聞かない人間に物事を理解させることほど難しいことはない
2017/09/16(土) 13:38:39.88ID:FAEJW2nX
そりゃお前が「物事を他人に理解させるための説明」を
何一つしないからだな。

「話を聞かない」の前に、お前の話はどれだよ?ちゃんと反論してるだろ
その俺の反論した話を聞かないのはお前だろ
2017/09/16(土) 13:46:23.09ID:gf/ZkNkm
この議論はID:FAEJW2nXのほうがまともだね。
2017/09/16(土) 13:46:23.43ID:u+EwIGwO
優越コンプレックス餓ひどい奴がいるな
かわいそうに
2017/09/16(土) 13:48:02.25ID:FAEJW2nX
一応>>416は俺ではないことを示しておこう
2017/09/16(土) 13:51:47.58ID:gf/ZkNkm
>>407
意思決定が遅延できることには価値があるけど、それにはトレードオフが伴う
それを理解せずに普遍的なモデルとしてあらゆる問題に適用しようぜって言ってるうちは
世迷いごとと言われて当然

まずアラン・ケイの主張に対して自分たちのスタンスを明確にしたら?
困ったら「アラン・ケイの主張なんだから」じゃ議論にならんよね
2017/09/16(土) 14:03:12.81ID:gf/ZkNkm
もう一つ言っとくと無停止デプロイの類は
入れ替え可能なコンポーネントについて事前に意思決定してるからできる事なんだよ
遅延可能な意思決定の範囲ついて事前に意思決定をしてる

アラン・ケイがトレードオフについて理解できてないとは俺は思わないけどね
2017/09/16(土) 14:12:17.50ID:FAEJW2nX
全てがオブジェクトが入れ替え可能というふうに
事前に意思決定をしているアラン系(笑)
2017/09/16(土) 14:50:07.64ID:amUiv1H5
開発プロセスを止めて意思決定を待つ必要が無いってことなら大きいな

運用中のシステムを一時停止する話とは全然違う
2017/09/16(土) 14:52:50.48ID:/gVs+HA3
自分だけは常に正しいという前提
2017/09/16(土) 14:55:11.70ID:FAEJW2nX
>>421
もう一回言っておくね。
例えばC言語で、完成してないモジュールを勝手に定義して
自分の担当のモジュールを作ることは出来ます。

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

これがあなたが言ってる「意思決定を待つ必要がない」と
いうことそのものです。
2017/09/16(土) 14:56:16.78ID:FAEJW2nX
これからは開発プロセスを止めて意思決定を待つ必要が無いという開発を
>423のことと定義しましょう。実際その通りなのですからね。
2017/09/16(土) 15:18:35.50ID:0nrSN7bk
なんかこいつ>>307っぽいな
端から理解する気なんかないくせに難癖付けて絡んでくるの
相手するだけ時間の無駄
2017/09/16(土) 15:27:55.42ID:KTBQzRbQ
そもそも立ち位置がアンチ「アラン・ケイ」&「Smalltalk」だから
それらに関係しそうな主張はいっさい聞く耳もたないし
もしかしたら思考も意識的に停止させてるっぽいから
説明尽くしても届かない
2017/09/16(土) 15:49:34.15ID:gf/ZkNkm
>>426
少なくとも俺はアラン・ケイを尊敬してるよ。
アスキーのアラン・ケイ本を何度も読み返すくらいにはね。

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

議論から逃げて個人攻撃するしかできないのなら
端から難癖つけて絡むやつと同レベルだよ
2017/09/16(土) 15:57:16.09ID:FAEJW2nX
>>425
お前のそのレスは、難癖つけてるだけか?
それとも議論か?よく考えたほうが良いよ
2017/09/16(土) 16:39:45.47ID:2BjiIsa6
スマホまで使ってご苦労なことだ
2017/09/16(土) 17:18:39.42ID:0nrSN7bk
>>418
別に困ったからじゃない
アラン・ケイの主張なんだからアラン・ケイの主張を読み解くところから始めようというだけ
2017/09/16(土) 17:42:14.48ID:FAEJW2nX
>>430
教祖様の主張なんだから教祖様の主張を読み解くことから始めようという言い方で
無宗教の人を勧誘する行為はマヌケだなって思わない?

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

読めばお前も信者になるはずだっていう考えは
すごくマヌケだよw
2017/09/16(土) 17:47:16.58ID:0nrSN7bk
>>427
ID:FAEJW2nX ほどの人物ならちゃんと読んで咀嚼しようと試みれば疑問はいくらでも出てくるはずなのに
読んでもいっさい疑問はないとつっぱねる

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

これ以上、なにをどうせいっちゅうんじゃ?
2017/09/16(土) 18:04:49.40ID:FAEJW2nX
>>432
なんで疑問が出るんだ?お前は疑問が出てるのか?
読んだら誰だって疑問が浮かぶはずだと思ってるのか?
どういう理屈なんだそりゃw

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

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

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

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

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

むしろアンチという宗教の押しつけをやめてほしいわ
2017/09/16(土) 18:19:21.66ID:FAEJW2nX
> 「決定の遅延の徹底」という真の目的まで

それは目的じゃない。手段
2017/09/16(土) 18:21:11.83ID:FAEJW2nX
「決定の遅延の徹底」ではなく「決定の遅延の撤廃」と言い換えれば、

決定の遅延の撤廃が真の目的だ!と言われた時に
お前はなんで?って聞き返すだろ。
これは目的じゃなくて手段だからだ。
2017/09/16(土) 18:37:56.50ID:FAEJW2nX
わずか30秒の速攻レスにもうお手上げかなw
速攻でレスしたんだから、気づいてないはず無いよね

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

まあここまでいくつも出た目的をさんざん打ち破ってきたので
これ以上目的が思いつかないってのもわかりますがねw
2017/09/16(土) 18:58:32.38ID:0nrSN7bk
つくづく独りよがりの哀れなやつだな…きっと長生きするよ
2017/09/16(土) 18:59:50.46ID:FAEJW2nX
ほんと議論する気ねーのなw
そのくせそんな書き込みだけはすると
2017/09/16(土) 19:09:37.99ID:hF16Uo8A
決定の遅延の目的はシンプルで明確だよ
システム開発において「依存元に着手する時期 <= 依存先が解決する時期」という不等式は必ずしも成立しない
むしろ社内政治の都合で不等式が成立しないことの方が圧倒的に多い
これはコーディングフェーズだけの問題ではなく企画から運用まで様々なフェーズで起こりうる問題
依存関係木の葉から順番に問題を解決するやり方ではとてもじゃないが納期には間に合わない
なので依存先の解決を待たずに依存元の解決を可能にして並列に処理しなければならない
そのためには決定の遅延を導入する必要がある
2017/09/16(土) 19:15:16.87ID:FAEJW2nX
>>440
コーディングフェーズの話をしてくれ

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

それだと別に静的型付け言語でコンパイルするようなものでも
仮の仕様を先に決定して、あとから修正することも可能だろ
2017/09/16(土) 19:18:50.27ID:FAEJW2nX
一般論の話をすすめるのなら、契約が済んでいなくても
待ち時間を無駄に過ごすぐらいなら、先行して作業することが有るだろう
だけど契約することなく終わってしまえば、その作業は無駄になる。
トレードオフの話になってしまって、決定の遅延は必ずしも正解ではなく
徹底するのはやめた方がいいという当たり前の結果になる。

で、まだこのまま一般論の話を続ける?
当てはまらなくて意味がないから、
さっさとコーディングベースの話をしてほしいんだが
2017/09/16(土) 19:19:11.35ID:0nrSN7bk
せめて「疎結合システムは言語レベルで実現するものではない」とかいう的外れな拘りから離れられない限り議論なんて無理

もっともその縛りを解いたら、ケイの書いている「決定の遅延の徹底」のメリットの例に疑問も異論はないんだろ?
議論しようにも争点が見当たらないよ
2017/09/16(土) 19:20:06.21ID:0nrSN7bk
コーディングベースの話がしたいなら次世代言語スレでも行けば?
2017/09/16(土) 19:20:10.55ID:FAEJW2nX
>>443
だから、俺が言った(?)言葉を再掲して終わりじゃなくて
それに対してお前の意見を言えよw

お前の意見じゃなくて俺(?)の意見を、
お前が言ってるだけじゃねーかw
2017/09/16(土) 19:21:08.54ID:FAEJW2nX
>>444
じゃあ何の話をしたいんだよw

一般論の話で決定の遅延はトレードオフなんだから徹底するものではないと
いったはずだぞ。読んでないのかもしれないが。
2017/09/16(土) 19:52:57.54ID:RZXlyLKz
ああ分かった分かった「徹底」にひっかかってんのね
「徹底」っていうのは文字通り「底まで貫き通す」という意味以外にも
慣用的には努力目標(この場合はそれよりちょっと強めだけど)とする場合もあるんだよ
適用不可能と思われる局面でもそれを克服するために工夫するということはあっても
あきらかに適用したらダメな局面にもバカみたいに例外なく貫き通すって意味じゃあない
生きるのつらくない?
2017/09/16(土) 19:53:51.63ID:hF16Uo8A
>>442
もちろんコストとメリットのトレードオフはあるがそれはコントロールできるもの
そして評価は統計的な視点で行うべきだ
あまりにも期待値が低いなら無理に利用する必要はない

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

その辺りはバランスの問題だな
なんらかのリスクがあるから決定の遅延は絶対にダメだなどというのはあまりにも思慮に欠けるよ
2017/09/16(土) 19:58:03.28ID:FAEJW2nX
やっぱり一般論の話の方をしたいのか(苦笑
オブジェクト指向とは全く関係ないな
2017/09/16(土) 20:11:50.81ID:FAEJW2nX
なんか話がアランケイの話から
オブジェクト指向にすり替えられようとしてるな
気づいてよかった

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

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

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

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

だからOSや言語だけで対応できることじゃないんだよ。
今でもやろうと思えばできるが、コストがかかるからやらないってこと
2017/09/16(土) 20:21:12.24ID:FAEJW2nX
要点だけ言っておくと、アランケイが目指したシステムっていうのは
当時の世界観でのシステムであり、当時の世界観の
システムっていうのは言語そのものだった。言語がOSだと言っても過言じゃない。

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

アランケイが目指した再起動なしにオブジェクトを入れ替えられるという機能で
実現したかったものは、オブジェクトよりも大きな単位であるアプリケーション
・サービス・OS・仮想マシン・コンテナなどの単位で入れ替えることで実現できるようになった
2017/09/16(土) 20:59:57.74ID:8gG27N70
>>450
> メモリ内のデータ構造の変更が必要

やっぱ読んでないんじゃん…
2017/09/16(土) 21:08:35.29ID:AcW1bn43
>>440
アランケイの文脈から外れるけど
依存関係逆転とかはOOの原理のひとつだし
修正しやすいのはOOのメリットだと思う

>>441
Javaのインターフェイスと
Rubyのダックタイピングじゃ
修正の柔軟性が違ってくる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。