第30回Smalltalk勉強会

当方Smalltalk素人ですが、MVCに関する議論が興味深かったので僭越ながらトゥギャらせていただきました。 http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai
1
Kazuki Minamitani @kaminami

サンプルプログラムに不穏なアメリカネズミの名前が入っている。丸を三つ書くらしいが大変危険な図柄。 #st_study

2011-03-30 19:05:15
Kazuki Minamitani @kaminami

「もういちどMVC」 阿部和広。MVC発見史のつもりで。#st_study

2011-03-30 19:07:41
Kazuki Minamitani @kaminami

MVC考案者?Trygve Mikkjel Heyerdahl Reenskaug。<--読めない。 1978-1979に提案。MODELS-VIEWS-CONTROLLERS という論文が出ている。 #st_study

2011-03-30 19:09:26
Masashi UMEZAWA @umejava

ちなみにReenskaugはいまはDCIを提唱しています。#st_study

2011-03-30 19:11:59
Kazuki Minamitani @kaminami

YellowBookで解説されるはずだったけど、出版されなかった。BlueBookとOrangeBookとGreenBookは出版されている。Smalltalk-80の希少本。#st_study

2011-03-30 19:12:15
Kazuki Minamitani @kaminami

MVCはSmalltalkシステム全体を貫いている設計指針。デザインパターン以前から存在。#st_study

2011-03-30 19:14:41
Masashi UMEZAWA @umejava

しかしReenskaugのオリジナルのMVCは多重度が結構不思議な感じ。#st_study

2011-03-30 19:14:53
Kazuki Minamitani @kaminami

あれ、論文になってる。羽生田栄一: MVCダンス : 身体の型によるソフトウェアパターン入門 http://ci.nii.ac.jp/naid/110002911417 #st_study

2011-03-30 19:16:24
Masashi UMEZAWA @umejava

初期のSmalltalkのMVCには依存性機構(オブザーバ)すらなかった。#st_study

2011-03-30 19:17:33
Kazuki Minamitani @kaminami

MVCにも分類がある。古いものから、コントローラが頑張るMVC。依存性があるMVC。3. プラガブルMVC。 #st_study

2011-03-30 19:18:59
Kazuki Minamitani @kaminami

MVCな世界では、ActiveなWindowの上でUserInterrupt(Alt + .)するとデバッガからWindowが捕まえられて、さらに臓物(Model、Controller)を引きずり出すことができる。 #st_study

2011-03-30 19:20:22
Masashi UMEZAWA @umejava

シンプルですがすがしいぜMVC。 #st_study

2011-03-30 19:21:37
Kazuki Minamitani @kaminami

Viewの性質で重要なのは、modelとcontrollerを直接持っていること。自分自身を表示する機能があること。 #st_study

2011-03-30 19:23:31
Kazuki Minamitani @kaminami

基本的には、Viewと同じ数だけControllerがある。#st_study

2011-03-30 19:24:49
Masashi UMEZAWA @umejava

今のMorphicの複雑さに辟易しているのでこのわかりやすさはいいなー。 #st_study

2011-03-30 19:25:37
Kazuki Minamitani @kaminami

Controllerはmodelとviewを直接持っている。センサー機能があり、ユーザからの入力を受け付ける。 #st_study

2011-03-30 19:25:48
Kazuki Minamitani @kaminami

Morphは、ModelでありViewでありControllerである。ゴテゴテ。 #st_study

2011-03-30 19:27:35
Kazuki Minamitani @kaminami

ModelはDependents(依存しているモノ)を保持している。ただし、ControllerであるかViewであるかは知らない。ただ己を観察している奴らを知っている。 #st_study

2011-03-30 19:29:52
Kazuki Minamitani @kaminami

SmalltalkのフレームワークだとObjectでも同じことができるけど、Modelの方がDependentsの検索がちょっと速い。 #st_study

2011-03-30 19:30:48
Masashi UMEZAWA @umejava

初期のchanged:はパラメータが一個しかないところがきついね。 #st_study

2011-03-30 19:31:46
Kazuki Minamitani @kaminami

Modelは自分が変わったらchangedで変更を通知する。changedの通知を受けたら、依存するオブジェクト達にupdateメッセージを送る。今では当たり前になった、普通のObserverパターン。 #st_study

2011-03-30 19:32:53