Submit Search
Upload
Frontend Fantasy 〜ミスリルの戦士たち〜
•
1 like
•
1,201 views
Masashi MATSUI
Follow
NDS in Niigata #8で発表した資料です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 81
Download now
Download to read offline
Recommended
Nodeにしましょう
Nodeにしましょう
Yuzo Hebishima
MySQL Fabricつらい
MySQL Fabricつらい
yoku0825
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
AimingStudy
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
pinmarch_t Tada
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
Hello, Node.js
Hello, Node.js
Shin Sekaryo
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
Isamu Suzuki
Recommended
Nodeにしましょう
Nodeにしましょう
Yuzo Hebishima
MySQL Fabricつらい
MySQL Fabricつらい
yoku0825
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
AimingStudy
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
pinmarch_t Tada
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
Hello, Node.js
Hello, Node.js
Shin Sekaryo
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
Isamu Suzuki
これからはじめるひとのためのdev.mysql.com
これからはじめるひとのためのdev.mysql.com
yoku0825
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
Rubymotion
Rubymotion
jewel12
TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
Shunsuke Watanabe
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Yutaro Miyazaki
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
ビルド職人の朝は早い
ビルド職人の朝は早い
Masashi MATSUI
Type scriptmemo
Type scriptmemo
ytanno
片手間JS on Rails
片手間JS on Rails
Ryunosuke SATO
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
kamiyam .
Node js 入門
Node js 入門
Satoshi Takami
MySQLの系譜について少々
MySQLの系譜について少々
yoku0825
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
zuya
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
kishima7
Node.js Hands-On
Node.js Hands-On
Akinari Tsugo
Sprocketsを捨てたい
Sprocketsを捨てたい
Masato Noguchi
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
Ito Kohta
Project Sumatra - JavaOne2012報告会 #j1rep
Project Sumatra - JavaOne2012報告会 #j1rep
Yuji Kubota
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
Yuji Kubota
More Related Content
What's hot
これからはじめるひとのためのdev.mysql.com
これからはじめるひとのためのdev.mysql.com
yoku0825
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
Rubymotion
Rubymotion
jewel12
TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
Shunsuke Watanabe
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Yutaro Miyazaki
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
ビルド職人の朝は早い
ビルド職人の朝は早い
Masashi MATSUI
Type scriptmemo
Type scriptmemo
ytanno
片手間JS on Rails
片手間JS on Rails
Ryunosuke SATO
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
kamiyam .
Node js 入門
Node js 入門
Satoshi Takami
MySQLの系譜について少々
MySQLの系譜について少々
yoku0825
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
zuya
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
kishima7
Node.js Hands-On
Node.js Hands-On
Akinari Tsugo
Sprocketsを捨てたい
Sprocketsを捨てたい
Masato Noguchi
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
Ito Kohta
What's hot
(20)
これからはじめるひとのためのdev.mysql.com
これからはじめるひとのためのdev.mysql.com
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Rubymotion
Rubymotion
TypeScriptへの入口
TypeScriptへの入口
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
ビルド職人の朝は早い
ビルド職人の朝は早い
Type scriptmemo
Type scriptmemo
片手間JS on Rails
片手間JS on Rails
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
Node js 入門
Node js 入門
MySQLの系譜について少々
MySQLの系譜について少々
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
Node.js Hands-On
Node.js Hands-On
Sprocketsを捨てたい
Sprocketsを捨てたい
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
Similar to Frontend Fantasy 〜ミスリルの戦士たち〜
Project Sumatra - JavaOne2012報告会 #j1rep
Project Sumatra - JavaOne2012報告会 #j1rep
Yuji Kubota
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
Yuji Kubota
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
MicroAd, Inc.(Engineer)
Halide, Darkroom - 並列化のためのソフトウェア・研究
Halide, Darkroom - 並列化のためのソフトウェア・研究
Yuichi Yoshida
Shiva 〜Nextremerをscale upする機械学習環境〜
Shiva 〜Nextremerをscale upする機械学習環境〜
Kazuki Morozumi
JJUC CCC 2013 Fall 基調講演「Javaと未来のこととCCC]
JJUC CCC 2013 Fall 基調講演「Javaと未来のこととCCC]
Yusuke Suzuki
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
Tomoki Ando
Start-padrino
Start-padrino
Uchio Kondo
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Takashi Sogabe
サイタマッパー活動報告2015
サイタマッパー活動報告2015
Kazuho Ohta
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネット株式会社
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Developers Summit
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
金沢すきま旅を支えるオープンデータ
金沢すきま旅を支えるオープンデータ
Ryota Iida
The Essence of Using Ruby on Rails in Corporations 2nd
The Essence of Using Ruby on Rails in Corporations 2nd
Koichiro Ohba
Kaggleのテクニック
Kaggleのテクニック
Yasunori Ozaki
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
つぶLT20121215
つぶLT20121215
遼一 杉浦
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
Similar to Frontend Fantasy 〜ミスリルの戦士たち〜
(20)
Project Sumatra - JavaOne2012報告会 #j1rep
Project Sumatra - JavaOne2012報告会 #j1rep
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
Halide, Darkroom - 並列化のためのソフトウェア・研究
Halide, Darkroom - 並列化のためのソフトウェア・研究
Shiva 〜Nextremerをscale upする機械学習環境〜
Shiva 〜Nextremerをscale upする機械学習環境〜
JJUC CCC 2013 Fall 基調講演「Javaと未来のこととCCC]
JJUC CCC 2013 Fall 基調講演「Javaと未来のこととCCC]
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
Start-padrino
Start-padrino
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
サイタマッパー活動報告2015
サイタマッパー活動報告2015
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
金沢すきま旅を支えるオープンデータ
金沢すきま旅を支えるオープンデータ
The Essence of Using Ruby on Rails in Corporations 2nd
The Essence of Using Ruby on Rails in Corporations 2nd
Kaggleのテクニック
Kaggleのテクニック
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
つぶLT20121215
つぶLT20121215
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Frontend Fantasy 〜ミスリルの戦士たち〜
1.
NDS IN NIIGATA
MEETUP #8 ミスリルの戦士たち FRONTEND FANTASY
2.
Friday the 13th
3.
// me.json { “name”: “松井
正志”, “kana”: “まつい まさし”, “company”: “water-cell inc.”, “role”: [ “フロントエンドエンジニア”, “サーバーサイドエンジニア” ], “twitter”: [“@circled9”, “@ma_2_i”] } 33
4.
Agenda • Introduction • Feature •
Architecture • Tutorial • Etcetera • Conclusion 4
5.
Introduction 5
6.
みなさんがお使いの フレームワークは何ですか? 6
7.
Backbone.js 7
8.
AngularJS 8
9.
React & Flux 9
10.
どれもすばらしい フレームワーク 10
11.
どれを使うべき? 11
12.
RailsとSinatra 12
13.
djangoとTornado 13
14.
フレームワークは 使い分けるべき 14
15.
15 Mithril
16.
Feature 16
17.
かるい Light-weight 17
18.
たった12KB (gzip) 18
19.
小さなAPI、小さな学習曲線 • 用意されているAPIは全部で16個 • 毎日1個ずつ覚えれば2週間ちょっとでマスターで きますね!(極論) 19
20.
けんじつ Robust 20
21.
デフォルトで安全 21
22.
コンポーネントによる分割 • Reactみたいに部品を組み合わせてViewを作る • 部品の再利用がしやすい •
Fluxみたいな仕組みはなので、極力子コンポーネ ントはステートレスにするとよい 22
23.
割と堅実な方針 • しっかりとしたドキュメント • 今のところ互換性無視の破壊的なアップデートもな い模様 •
実装面でも、例えばRouterはIE8でも動くような モードが用意されている 23
24.
はやい Fast 24
25.
Virtual DOM • Reactなどと同じ仮想DOMによる差分更新 •
実装の仕方も仮想DOMありきの実装になる 25
26.
頭のいい再描画 • いろいろなイベントをトリガーにして更新をする • クリックとか通信終了とか •
データに変更がおきるタイミングは大体その辺と いう考え方 26
27.
速度の比較 27
28.
Architecture 28
29.
Architecture • Model • View
Model • View • Controller 29
30.
Architecture 30 Component Controller View View Model Model Component Controller View
View Model 30
31.
Architecture • クラス継承などはせず、すべて普通の関数、普通の JavaScripオブジェクトとして実装する • 割と実装は自由にできる 31
32.
Model • 普通のJavaScriptオブジェクト • 責務はビジネスモデルのカプセル化 •
m.prop()でgetter-setterを作る 32
33.
Model View • 普通のJavaScriptオブジェクト •
責務はビューに関するロジックなどのカプセル化 • ビューのステートを保持したり、変更内容をモデル に反映したりする 33
34.
View • ビューは関数として実装する • 責務は表示とモデルのバインディング •
function() { return m(“div”) } みたいな感じで 定義していく。 34
35.
Controller • コントローラーは関数として実装する • 責務は各レイヤーの初期化など •
一般的なMVCのコントローラーのように、ユー ザーの入力の取り扱いなどはしない 35
36.
Architecture (再掲) 36 Component Controller View View
Model Model Component Controller View View Model 36
37.
Tutorial 37
38.
前準備 MithrilをDLする 38
39.
(CDNでもいいです) 39
40.
HTMLを作る 40
41.
41
42.
コンポーネントを作る 42
43.
43
44.
44
45.
ビューのモックを作る 45
46.
46
47.
ビューモデルを作る 47
48.
48
49.
49
50.
ビューの動作を作る 50
51.
51
52.
52
53.
おまけ モデルの永続化をしてみる 53
54.
54
55.
55
56.
56
57.
Etcetera 57
58.
Routing • Routerも用意されている • URL表記が違う3つのモードがある •
search / hash / pathname 58
59.
Ajax • m.request()で非同期でデータを取得する • m.request()は、指定したモデルのクラスにキャ ストしてデータを返す 59
60.
他のライブラリとの共存 • config属性で実際のDOMを扱うライブラリを組 み込むことができる 60
61.
MSX • ビューを書くのがつらいときは、JSXライクなMSX がる • 普通に変換することもできるし、実行時に変換する こともできる 61
62.
Conclusion 62
63.
ミスリルはミニマム 63
64.
手軽に書きたい時に すごくおすすめ 64
65.
JSあるある 65
66.
よーしJS書くぞー ↓ (開発環境構築で力尽きる) 66
67.
どうしてこうなった 67
68.
68
69.
いっぱい めんどい むずかしい 69
70.
まだビルドで 消耗してるの? 70
71.
もうビルドやめよう? 71
72.
もうES5で書こうよ 72
73.
73 し ゅ み だ も の び る ど し な く て も い い じ ゃ な い
74.
(異論は認める) 74
75.
たまにはES5で JSを書いてみよう 75
76.
76 Mithril
77.
ミスリルでミニマムな スタイル 77
78.
References 78
79.
公式サイト 79
80.
オライリーのミスリル本 80
81.
81 おしまい
Download now