Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yuta Hiroto
10,187 views
ブラック企業から学ぶMVCモデル
若手の会での発表資料
Technology
◦
Read more
24
Save
Share
Embed
Embed presentation
Download
Downloaded 26 times
1
/ 74
2
/ 74
3
/ 74
4
/ 74
5
/ 74
6
/ 74
Most read
7
/ 74
8
/ 74
9
/ 74
10
/ 74
11
/ 74
Most read
12
/ 74
13
/ 74
14
/ 74
15
/ 74
16
/ 74
17
/ 74
18
/ 74
19
/ 74
20
/ 74
21
/ 74
22
/ 74
23
/ 74
24
/ 74
Most read
25
/ 74
26
/ 74
27
/ 74
28
/ 74
29
/ 74
30
/ 74
31
/ 74
32
/ 74
33
/ 74
34
/ 74
35
/ 74
36
/ 74
37
/ 74
38
/ 74
39
/ 74
40
/ 74
41
/ 74
42
/ 74
43
/ 74
44
/ 74
45
/ 74
46
/ 74
47
/ 74
48
/ 74
49
/ 74
50
/ 74
51
/ 74
52
/ 74
53
/ 74
54
/ 74
55
/ 74
56
/ 74
57
/ 74
58
/ 74
59
/ 74
60
/ 74
61
/ 74
62
/ 74
63
/ 74
64
/ 74
65
/ 74
66
/ 74
67
/ 74
68
/ 74
69
/ 74
70
/ 74
71
/ 74
72
/ 74
73
/ 74
74
/ 74
More Related Content
KEY
やはりお前らのMVCは間違っている
by
Koichi Tanaka
ODP
MVC の Model を考える
by
tomo_masakura
PDF
GUI アプリケーションにおける MVC
by
Yu Nobuoka
KEY
塹壕よりLivetとMVVM
by
Hiroshi Maekawa
PDF
MvcのFatモデルに立ち向かう
by
Shun Hikita
PDF
あの日見たMVCを僕たちはまだ知らない for RoR
by
shinnosuke kugimiya
PDF
ゲームエンジンとMVC
by
AimingStudy
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
やはりお前らのMVCは間違っている
by
Koichi Tanaka
MVC の Model を考える
by
tomo_masakura
GUI アプリケーションにおける MVC
by
Yu Nobuoka
塹壕よりLivetとMVVM
by
Hiroshi Maekawa
MvcのFatモデルに立ち向かう
by
Shun Hikita
あの日見たMVCを僕たちはまだ知らない for RoR
by
shinnosuke kugimiya
ゲームエンジンとMVC
by
AimingStudy
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
What's hot
PPTX
いまさら学ぶMVVMパターン
by
Yuta Matsumura
PDF
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
PDF
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
by
shinjiigarashi
PPTX
ゲームエンジニアのためのデータベース設計
by
sairoutine
PDF
Riverpodでテストを書こう
by
Shinnosuke Tokuda
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
PDF
WebSocketのキホン
by
You_Kinjoh
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
by
Preferred Networks
PDF
プロトタイピングとユーザビリティテストで「UXデザイン」を練りあげよう! | UXデザイン基礎セミナー 第4回
by
Yoshiki Hayama
PDF
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
by
Unity Technologies Japan K.K.
PPT
メタプログラミングって何だろう
by
Kota Mizushima
PPTX
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
by
U-dai Yokoyama
PDF
MySQLで論理削除と正しく付き合う方法
by
yoku0825
PDF
BuildKitの概要と最近の機能
by
Kohei Tokunaga
PDF
ドメイン駆動設計の正しい歩き方
by
増田 亨
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
いまさら学ぶMVVMパターン
by
Yuta Matsumura
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
by
shinjiigarashi
ゲームエンジニアのためのデータベース設計
by
sairoutine
Riverpodでテストを書こう
by
Shinnosuke Tokuda
RESTful Web アプリの設計レビューの話
by
Takuto Wada
WebSocketのキホン
by
You_Kinjoh
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
by
Preferred Networks
プロトタイピングとユーザビリティテストで「UXデザイン」を練りあげよう! | UXデザイン基礎セミナー 第4回
by
Yoshiki Hayama
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
by
Unity Technologies Japan K.K.
メタプログラミングって何だろう
by
Kota Mizushima
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
by
U-dai Yokoyama
MySQLで論理削除と正しく付き合う方法
by
yoku0825
BuildKitの概要と最近の機能
by
Kohei Tokunaga
ドメイン駆動設計の正しい歩き方
by
増田 亨
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
Viewers also liked
PDF
MVC 03
by
Satoshi Shoda
PDF
MVC 01
by
Satoshi Shoda
PDF
MVC 02
by
Satoshi Shoda
PDF
Validações no Ruby on Rails
by
Eduardo Mendes
PPTX
Mvc
by
Shutaro Anno
PDF
HTTP入門
by
Sota Sugiura
PPTX
ゲーム開発とMVC
by
Takashi Komada
PDF
Model View Presenter for Android
by
shinnosuke kugimiya
PDF
高専生流 突貫工事のススメ ~plugicaで挑んだ高専プロコン~
by
Takumi Sueda
PDF
iOSやAndroidアプリ開発のGoodPractice
by
Ken Morishita
PPTX
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
by
慎一 古賀
PDF
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
by
Ken Morishita
PDF
本当は楽しいインターネット
by
Yuya Rin
PDF
VIPER アーキテクチャによる iOS アプリの設計
by
Yuichi Adachi
PDF
ドメイン駆動設計入門
by
Takuya Kitamura
MVC 03
by
Satoshi Shoda
MVC 01
by
Satoshi Shoda
MVC 02
by
Satoshi Shoda
Validações no Ruby on Rails
by
Eduardo Mendes
Mvc
by
Shutaro Anno
HTTP入門
by
Sota Sugiura
ゲーム開発とMVC
by
Takashi Komada
Model View Presenter for Android
by
shinnosuke kugimiya
高専生流 突貫工事のススメ ~plugicaで挑んだ高専プロコン~
by
Takumi Sueda
iOSやAndroidアプリ開発のGoodPractice
by
Ken Morishita
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
by
慎一 古賀
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
by
Ken Morishita
本当は楽しいインターネット
by
Yuya Rin
VIPER アーキテクチャによる iOS アプリの設計
by
Yuichi Adachi
ドメイン駆動設計入門
by
Takuya Kitamura
Similar to ブラック企業から学ぶMVCモデル
PPTX
20130316 mix cpp-yuo
by
OKUBO_Yusuke
PDF
Introduction for Browser Side MVC
by
Ryunosuke SATO
PDF
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
by
Akira Inoue
PDF
GUIのアーキテクチャ
by
Kentaro Inomata
PPTX
MVVM入門
by
Kazutoshi Urabe
PDF
ASP.NET MVC 2 ~新機能の紹介~
by
Yoshitaka Seo
PDF
人をだめにするMVCを求めて
by
meru_akimbo
PDF
Next Generation Web Application Architecture
by
Koji SHIMADA
PDF
Asp Net Mvc 基礎のキソ
by
Yoshitaka Seo
PPT
T35 ASP.NET MVCを使ったTDD入門
by
normalian
PPT
Spring mvc
by
Ryo Asai
PPTX
Mvpvm pattern
by
Mami Shiino
PDF
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
by
Mami Shiino
PPTX
プログラミング社内勉強会 モデルを作ろう
by
Akiko Goto
PDF
DevLOVE発表資料
by
Zenji Kanzaki
PDF
第1回SIA研究会(例会)プレゼン資料
by
Tae Yoshida
PPTX
T90 きっと怖くないmvvm & mvpvm
by
伸男 伊藤
PPTX
モデリングの神髄
by
bpstudy
PDF
如何に “データが壊れない” 管理画面を作るか - 管理画面開発の裏側
by
Keiji Muraishi
PDF
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
by
Hiroyuki Ohnaka
20130316 mix cpp-yuo
by
OKUBO_Yusuke
Introduction for Browser Side MVC
by
Ryunosuke SATO
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
by
Akira Inoue
GUIのアーキテクチャ
by
Kentaro Inomata
MVVM入門
by
Kazutoshi Urabe
ASP.NET MVC 2 ~新機能の紹介~
by
Yoshitaka Seo
人をだめにするMVCを求めて
by
meru_akimbo
Next Generation Web Application Architecture
by
Koji SHIMADA
Asp Net Mvc 基礎のキソ
by
Yoshitaka Seo
T35 ASP.NET MVCを使ったTDD入門
by
normalian
Spring mvc
by
Ryo Asai
Mvpvm pattern
by
Mami Shiino
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
by
Mami Shiino
プログラミング社内勉強会 モデルを作ろう
by
Akiko Goto
DevLOVE発表資料
by
Zenji Kanzaki
第1回SIA研究会(例会)プレゼン資料
by
Tae Yoshida
T90 きっと怖くないmvvm & mvpvm
by
伸男 伊藤
モデリングの神髄
by
bpstudy
如何に “データが壊れない” 管理画面を作るか - 管理画面開発の裏側
by
Keiji Muraishi
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
by
Hiroyuki Ohnaka
ブラック企業から学ぶMVCモデル
1.
ブラック企業から学ぶMVCモデル 第47回 情報科学若手の会
2014/09/15
2.
who?? 2 NAME
廣戸 裕大 TWITTER @about_hiroppy SITE about-hiroppy.com
3.
注意1 ! !
今回はwebアプリケーションではない前提の MVCモデルの話をします プラガブルMVCの話はしません あくまで例として自分のイメージでのブラック企業等なので イメージと違ったらすいません>< 3
4.
注意2 ! !
所属団体とか全く関係ないです ! 4
5.
流れ 5 !
! - MVCとはなんなのか - ブラック企業とはなんなのか - ブラック企業を例えにMVCのいい書き方を考察する - まとめ
6.
MVCとは? ! !
Model View Controllerの略称 1979年 Smalltalkという言語のGUI設計で用いられた概念 6
7.
Smalltalk ! !
ゼロックスのパロアルト研究所で作られた オブジェクト指向プログラミング言語 現在はシンコムからVisualWorksという名前で 販売されている 7
8.
MVCの背景にある考え方 8
9.
! ! -
Multitier Architecture - PresentationDomainSeparation 9
10.
Multitier Architecture 10
ユーザインタフェース層 アプリケーション層 ドメイン層 インフラストラクチャ層 上位層 ユーザに情報を表示しユーザの入力を解釈する ドメイン層のオブジェクトを協調させて アプリケーションの問題解決を行う ビジネスに関する知識を持たず作業を調整するだけ ビジネスロジックを表現する部分 上位のレイヤを支える一般的な技術的機能を提供する 下位層 下の層は上の層のことを知っていてはいけない!
11.
PresentationDomainSeparation ! !
Martin Fowler氏が提唱した プレゼンテーションロジックとドメイン(ビジネス)ロジックが 分かれていると理解しやすいから分けよう! 11
12.
各要素の定理
13.
Model ! !
システム中でのビジネスロジックを担当する 問題対象としてのデータとそのデータに対する操作する データの整合性*においての責任を持つ データの整合性: データの変更が中途半端でつじつまが合わなくなってしまっている状況13
14.
View ! !
プレゼンテーションロジックでModelがもつ 情報の表示や更新を担当 ユーザ入力の取得の管理もする 14
15.
Controller ! !
プレゼンテーションロジックでの ユーザー操作のインプットを担当する ModelとViewに対して命令を出す 15
16.
16 ユーザインタフェース層 アプリケーション層
ドメイン層 View Controller Model プレゼンテーションロジック ビジネスロジック
17.
Controller View Model
17 1. 入力を通知2.処理を命令する 3.変更されたことを通知 4.表示する情報を取得
18.
18 Controller 1.
入力を通知2.処理を命令する 3.変更されたことを通知 View Model 4.表示する情報を取得 ModelがViewに通知する仕組み
19.
Observerパターン ! !
最初の初期化時,Modelに対して変更があったときに 情報を受け取りたいViewを登録する 変更されたら登録されたすべてのViewに対して通知を行う 19
20.
MVCモデルとは? ! !
Model View Controllerの略称 1979年 Smalltalkという言語のGUI設計で用いられた概念 20
21.
ではwebアプリケーションでは… 21
22.
_人人人人人_ > Model2
< ‾YYYYY‾ 22
23.
Model 2 !
! MVC Model2,MVC2とも呼ばれる 1998年 JSP仕様のドラフトで提唱された MVCをWebサービスに適応させたもの 23
24.
WebBrowser 1. クライアントからのリクエスト(URL)
Controller View Model 24 3. 結果を返す2. リクエストを通知 4. 結果を反映させる 5. レスポンス M → V間での関係性を持たない!
25.
MVCとModel 2の違い !
! サーバー側からいきなりModelの状態変更が 通知されることはHTTPがステートレスなのでできない よってControllerを経由しないといけないので ModelからViewへの通知ができない 25
26.
MVCを使うことによるメリット ! !
- 機能別に分かれているのでテストがしやすい - ViewとModelでの並行開発が可能となる - ほかの部分の変更による影響を受けにくい - 相互参照の回避が容易 - 再利用性が高い 26
27.
本題 ブラック企業から学ぶ MVCモデル
27
28.
ブラック企業 … 28
! ! ブラック企業(ブラックきぎょう)またはブラック会社(ブラックが いしゃ)とは、広義としては暴力団などの反社会的団体との繋がりを 持つなど違法行為を常態化させた会社を指し、狭義には新興産業にお いて若者(わかもの)を大量に採用し、過重労働・違法労働によって使 いつぶし、次々と離職に追い込む成長大企業を指す ! cf. wikipedia ブラック企業
29.
29 ⚠ あくまで個人的なイメージです
30.
ブラック企業大賞2014 30 ノミネート要努力賞
株式会社 大庄(居酒屋チェーン「日本海庄や」) JR西日本 株式会社 ヤマダ電機 株式会社 A-1 Pictures タマホーム株式会社 東京都議会 株式会社リコー 株式会社 秋田書店 学校法人智香寺学園 正智深谷高等学校・ 株式会社 イスト 実行委員会は9月に入って、緊急ノミネートとしてさらに以下の2企業が緊急に追加された。 ! 株式会社 不二ビューティ(たかの友梨ビューティクリニック) 株式会社ゼンショー(すき家) 株式会社ゼンショー(すき家) 大賞 株式会社 ヤマダ電機
31.
31 http://doda.jp/lab/black/
32.
32
33.
目的 ! !
Fat Controllerを避ける 33
34.
34 Controller 主人公
社員(家電量販店)
35.
Model 効率化ツール 管理ツール
35
36.
36 View 上司
37.
ブラック企業系社員 ! !
社員(Controller)が一番頑張るパターン また、効率ツール(Model)が貧弱であるパターン 37
38.
38 365日24時間働け!
39.
社員(Controller) 2. 在庫の存在確認,
在庫を取得して 在庫の数を減らす 在庫状況の更新 etc … 上司(View) ツール(Model) 39 1. 仕事を通知 3. 仕事が終わったことを通知 4. データの取得
40.
ブラック企業系社員 40 大量の仕事(ユーザからの入力)
仕事の処理をして 更新をする 仕事が終わったことを知らせる
41.
41 問題点 1
ControllerがModelの値を操作する処理をするため カプセル化ができていない
42.
42 顧客情報を盗む 転売
⚠ ブラック企業とは関係ありません
43.
43 問題点 2
全体の処理は単一ではないのでControllerに書くと 肥大化してしまう
44.
44 在庫管理 生産
生産
45.
45 問題点 3
手続きがControllerに書かれることでModelの再利用の メリットが減ってしまう
46.
46 処理 A,B,C
… 処理 A,B
47.
47 処理 A,B,C
…
48.
働き過ぎ!! 48
49.
49 ではどうすればControllerの仕事量を軽減させるか
50.
当たり前ですが… Modelにビジネスロジックを書く 50
つまり… ブラック企業はもっとツールを自動化するべき(?)
51.
一般企業系社員 ! !
社員(Controller)は通知だけをする 51
52.
社員(Controller) 1. 仕事を通知2.
仕事が来たことを通知 上司(View) ツール(Model) 52 3. 仕事が終わったことを通知 4. データの取得
53.
一般企業系社員 53 仕事(ユーザからの入力)
仕事の処理をして 更新をする 仕事が終わったことを知らせる 仕事の処理を依頼する
54.
これまだ社員(Controller)の仕事 減らせるよね? 54
55.
一般企業系社員 55 仕事(ユーザからの入力)
仕事の処理を依頼する 仕事が終わったことを知らせる Controllerがする 必要性はない
56.
ホワイト企業系社員 ! !
社員(Controller)は通知だけをするが 仕事(処理)の通知をするだけで終了の通知はしない 56
57.
社員(Controller) 1. 仕事を通知2.
仕事が来たことを通知 上司(View) ツール(Model) 57 3. 仕事が終わったことを通知 4. データの取得
58.
ホワイト企業系社員 58 仕事(ユーザからの入力)
仕事が終わったことを 仕事の処理を依頼する 知らせる
59.
社員(Controller) 1. 仕事を通知2.
仕事が来たことを通知 上司(View) ツール(Model) 59 3. 仕事が終わったことを通知 4. データの取得 ModelがViewに通知する仕組み
60.
Observerパターン ! !
最初の初期化時,Modelに対して変更があったときに 情報を受け取りたいViewを登録する 変更されたら登録されたすべてのViewに対して通知を行う 60
61.
Observerパターン 61 観察者通知者
View Model 事前に登録しておく 自分自身にchangeのメッセージを送る 登録されたViewに対して updateのメッセージを送る dependency
62.
62 もしかして社員(Controller)いらなくないですか?
63.
63 仕事(ユーザからの入力) 仕事の処理を依頼する
仕事が終わったことを通知
64.
64 問題点 !
! 1. 互いに相手の機能を呼び合っている点 2. Modelは相手のことを知ってはいけない
65.
問題点1 65 !
! 互いに相手の機能を呼び合っている点 ! 密結合の状態の場合 一方の変更が他方に影響を及ぼす可能性がある
66.
問題点2 66 !
! Modelは相手のことを知ってはいけない ! ViewやControllerを参照できるような設計はいけない ModelがViewと一対一での対応をしない可能性があるから
67.
必要! 67
68.
68 まとめ
69.
MVCの本質 ! !
疎結合 ! ViewかModelで変更が生じても Controllerを置くことにより問題を吸収できる “デザイン”と”ロジック”における分業化 69
70.
Controllerの肥大化を防ぐ 70 !
! - Modelの役割を理解する 決してデータの入れ物ではなく入れ物にいれる役割もある - Controllerの処理範囲 Viewの都合に引っ張られる部分を処理する !
71.
71 最後に…
72.
! ! 人それぞれMVCに対しての捉え方が違うと思いま
すのでこれが必ず正しいとは限りません! ! 72
73.
参考文献 73 !
! - Separating User Interface Code http://martinfowler.com/ieeeSoftware/separation.pdf - The Model-View-Controller (MVC) http://heim.ifi.uio.no/~trygver/2003/javazone-jaoo/MVC_pattern.pdf - Model-View-Controller http://www.cue.im.dendai.ac.jp/~masuda/mvc/
74.
! ! ご清聴ありがとうございます!
74
Download