Slide 1

Slide 1 text

MVC とはなにか MVC とはなにか PHP Conference Japan 2019 天重 誠⼆

Slide 2

Slide 2 text

ABOUT ME ABOUT ME 天重 誠⼆( あましげせいじ) 弁護⼠ドットコムという会社でプログラマーや ってます いまはBEAR.Sunday を使っています

Slide 3

Slide 3 text

今⽇のお話 1. はじめに 2. ドメインモデル 3. メンタルモデル 4. パーソナルコンピュータ 5. MVC とはなにか

Slide 4

Slide 4 text

アラン・ケイ MVC の悪かった点は、わたしたちがどう実装した かという点だ。それはあまりに機械的だった。 https://news.ycombinator.com/item?id=8841428

Slide 5

Slide 5 text

MVC は⼈間とそのメンタルモデルに関するもので あり、オブザーバパターンに関するものではな い。 https://digitalsoul.hatenadiary.org/entry/20100131/1264925022

Slide 6

Slide 6 text

MVC as Observer MVC as Observer A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80

Slide 7

Slide 7 text

ユーザーは皇帝だ。LRG で⾏われたすべてのこと は彼をサポートすることだった。 http://folk.uio.no/trygver/themes/mvc/mvc-index.html

Slide 8

Slide 8 text

1. はじめに 2. ドメインモデル 3. メンタルモデル 4. パーソナルコンピュータ 5. MVC とはなにか

Slide 9

Slide 9 text

ドメインモデル ドメインモデル

Slide 10

Slide 10 text

https://www.e-denpyou.com/blog.asp?entry=416

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

ドメイン駆動設計 モデルとは、選び抜かれてシンプルにされ、意図 的に組み⽴てられた知識の表現形式である。

Slide 14

Slide 14 text

https://www.photo-ac.com/main/detail/1519561

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

キャンセル時の処理 注⽂伝票の場合 -> 伝票の破棄 券売機の場合 -> 別な情報システムが必要

Slide 17

Slide 17 text

ドメイン駆動設計 〜ユーザー、モデル、エンジニアの新たな関係〜( 杉本啓) https://www.slideshare.net/ssuser8e5e71/ss-53485325/9

Slide 18

Slide 18 text

ドメイン駆動設計 〜ユーザー、モデル、エンジニアの新たな関係〜( 杉本啓) https://www.slideshare.net/ssuser8e5e71/ss-53485325/12

Slide 19

Slide 19 text

問題領域( ドメイン) 問題領域( ドメイン) = ビジネス/ ⽬的 = ビジネス/ ⽬的 顧客が⾷べたいものを出す( ⽬的) 出した料理の原価と労働と売上の差分が利益( ⽬ 的) (※ 実際には利益のモデルはこんなに単純ではない)

Slide 20

Slide 20 text

解決領域( ドメインモデル) 解決領域( ドメインモデル) = ビジネスを駆動するシステム/ ⼿段 = ビジネスを駆動するシステム/ ⼿段 料理を作る( ⼿段) 顧客から注⽂を取る( ⼿段) 注⽂伝票による情報伝達( ⼿段)

Slide 21

Slide 21 text

ドメインモデル ドメインモデル ドメイン( ⽬的) を情報処理システム( ⼿段) によって モデル化したもの

Slide 22

Slide 22 text

誰にとってのモデルなのか?

Slide 23

Slide 23 text

トリグヴェ・リーンスカウク 従来のシステムの設計では、強⼒な抽象化セット を選択すること、これらの抽象に適した表現を決 定すること、すべてのユーザーがそれらに実質的 に同じ意味を付けることを保証することに多⼤な 作業が費やされます。システムがインストールさ れるやいなや、マン- マシンシステム全体に⼤きな 慣性が発⽣し、それらが良いか悪いかに関わらず 古い意思決定を固める傾向があります。 A note on DynaBook requirements

Slide 24

Slide 24 text

ドメインモデルは社会的なシステムとして 個⼈を制約する

Slide 25

Slide 25 text

1. はじめに 2. ドメインモデル 3. メンタルモデル 4. パーソナルコンピュータ 5. MVC とはなにか

Slide 26

Slide 26 text

メンタルモデル メンタルモデル

Slide 27

Slide 27 text

https://blogs.yahoo.co.jp/niconicocub/10300438.html

Slide 28

Slide 28 text

メンタルモデル(英: mental model )とは、頭の中 にある「ああなったらこうなる」といった「⾏動 のイメージ」を表現したものである。 https://ja.wikipedia.org/wiki/ メンタルモデル

Slide 29

Slide 29 text

https://www.photo-ac.com/main/detail/2263511

Slide 30

Slide 30 text

ドナルド・ノーマン 誰のためのデザイン? 指の使い⽅を間違えたとしても、はさみは使え る。それは、はさみの機能する部分が⽬に⾒え、 その意味するところが明らかなので、はさみがど んなものかわかるからだ。

Slide 31

Slide 31 text

道具から適切なメンタルモデルを 道具から適切なメンタルモデルを 構成するには... 構成するには... 可視性 よい概念モデル よい対応付け フィードバック

Slide 32

Slide 32 text

ドナルド・ノーマン 誰のためのデザイン? プログラマーたちは、⾃分たちの書いたプログラ ムがユーザーに暴威をふるっているということを 知って驚愕している。

Slide 33

Slide 33 text

