Enviar búsqueda
Cargar
ぼくがかんがえたさいきょうのMvc
•
33 recomendaciones
•
14,103 vistas
karupanerura
Seguir
Denunciar
Compartir
Denunciar
Compartir
1 de 34
Descargar ahora
Descargar para leer sin conexión
Recomendados
Jyoken 講習20150513
Jyoken 講習20150513
reew2n
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
Validações no Ruby on Rails
Validações no Ruby on Rails
Eduardo Mendes
Yapc asia-2012-lt-thon
Yapc asia-2012-lt-thon
karupanerura
正月発火村に参加して変なJobQueueサーバー作った話
正月発火村に参加して変なJobQueueサーバー作った話
karupanerura
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみよう
charsbar
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
理想のWEB開発
理想のWEB開発
エンジニア勉強会 エスキュービズム
Recomendados
Jyoken 講習20150513
Jyoken 講習20150513
reew2n
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
Validações no Ruby on Rails
Validações no Ruby on Rails
Eduardo Mendes
Yapc asia-2012-lt-thon
Yapc asia-2012-lt-thon
karupanerura
正月発火村に参加して変なJobQueueサーバー作った話
正月発火村に参加して変なJobQueueサーバー作った話
karupanerura
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみよう
charsbar
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
理想のWEB開発
理想のWEB開発
エンジニア勉強会 エスキュービズム
de:code エスキュービズム勉強会0620
de:code エスキュービズム勉強会0620
エンジニア勉強会 エスキュービズム
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
Yoichiro Sakurai
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
Tomohiro Kumagai
2014年からSwiftを振り返る! #cswift
2014年からSwiftを振り返る! #cswift
Tomohiro Kumagai
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
karupanerura
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
Megumi Otani(Czenhe)
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
Nagamine Hiromasa
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
Kenta Ohsugi
㉚Xcodeを覚えよう!簡単なアプリを作ってみよう!
㉚Xcodeを覚えよう!簡単なアプリを作ってみよう!
Nishida Kansuke
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
Kosuke Ogawa
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Kazuki Sato
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
Daisuke Yamashita
㉙iPhoneアプリ開発の基礎知識を覚えよう
㉙iPhoneアプリ開発の基礎知識を覚えよう
Nishida Kansuke
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
Wataru Terada
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
Toshio Ehara
デザイナーがXcodeを使って 開発効率をUPさせた 5つのエピソード + 現場エンジニアのコメント付き
デザイナーがXcodeを使って 開発効率をUPさせた 5つのエピソード + 現場エンジニアのコメント付き
Mayumi Narisawa
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
10分で分かるiOSアプリのつくりかた[ATGS主催イベント発表資料]
10分で分かるiOSアプリのつくりかた[ATGS主催イベント発表資料]
AT GS
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
daisuke shimizu
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Kazunari Hara
Más contenido relacionado
Destacado
de:code エスキュービズム勉強会0620
de:code エスキュービズム勉強会0620
エンジニア勉強会 エスキュービズム
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
Yoichiro Sakurai
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
Tomohiro Kumagai
2014年からSwiftを振り返る! #cswift
2014年からSwiftを振り返る! #cswift
Tomohiro Kumagai
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
karupanerura
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
Megumi Otani(Czenhe)
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
Nagamine Hiromasa
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
Kenta Ohsugi
㉚Xcodeを覚えよう!簡単なアプリを作ってみよう!
㉚Xcodeを覚えよう!簡単なアプリを作ってみよう!
Nishida Kansuke
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
Kosuke Ogawa
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Kazuki Sato
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
Daisuke Yamashita
㉙iPhoneアプリ開発の基礎知識を覚えよう
㉙iPhoneアプリ開発の基礎知識を覚えよう
Nishida Kansuke
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
Wataru Terada
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
Toshio Ehara
デザイナーがXcodeを使って 開発効率をUPさせた 5つのエピソード + 現場エンジニアのコメント付き
デザイナーがXcodeを使って 開発効率をUPさせた 5つのエピソード + 現場エンジニアのコメント付き
Mayumi Narisawa
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
10分で分かるiOSアプリのつくりかた[ATGS主催イベント発表資料]
10分で分かるiOSアプリのつくりかた[ATGS主催イベント発表資料]
AT GS
Destacado
(20)
de:code エスキュービズム勉強会0620
de:code エスキュービズム勉強会0620
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
2014年からSwiftを振り返る! #cswift
2014年からSwiftを振り返る! #cswift
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
㉚Xcodeを覚えよう!簡単なアプリを作ってみよう!
㉚Xcodeを覚えよう!簡単なアプリを作ってみよう!
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
㉙iPhoneアプリ開発の基礎知識を覚えよう
㉙iPhoneアプリ開発の基礎知識を覚えよう
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
デザイナーがXcodeを使って 開発効率をUPさせた 5つのエピソード + 現場エンジニアのコメント付き
デザイナーがXcodeを使って 開発効率をUPさせた 5つのエピソード + 現場エンジニアのコメント付き
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
10分で分かるiOSアプリのつくりかた[ATGS主催イベント発表資料]
10分で分かるiOSアプリのつくりかた[ATGS主催イベント発表資料]
Similar a ぼくがかんがえたさいきょうのMvc
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
daisuke shimizu
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Kazunari Hara
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
Yuji Kubota
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
Data APIを活かす JavaScript検索と管理画面のカスタマイズ
Data APIを活かす JavaScript検索と管理画面のカスタマイズ
bitpart
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
本気で使うStack storm
本気で使うStack storm
tyamane
Knockout を用いた Firefox OS アプリケーションの開発
Knockout を用いた Firefox OS アプリケーションの開発
Kentaro Iizuka
Pythonと DataDogを 使って簡単な システムモニターリング (Pycon apac 2013)
Pythonと DataDogを 使って簡単な システムモニターリング (Pycon apac 2013)
Naotaka Jay HOTTA
SappoRo.R #3 LT: Shiny by RStudio
SappoRo.R #3 LT: Shiny by RStudio
Mizumoto Atsushi
memcached proxy server development and operation
memcached proxy server development and operation
Tatsuhiko Kubo
Jawsug chiba API Gateway
Jawsug chiba API Gateway
Takuro Sasaki
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
Eisaku Terao
Using Ext Direct with SenchaTouch2
Using Ext Direct with SenchaTouch2
久司 中村
スターターライセンスではじめるAtlassian開発
スターターライセンスではじめるAtlassian開発
Masakuni Kato
AZ障害を想定したブログのマイグレーション
AZ障害を想定したブログのマイグレーション
Mitsuhiro Yamashita
iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する
iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する
Atsushi Tadokoro
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
Shu Sugimoto
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Yasuaki Matsuda
RoboVM
RoboVM
Satoshi Takami
Similar a ぼくがかんがえたさいきょうのMvc
(20)
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
Data APIを活かす JavaScript検索と管理画面のカスタマイズ
Data APIを活かす JavaScript検索と管理画面のカスタマイズ
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
本気で使うStack storm
本気で使うStack storm
Knockout を用いた Firefox OS アプリケーションの開発
Knockout を用いた Firefox OS アプリケーションの開発
Pythonと DataDogを 使って簡単な システムモニターリング (Pycon apac 2013)
Pythonと DataDogを 使って簡単な システムモニターリング (Pycon apac 2013)
SappoRo.R #3 LT: Shiny by RStudio
SappoRo.R #3 LT: Shiny by RStudio
memcached proxy server development and operation
memcached proxy server development and operation
Jawsug chiba API Gateway
Jawsug chiba API Gateway
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
Using Ext Direct with SenchaTouch2
Using Ext Direct with SenchaTouch2
スターターライセンスではじめるAtlassian開発
スターターライセンスではじめるAtlassian開発
AZ障害を想定したブログのマイグレーション
AZ障害を想定したブログのマイグレーション
iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する
iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
RoboVM
RoboVM
Más de karupanerura
Perl5 VS JSON
Perl5 VS JSON
karupanerura
コンテキストと仲良く
コンテキストと仲良く
karupanerura
The plan of Aniki 2.0
The plan of Aniki 2.0
karupanerura
Aniki::Internal
Aniki::Internal
karupanerura
The Crystal language *recently* update
The Crystal language *recently* update
karupanerura
KOWAZA for mackerel
KOWAZA for mackerel
karupanerura
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
karupanerura
DateTimeX::Moment
DateTimeX::Moment
karupanerura
Aniki has come
Aniki has come
karupanerura
Optimize perl5 code for perfomance freaks
Optimize perl5 code for perfomance freaks
karupanerura
router-simple.cr
router-simple.cr
karupanerura
Why we use mruby with Perl5?
Why we use mruby with Perl5?
karupanerura
はかたの塩
はかたの塩
karupanerura
Gotanda.pmの紹介
Gotanda.pmの紹介
karupanerura
すいすいSwift
すいすいSwift
karupanerura
Perlにおけるclass実装パターン
Perlにおけるclass実装パターン
karupanerura
モジュール開発におけるぼくの試行錯誤
モジュール開発におけるぼくの試行錯誤
karupanerura
Aniki - The ORM as our great brother.
Aniki - The ORM as our great brother.
karupanerura
Perl5 meta programming
Perl5 meta programming
karupanerura
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
karupanerura
Más de karupanerura
(20)
Perl5 VS JSON
Perl5 VS JSON
コンテキストと仲良く
コンテキストと仲良く
The plan of Aniki 2.0
The plan of Aniki 2.0
Aniki::Internal
Aniki::Internal
The Crystal language *recently* update
The Crystal language *recently* update
KOWAZA for mackerel
KOWAZA for mackerel
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
DateTimeX::Moment
DateTimeX::Moment
Aniki has come
Aniki has come
Optimize perl5 code for perfomance freaks
Optimize perl5 code for perfomance freaks
router-simple.cr
router-simple.cr
Why we use mruby with Perl5?
Why we use mruby with Perl5?
はかたの塩
はかたの塩
Gotanda.pmの紹介
Gotanda.pmの紹介
すいすいSwift
すいすいSwift
Perlにおけるclass実装パターン
Perlにおけるclass実装パターン
モジュール開発におけるぼくの試行錯誤
モジュール開発におけるぼくの試行錯誤
Aniki - The ORM as our great brother.
Aniki - The ORM as our great brother.
Perl5 meta programming
Perl5 meta programming
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
ぼくがかんがえたさいきょうのMvc
1.
ぼくがかんがえた さいきょうの MVC id:karupanerura 13年9月20日金曜日
2.
だれ? かるぱねるら(karupanerura) Perl, JS, Java,
elisp, zsh ソーシャルゲーム開発者 Mobile Factory, Inc. Chiba.pm 13年9月20日金曜日
3.
Author (PAUSE: KARUPA) Plack::Middleware::HTMLLint Filesys::Notify::KQueue AnyEvent::ForkManager Contribute Teng CPAN 13年9月20日金曜日
4.
MVCおさらい! 13年9月20日金曜日
5.
MODEL ビジネスロジック アプリケーション機能 (データベース操作) データの変更の通知 ex) Backbone.Model WebAppは例外 13年9月20日金曜日
6.
VIEW UI出力 データの整形 データの変換 ex) Template 13年9月20日金曜日
7.
CONTROLLER UI入力 入力をModel/Viewに受け渡す Modelの結果をViewに通知する WebAppなど 13年9月20日金曜日
8.
本題 13年9月20日金曜日
9.
MVC意外と むずかしくないですか? 13年9月20日金曜日
10.
個人的MVCあるある ふぇぇ…超巨大Modelができちゃったよぉ……。 SQLが色々な所に書いてあってカオス。 気付いたらControllerでもModelでも同じデータをfetchし てたけどどっちにまとめるべきだろう…。 ViewがJSONとHTML両方あるんだけど…。 というか急にJSONが増えたんだけど…。 13年9月20日金曜日
11.
こういうの なくしたいですよね 13年9月20日金曜日
12.
今日はなすこと MVCはそのまま使わない MVCのカスタマイズ チーム内規約をつくろう まとめ 13年9月20日金曜日
13.
MVCは そのまま使わない 13年9月20日金曜日
14.
MVCの定義は抽象的 対して、アプリケーションの種類は多い Client Application Web Application API
Server Application そのままMVCを適用するとカオスになりがち 定義が曖昧な部分がブレる 13年9月20日金曜日
15.
MVCのカスタマイズ 13年9月20日金曜日
16.
なぜやるか MVCの定義が曖昧な部分を明確にする アプリケーションにMVCを最適化する WebAppならWebAppのMVC SocialAppならSocialAppのMVC 規則がはっきりしたコードが書きやすくなる MVCの本来の目的の達成 13年9月20日金曜日
17.
具体例 Web Applicationの場合 13年9月20日金曜日
18.
WebAppの特徴(1) 入力がいろいろある HTTP Header /
Request Parameter / Cool URI / etc... うまい具合に吸収して統一しないと扱いにくい 出力もいろいろある HTML / JSON / MessagePack / XML / etc... 13年9月20日金曜日
19.
WebAppの特徴(2) リクエスト毎にしか状態が無い DBと組み合わせる必要がある 大量のリクエストを捌きたいケースも多い キャッシュも考慮した仕組みが必要 アプリケーションの機能が膨大になるケースも DB操作が多く煩雑になりがちなので分離して抽象化 13年9月20日金曜日
20.
OVERVIEW View ControllerContext Model DB user web service request response 13年9月20日金曜日
21.
CONTEXT リクエスト単位を管理するクラス リクエスト毎にインスタンスを生成 ex) Amon2::Web リクエスト単位での状態遷移とリソースを管理する 基本的にはここにアプリケーションロジックは書かない 13年9月20日金曜日
22.
CONTROLLER リクエストで渡されたデータを整理してModelに引き渡す ビジネスロジックへの入力を抽象化する 入力の存在/型チェックの簡易Validationをする Modelの結果をContext経由でViewに引き渡す Modelの例外をcatchしてエラー処理を行う Controllerを見ればリクエストのフローが全て見える 13年9月20日金曜日
23.
MODEL ビジネスロジックを抽象化する 目的に対して必要な処理を手続きとして実装 ビジネスロジックに依存するトランザクションも管理 カッチリしたValidationはここで行う 問題があればExceptionでControllerに通知 Modelを見ればアプリケーションの機能が分かる 13年9月20日金曜日
24.
DB データベース操作を抽象化する SQLもこの名前空間で整理する 目的に対して必要なDB操作を手続きとして実装する ex) DBIx::Sunny::Schema DBを見ればデータベースをどのように操作するかが分かる schemaのチューニングやDBキャッシュが容易になる 13年9月20日金曜日
25.
VIEW 渡されたデータを素に出力を整形する JSONならJSON向けにdeflateする役割もここが担う HTMLならTemplateなど 複数のViewで統一したインターフェースを提供する Viewクラスを差し替える事を容易に Viewをみればデータをどのように整形するか分かる 13年9月20日金曜日
26.
CACHE POINT View ControllerContext Model DB user web
service request response 13年9月20日金曜日
27.
小まとめ アプリケーションの要件毎に性質を分析しMVCを最適化 今回はWebAppという大きな括りでやったが実際は更に 細かく要件を絞る MVCの曖昧な部分をアプリケーションに合わせて具体化 13年9月20日金曜日
28.
いいかんじっぽい! 13年9月20日金曜日
29.
まあでも 13年9月20日金曜日
30.
実現できなきゃ 意味無い!! 13年9月20日金曜日
31.
チーム内規約をつくる 各名前空間の役割を規約化する 明文化していることでブレにくくなる 「やってはいけない事」も書く 具体例としてダメな例を併記しておくとベター コードレビューで規約に沿っているか確認する 可能なら自動テストで簡易チェックも 13年9月20日金曜日
32.
まとめ MVCはそのまま使わない 用途に合わせて構成とフローを整理して再構築する チーム内規約を作り、守る コードレビューを定期的に実施して意識づくり 可能ならば自動テストで簡易チェックも 13年9月20日金曜日
33.
あなたがかんがえた さいきょうの MVC 13年9月20日金曜日
34.
おわり Mobile FactoryではMVCが好きな人材を募集しております 13年9月20日金曜日
Descargar ahora