Movatterモバイル変換


[0]ホーム

URL:


Kentaro Iizuka, profile picture
Uploaded byKentaro Iizuka
PDF, PPTX10,321 views

Knockout を用いた大規模 JavaScript 開発

HTML5 Conference 2013 において発表したスライドです。Knockout.js について簡単に説明しています。

Embed presentation

Download as PDF, PPTX
Knockout を用いた大規模 JavaScript 開発iizukakHTML Conference 2013 LT大会
突然ですが
最近のフロントエンド開発
複雑化・大規模化してますよね?
大規模化するフロントエンド開発を描いた16世紀の絵画
バベルの塔by ブリューゲル
HTML5の塔by ブリューゲル疲れ果てたプログラマ達
「バベルの塔は完成しない」by 聖書
バベルの塔現在: 1563 年: 2013 年
5世紀に渡るフロントエンド開発技術の飛躍的進歩によりバベルの塔の実装が比較的楽になってきた
16世紀にはなかった技術の一例
MV* フレームワーク
MV* フレームワーク✤✤デザインパターンに従ってコードを良いかんじに書くためのサポートをしてくれるフレームワークデザインパターンはいろいろあり、フレームワーク自体もいろいろ種類があるBackboneMVC: Model-View-ControllerKnockoutMVVM : Model-View-ViewModelAngularMVW : Model-View-Whateverデザインパターンの例
場面は転換し、
とあるフロントエンド開発現場…
スマホゲームの UI 開発をWebView でやることに
UI の八割方を WebView で実装✤数百の HTML ファイル✤数千行の SCSS✤ユーザーとのインタラクションが非常に多い✤数万行の JavaScript
Q: なにがネックになったか?
A: データバインドの記述
ユーザーとのインタラクション✤最近はユーザがアプリを操作することによって変化したモデルの状態をリアルタイムにビューに反映することが必須①つぶやき投稿ユーザー②イベント通知③モデルの 状態が変化JS④ビューに反映
ユーザーとのインタラクション✤モデルとビューのデータの結びつき =「データバインド」✤データバインドを自力で書くのは割と面倒✤同じようなコードを何度も書かなければならない✤コードの総量も増えがち
どうすれば簡単にデータバインドを書けるか
MV* フレームワーク
MV* フレームワーク✤MV* フレームワークの多くが、データバインド機能を提供✤Angular : デフォルトである✤Knockout : デフォルトである✤Backbone : Epoxy.js とか使ってやる
MV* フレームワークは、データバインド機能を中心に、コードを構造化する手助けをするライブラリなのかなと思ったり
そんなわけで、ゲームUI開発にKnockout 使っています
Knockout について
特徴
特徴✤1, データバインドが読みやすい✤2, データバインドが書きやすい✤3, 組み込みデータバインドでけっこういけている✤4, 拡張が用意✤5, 公式チュートリアルがいけている
1/5データバインドが読みやすい
データバインドが読みやすい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 になり、気分がよい
「コードは書く10倍読まれる」
ぱっと見でのわかりやすさ重要
2, データバインドが書きやすい
データバインドが書きやすい✤Knockout ではデータバインドは、かんじで記述ビュー<開始タグ data-bind="データバインドの種類: 適用する変数名"></終了タグ>JavaScriptfunction コンストラクタ() {this.適用する変数 = ko.observable();}ko.applyBindings(new コンストラクタ());
3/5組み込みのデータバインドがけっこういけている
様々な種類のデータバインドがあらかじめ組み込まれているclick bindingクリックイベントをハンドリングcss bindingCSS を適用visible binding 表示・非表示切り替えif bindingif 文による分岐
4/5拡張が容易
カスタムバインディング✤✤組み込みのデータバインドで物足りなくなったら、容易にデータバインドの種類を増やせるスマホゲーム案件では、20個以上の拡張データバインドを実装
5/5公式チュートリアルがいけている
対話形式でサクサク学べる
興味を持ったらまずは公式チュートリアル
まとめ
Knockout を使ったらいいかんじに大規模JS開発できました
21世紀のプログラマでよかった
めでたしめでたし
自己紹介
@iizukak on Github, Twitter

Recommended

PDF
2016年を振り返る
PDF
VimとRubyのアツい関係
PDF
Cakecon xoops cubeなのにcake-phpを使う
 
PPTX
初めてでもOK : )『concrete5』でサイトを作ろう!
PDF
090821 Ruby Sapporo Night Ruby Cocoa
PPTX
うるう秒とタイムゾーン
PDF
Visual Studio TypeScript npm WebPack
PDF
concrete5セミナー資料公開版
PDF
MVCフレームワークとの付き合い方
PDF
C++ REST SDKを使ってWebサービスを利用する
PDF
第十回ネットワークチーム講座資料
PDF
OthloEvent #9 Xamarinハンズオン
PDF
Prototyping with Sketch
PDF
プロジェクト2B テーマ発表
PDF
WordPress使いのためのconcrete5入門
PPTX
Uwpでみるxaml入門
PPT
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
PPTX
Ltctjs
PDF
Enpit bizapp_aiit_20130902_for_WindowsEnvironment
PDF
The Way We Are Working On Our Website @とちぎRuby会議02
PPTX
HTML5 conference 2013
PDF
レーザレンジスキャナーとWebGL
 
