Submit Search
Knockout を用いた大規模 JavaScript 開発
25 likes
10,316 views
Kentaro Iizuka
HTML5 Conference 2013 において発表したスライドです。 Knockout.js について簡単に説明しています。
Technology
Read more
1 of 48
Download now
Downloaded 43 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
More Related Content
PDF
2016年を振り返る
Kuniyoshi Tone
PDF
VimとRubyのアツい関係
Misao X
PDF
Cakecon xoops cubeなのにcake-phpを使う
ha1t
PPTX
初めてでもOK : )『concrete5』でサイトを作ろう!
Yuriko Kamimori
PDF
090821 Ruby Sapporo Night Ruby Cocoa
Tomoki Maeda
PPTX
うるう秒とタイムゾーン
ShinichiAoyagi
PDF
Visual Studio TypeScript npm WebPack
Akihiro Ehara
PDF
concrete5セミナー資料公開版
Hishikawa Takuro
2016年を振り返る
Kuniyoshi Tone
VimとRubyのアツい関係
Misao X
Cakecon xoops cubeなのにcake-phpを使う
ha1t
初めてでもOK : )『concrete5』でサイトを作ろう!
Yuriko Kamimori
090821 Ruby Sapporo Night Ruby Cocoa
Tomoki Maeda
うるう秒とタイムゾーン
ShinichiAoyagi
Visual Studio TypeScript npm WebPack
Akihiro Ehara
concrete5セミナー資料公開版
Hishikawa Takuro
What's hot
(12)
PDF
MVCフレームワークとの付き合い方
Kazuki Shibata
PDF
C++ REST SDKを使ってWebサービスを利用する
You&I
PDF
第十回ネットワークチーム講座資料
densan_teacher
PDF
OthloEvent #9 Xamarinハンズオン
Hidetsugu Tamaki
PDF
Prototyping with Sketch
masaaki komori
PDF
プロジェクト2B テーマ発表
Kodai Takao
PDF
WordPress使いのためのconcrete5入門
Hishikawa Takuro
PPTX
Uwpでみるxaml入門
Makoto Nishimura
PPT
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
ShinichiAoyagi
PPTX
Ltctjs
Hisashi Aruji
PDF
Enpit bizapp_aiit_20130902_for_WindowsEnvironment
Yukio Saito
PDF
The Way We Are Working On Our Website @とちぎRuby会議02
Yoji Shidara
MVCフレームワークとの付き合い方
Kazuki Shibata
C++ REST SDKを使ってWebサービスを利用する
You&I
第十回ネットワークチーム講座資料
densan_teacher
OthloEvent #9 Xamarinハンズオン
Hidetsugu Tamaki
Prototyping with Sketch
masaaki komori
プロジェクト2B テーマ発表
Kodai Takao
WordPress使いのためのconcrete5入門
Hishikawa Takuro
Uwpでみるxaml入門
Makoto Nishimura
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
ShinichiAoyagi
Ltctjs
Hisashi Aruji
Enpit bizapp_aiit_20130902_for_WindowsEnvironment
Yukio Saito
The Way We Are Working On Our Website @とちぎRuby会議02
Yoji Shidara
Ad
Viewers also liked
(7)
PPTX
HTML5 conference 2013
Takuo Kihira
PDF
レーザレンジスキャナーとWebGL
edy555
PDF
とあるISPの異端者
Tomo Watanabe
PDF
Noc ltスライド
Hirotaka Nakajima
PDF
Html5 conference 2013
Mitsue-Links
PDF
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
Futomi Hatano
PPTX
KnockoutJSを使用したアプリケーションの構築例
masakazusegawa
HTML5 conference 2013
Takuo Kihira
レーザレンジスキャナーとWebGL
edy555
とあるISPの異端者
Tomo Watanabe
Noc ltスライド
Hirotaka Nakajima
Html5 conference 2013
Mitsue-Links
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
Futomi Hatano
KnockoutJSを使用したアプリケーションの構築例
masakazusegawa
Ad
Similar to Knockout を用いた大規模 JavaScript 開発
(20)
PPTX
フロントエンド技術の変遷
Ryo Higashigawa
PDF
開発ライフサイクルから見たAngularJS
Mizuho Sakamaki
PDF
Modern frontend overview_r3
makotunes
PDF
大規模Webを支えるAgileな技術
bash0C7
PDF
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
PPTX
20150926 uwpストア攻略
Makoto Nishimura
PDF
次世代Web業務アプリケーション
Fumio SAGAWA
PDF
Html5 and Graphics
Masakazu Muraoka
PDF
Cloudflare Pages/Workersとは
Hiroshi Morishige
ODP
HTML5 アプリ開発
tomo_masakura
PPTX
C# 7 New Features
Takaaki Suzuki
PDF
The History of Reactive Extensions
Yoshifumi Kawai
PDF
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
日本マイクロソフト株式会社
PDF
モダンJavaScript入門.pdf
omochids0113
PDF
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
PPTX
TypeScriptでCLIアプリケーション開発
Shuto Suzuki
PDF
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Toshiaki Maki
PDF
Blazor 触ってみた
Oda Shinsuke
PDF
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Akira Inoue
PDF
Angularモダンweb開発セミナー紹介 20170923
Staffnet_Inc
フロントエンド技術の変遷
Ryo Higashigawa
開発ライフサイクルから見たAngularJS
Mizuho Sakamaki
Modern frontend overview_r3
makotunes
大規模Webを支えるAgileな技術
bash0C7
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
20150926 uwpストア攻略
Makoto Nishimura
次世代Web業務アプリケーション
Fumio SAGAWA
Html5 and Graphics
Masakazu Muraoka
Cloudflare Pages/Workersとは
Hiroshi Morishige
HTML5 アプリ開発
tomo_masakura
C# 7 New Features
Takaaki Suzuki
The History of Reactive Extensions
Yoshifumi Kawai
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
日本マイクロソフト株式会社
モダンJavaScript入門.pdf
omochids0113
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
TypeScriptでCLIアプリケーション開発
Shuto Suzuki
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Toshiaki Maki
Blazor 触ってみた
Oda Shinsuke
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Akira Inoue
Angularモダンweb開発セミナー紹介 20170923
Staffnet_Inc
Knockout を用いた大規模 JavaScript 開発
1.
Knockout を用いた 大規模 JavaScript
開発 iizukak HTML Conference 2013 LT大会
2.
突然ですが
3.
最近のフロントエンド開発
4.
複雑化・大規模化してますよね?
5.
大規模化するフロントエンド開発 を描いた16世紀の絵画
6.
バベルの塔 by ブリューゲル
7.
HTML5の塔 by ブリューゲル 疲れ果てたプログラマ達
8.
「バベルの塔は完成しない」 by 聖書
9.
バベルの塔 現在 : 1563 年 :
2013 年
10.
5世紀に渡る フロントエンド開発技術の飛躍的進歩により バベルの塔の実装が比較的楽になってきた
11.
16世紀にはなかった技術の一例
12.
MV* フレームワーク
13.
MV* フレームワーク ✤ ✤ デザインパターンに従ってコードを良いかんじに書くためのサポート をしてくれるフレームワーク デザインパターンはいろいろあり、フレームワーク自体もいろいろ種 類がある Backbone MVC : Model-View-Controller Knockout MVVM
: Model-View-ViewModel Angular MVW : Model-View-Whatever デザインパターンの例
14.
場面は転換し、
15.
とあるフロントエンド開発現場…
16.
スマホゲームの UI 開発を WebView
でやることに
17.
UI の八割方を WebView
で実装 ✤ 数百の HTML ファイル ✤ 数千行の SCSS ✤ ユーザーとのインタラクションが非常に多い ✤ 数万行の JavaScript
18.
Q: なにがネックになったか?
19.
A: データバインドの記述
20.
ユーザーとのインタラクション ✤ 最近はユーザがアプリを操作することによって変化したモデルの状態 をリアルタイムにビューに反映することが必須 ①つぶやき投稿 ユーザー ②イベント通知 ③モデルの 状態が変化 JS ④ビューに反映
21.
ユーザーとのインタラクション ✤ モデルとビューのデータの結びつき =「データバインド」 ✤ データバインドを自力で書くのは割と面倒 ✤ 同じようなコードを何度も書かなければならない ✤ コードの総量も増えがち
22.
どうすれば簡単に データバインドを書けるか
23.
MV* フレームワーク
24.
MV* フレームワーク ✤ MV* フレームワークの多くが、データバインド機能を提供 ✤ Angular
: デフォルトである ✤ Knockout : デフォルトである ✤ Backbone : Epoxy.js とか使ってやる
25.
MV* フレームワークは、データバインド機能を中心に、 コードを構造化する手助けをするライブラリなのかなと思ったり
26.
そんなわけで、ゲームUI開発に Knockout 使っています
27.
Knockout について
28.
特徴
29.
特徴 ✤ 1, データバインドが読みやすい ✤ 2, データバインドが書きやすい ✤ 3,
組み込みデータバインドでけっこういけている ✤ 4, 拡張が用意 ✤ 5, 公式チュートリアルがいけている
30.
1/5 データバインドが読みやすい
31.
データバインドが読みやすい Knockout の data-bind
の例 <p>First name: <strong data-bind="text: firstName"></strong></p> <p>Last name: <strong data-bind="text: lastName"></strong></p> <p>First name: <input data-bind="value: firstName" /></p> <p>Last name: <input data-bind="value: lastName" /></p> ✤ ✤ HTML を見ればどこの要素が Knockout で操作されるか一目瞭然 data-* 属性は正当な HTML 属性のため、実装した HTML が validな HTML になり、気分がよい
32.
「コードは書く10倍読まれる」
33.
ぱっと見でのわかりやすさ重要
34.
2, データバインドが書きやすい
35.
データバインドが書きやすい ✤ Knockout ではデータバインドは、かんじで記述 ビュー <開始タグ data-bind="データバインドの種類:
適用する変数名"></終了タグ> JavaScript function コンストラクタ() { this.適用する変数 = ko.observable(); } ko.applyBindings(new コンストラクタ());
36.
3/5 組み込みのデータバインドが けっこういけている
37.
様々な種類のデータバインドが あらかじめ組み込まれている click binding クリックイベントをハンドリング css binding CSS
を適用 visible binding 表示・非表示切り替え if binding if 文による分岐
38.
4/5 拡張が容易
39.
カスタムバインディング ✤ ✤ 組み込みのデータバインドで物足りなくなったら、容易にデータバイ ンドの種類を増やせる スマホゲーム案件では、20個以上の拡張データバインドを実装
40.
5/5 公式チュートリアルがいけている
41.
対話形式でサクサク学べる
42.
興味を持ったら まずは公式チュートリアル
43.
まとめ
44.
Knockout を使ったら いいかんじに大規模JS開発できました
45.
21世紀のプログラマでよかった
46.
めでたしめでたし
47.
自己紹介
48.
@iizukak on Github,
Twitter
Download