アラン・ケイ コンピュータソフトウェア われわれは幼年期に、粘⼟というものが、ただ両 ⼿を突っ込むだけで、どのようにでも変形できる ことを発⾒する。コンピュータの場合、同じよう な発⾒をする⼈は滅多にいない。コンピュータの 素材は、⼈間の経験からあまりにもかけ離れてい て、さながらモニター画⾯を⾒ながら、ボタンと 挟みを使って、放射性物質のインゴットを遠隔操 作するような感がある。

Slide 34

Slide 34 text

ユーザーイリュージョン

Slide 35

Slide 35 text

アラン・ケイ コンピュータソフトウェア ⽬の前にある知覚できるものが、その⼈にとって のコンピュータである

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

ドナルド・ノーマン もっともよいコンピュータプログラムとは、コン ピュータそのものは「消え去って」いるようなプ ログラムである。そこでは、⼈は作業そのものに 取り組んでいるのであって、コンピュータを使っ ているという意識はなくなっている。

Slide 38

Slide 38 text

アラン・ケイ ユーザーインターフェースに関する個⼈的考察 ユーザーインターフェースデザインの夜明けが本 当に始まったのは、コンピュータデザイナーが、 エンドユーザーもちゃんと頭を使っているという ことだけでなく、エンドユーザーがどのように頭 を使っているかをよく理解することが、インタラ クションのパラダイムを完全に変える、というこ とに気付いたときだった。

Slide 39

Slide 39 text

1. はじめに 2. ドメインモデル 3. メンタルモデル 4. パーソナルコンピュータ 5. MVC とはなにか

Slide 40

Slide 40 text

パーソナルコンピュータ パーソナルコンピュータ

Slide 41

Slide 41 text

シーモア・パパート コンピュータが⼦供をプログラムするべきか、⼦ 供がコンピュータをプログラムするべきか?

Slide 42

Slide 42 text

https://ja.wikipedia.org/wiki/1984_( 広告)

Slide 43

Slide 43 text

トリグヴェ・リーンスカウク ⼈権宣⾔に2つのことを追加することを提案しま す。 ⼈は⾃分の要求を知ることを強要されない。 ⼈はキーボードの奴隷労働に罰せられることな く、いつでも⼼を変えることができる。 A note on DynaBook requirements

Slide 44

Slide 44 text

システムと個⼈の関係

Slide 45

Slide 45 text

アクティブなインターフェースはデバイス所有者 からかけ離れた⾔語的なコンセプトを使った⾔葉 であってはいけません。所有者は好きなときに好 きな場所で⾃分のテキストファイルやプログラム を修正したり編集したりすることができるでしょ う。 あらゆる年齢の「⼦供たち」のためのパーソナル・コンピュータ

Slide 46

Slide 46 text

Dan Intalls Smalltalk の底を流れる設計思想

Slide 47

Slide 47 text

http://folk.uio.no/trygver/themes/mvc/mvc-index.html

Slide 48

Slide 48 text

要件は時間とともに進化するため、新しいシステ ムを前もって設計するのは難しいことでよく知ら れています。解決策は、モデリング⾔語をプログ ラミング⾔語にすることです。 http://folk.uio.no/trygver/2003/javazone-jaoo/MVC_pattern.pdf

Slide 49

Slide 49 text

1. はじめに 2. ドメインモデル 3. メンタルモデル 4. パーソナルコンピュータ 5. MVC とはなにか

Slide 50

Slide 50 text

MVC とはなにか MVC とはなにか

Slide 51

Slide 51 text

ドメインモデルは情報システムがもつモデル。 社会的システムとして個⼈を束縛する。 メンタルモデルは個⼈が世界に抱く内⾯的なモ デル。メンタルモデルを形成するためには良い 道具が必要、特にコンピュータにあってはユー ザーイリュージョンが重要。 パーソナルコンピュータは社会と個⼈の関係を 変えようとした。⾃分の⼒でシステムを書き換 えられることが重要だった。そのためにはコン ピュータの⾔語を個⼈が理解できなければなら ない。

Slide 52

Slide 52 text

アラン・ケイ MVC はもともとPARC( パロアルト研究所) でだいた い40 年前に作られた。良いところは哲学的だった ことだ。45 年前にユタ⼤学で私が関わっていた3D グラフィックスでの「カメラ」と「ワールド」と いう観念によく適合するアイデアだった。 https://news.ycombinator.com/item?id=8841428

Slide 53

Slide 53 text

理想的なMVC のソリューションは、ユーザーがド メインの情報を直接⾒て操作するという、ユーザ ーイリュージョンをサポートすることでした。 http://folk.uio.no/trygver/themes/mvc/mvc-index.html

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

分散情報システム

Slide 58

Slide 58 text

http://folk.uio.no/trygver/themes/mvc/mvc-index.html

Slide 59

Slide 59 text

No content

Slide 60

Slide 60 text

トリグヴェ・リーンスカウク ⼈権宣⾔に2つのことを追加することを提案しま す。 ⼈は⾃分の要求を知ることを強要されない。 ⼈はキーボードの奴隷労働に罰せられることな く、いつでも⼼を変えることができる。 A note on DynaBook requirements

Slide 61

Slide 61 text

OOUI の⽬当て 仕事の対象がそこに⾒えていて、それに対して⾏ えるアクションが⾒えていて、その結果の状態が 常に⾒えるようになっていれば、ユーザーはその 道具を使ってできること、その道具の役割を⾃ら 発⾒し、妥当性を感じながら仕事を組み⽴てるこ とができます。そのような仕事は楽しいもので す。 https://www.sociomedia.co.jp/8740

Slide 62

Slide 62 text

Modeless and Modal そのデザインは、いったい誰に⼒を与えるものな のか

Slide 63

Slide 63 text

No content