PDF
とあるISPの異端者
PDF
Noc ltスライド
PDF
Html5 conference 2013
PDF
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
PPTX
KnockoutJSを使用したアプリケーションの構築例
PDF
Knockout を用いた Firefox OS アプリケーションの開発
PDF
BACKBONE.JSによるWebアプリケーション開発について
PDF
Vue.js ハンズオン資料

More Related Content

PDF
2016年を振り返る
PDF
VimとRubyのアツい関係
PDF
Cakecon xoops cubeなのにcake-phpを使う
 
PPTX
初めてでもOK : )『concrete5』でサイトを作ろう!
PDF
090821 Ruby Sapporo Night Ruby Cocoa
PPTX
うるう秒とタイムゾーン
PDF
Visual Studio TypeScript npm WebPack
PDF
concrete5セミナー資料公開版
2016年を振り返る
VimとRubyのアツい関係
Cakecon xoops cubeなのにcake-phpを使う
 
初めてでもOK : )『concrete5』でサイトを作ろう!
090821 Ruby Sapporo Night Ruby Cocoa
うるう秒とタイムゾーン
Visual Studio TypeScript npm WebPack
concrete5セミナー資料公開版

What's hot

PDF
MVCフレームワークとの付き合い方
PDF
C++ REST SDKを使ってWebサービスを利用する
PDF
第十回ネットワークチーム講座資料
PDF
OthloEvent #9 Xamarinハンズオン
PDF
Prototyping with Sketch
PDF
プロジェクト2B テーマ発表
PDF
WordPress使いのためのconcrete5入門
PPTX
Uwpでみるxaml入門
PPT
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
PPTX
Ltctjs
PDF
Enpit bizapp_aiit_20130902_for_WindowsEnvironment
PDF
The Way We Are Working On Our Website @とちぎRuby会議02
MVCフレームワークとの付き合い方
C++ REST SDKを使ってWebサービスを利用する
第十回ネットワークチーム講座資料
OthloEvent #9 Xamarinハンズオン
Prototyping with Sketch
プロジェクト2B テーマ発表
WordPress使いのためのconcrete5入門
Uwpでみるxaml入門
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
Ltctjs
Enpit bizapp_aiit_20130902_for_WindowsEnvironment
The Way We Are Working On Our Website @とちぎRuby会議02

Viewers also liked

PPTX
HTML5 conference 2013
PDF
レーザレンジスキャナーとWebGL
 
PDF
とあるISPの異端者
PDF
Noc ltスライド
PDF
Html5 conference 2013
PDF
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
PPTX
KnockoutJSを使用したアプリケーションの構築例
HTML5 conference 2013
レーザレンジスキャナーとWebGL
 
とあるISPの異端者
Noc ltスライド
Html5 conference 2013
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
KnockoutJSを使用したアプリケーションの構築例

Similar to Knockout を用いた大規模 JavaScript 開発

PDF
Knockout を用いた Firefox OS アプリケーションの開発
PDF
BACKBONE.JSによるWebアプリケーション開発について
PDF
Vue.js ハンズオン資料
PPTX
Railsのフロントエンド開発を考える
PDF
Introduction for Browser Side MVC
PPTX
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
PPTX
Blue monkey architecture overview
PDF
React + Flux
PDF
Backbone.js
PPTX
フロントエンドの技術を刷新した話し。
PDF
TeachmeBizを支えるフロントエンドのアーキテクチャと品質担保
PDF
React.js + Flux
PDF
大規模なJavaScript開発の話
PDF
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
PPTX
JavaScriptフレームワーク入門にVue.jsはいかが?
PPT
20130924 Picomon CRH勉強会
KEY
Js mvc
PDF
我が家のフロントエンド開発事情
PDF
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
PDF
MVCフレームワークと戦った話
Knockout を用いた Firefox OS アプリケーションの開発
BACKBONE.JSによるWebアプリケーション開発について
Vue.js ハンズオン資料
Railsのフロントエンド開発を考える
Introduction for Browser Side MVC
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Blue monkey architecture overview
React + Flux
Backbone.js
フロントエンドの技術を刷新した話し。
TeachmeBizを支えるフロントエンドのアーキテクチャと品質担保
React.js + Flux
大規模なJavaScript開発の話
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
JavaScriptフレームワーク入門にVue.jsはいかが?
20130924 Picomon CRH勉強会
Js mvc
我が家のフロントエンド開発事情
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
MVCフレームワークと戦った話

Knockout を用いた大規模 JavaScript 開発


[8]ページ先頭

©2009-2025 Movatter.jp