読了: 約 5 分
JavaScriptのフレームワークが増えてきて、なにがどう使えて今までとなにが違うのか、
開発の流行等纏めておきます。
大規模開発、ゲーム開発等規模や用途によって使い分けられるようにメモしておこうと思います。
概要
JavaScriptフレームワーク
最近よく聞くようになったフレームワークを挙げてみました。
- Backbone.js
- SproutCore
- Sammy.js
- Spine.js
- Cappuccino
- Knockout.js
- Javascript MVC
- GWT
- Google Closure
- Ember.js
- Angular.js
- Batman.js
- enchant.js
enchant.jsとは
enchant.jsは日本のユビキタスエンターテインメント社が開発した
ゲーム開発用のフレームワークです。
このサイトでもご紹介しましたが、ゲームスタート、ゲームオーバー時の処理など
簡単に作る事が出来て、非常に便利なものです。
enchant.js – HTML5+JSのゲーム事例と使い方 –
MVCモデルパターンとは
JavaScriptでのMVCというものですね。
色々な記事を見ていると、大規模ならBackbone、小規模ならKnockoutをおススメという事がありますが、
果たしてどうなのでしょうか。一先ず今回はBackboneと最近人気のAngular.jsについてまとめていきたいと思います。
- 1章 MVCとクラス
- 2章 イベントと監視
- 3章 モデルとデータ
- 4章 コントローラと内部状態
- 5章 ビューとテンプレート
- 6章 依存性の管理
- 7章 ファイルの操作
- 8章 リアルタイム Web
- 9章 テストとデバッグ
- 10章 アプリケーションのデプロイ
- 11章 Spineライブラリ
- 12章 Backboneライブラリ
- 13章 JavaScriptMVCライブラリ
- 付録 A jQuery入門
- 付録 B CSSの拡張
- 付録 C CSS3リファレンス
JavaScript MVCフレームワークはすでに十種類以上、その比較や最新情報などのまとめ
Backbone.jsの非常に参考になる解説記事
大規模なjsアプリケーション開発になった時に、jQueryではなく、より洗練されたデザインパターンである
MVCモデルを使用すべきだという内容の元書かれております。
自分もCakePHPを少しやっていて、サーバーサイドプログラミングでは普通に使われていたものなのですが、
JSでという事で、非常に分かり易いです。
Backbone.jsを利用したクライアントサイドMVCの導入についてそろそろ書いておくか
Qiitaにも7回に分けた解説記事がありますのでそちらも合せて。
Backbone.jsの解説スライド
そもそも大規模開発の設計とは
CoffeeScriptとは
参考書籍
JavaScriptの良いパーツだけを使おうという本。
Angular.js
HTML5の書籍など書かれている小松氏のブログから非常に簡単な使い方など
サンプルソースコードもあって分かり易いです。
AngularJSとは、HTMLをテンプレートエンジンとして積極的に活用することでこれらの問題を解決してくれるフレームワークです。
JavaScriptでDOM操作する時に、複雑になりがちなソースコードを綺麗に保つ事が目的です。
個人的にはphpでいうsmartyのような形で出来るので、デザイナーやマークアップの人でも分かり易く、使い易い気がします。
クールなMVCを実現するフレームワーク Angular.js の紹介
Angular.jsのメリットが分かり易い記事
特に、STEP 4 – ROUTING URLによってTemplateを切り替える
これかなり使えますね!
app.js
angular.module('colorset', []).config(['$routeProvider', function($routeProvider) { $routeProvider. when('/colors', {templateUrl: 'color-list.html', controller: ColorListCtrl}). when('/colors/:colorId', {templateUrl: 'color-detail.html', controller: ColorDetailCtrl}). otherwise({redirectTo: '/colors'}); }]);
controller.js
function ColorDetailCtrl($scope, $routeParams){ $scope.colorId=$routeParams.colorId; }
index.html
<html ng-app="colorset"> <head> ... <script src="app.js"></script> </head> <body> <div ng-view></div> </body> </html>
Angular.jsのデメリットは
デメリット
- 機能を分けずに1ファイルに書いているので
- 再利用できない
- 分業できない
- テストできない
- 規模が大きくなりすぎて管理できない