読者です 読者をやめる 読者になる 読者になる

ひだまりソケットは壊れない

ソフトウェア開発に関する話を書きます。 最近は主に Android アプリ、Windows アプリ (UWP アプリ)、Java 関係です。

まじめなことを書くつもりでやっています。 適当なことは 「一角獣は夜に啼く」 に書いています。

読んだ: 『BACKBONE.JS ガイドブック』 高橋侑久 著

JavaScript 書籍

Backbone.jsガイドブック

Backbone.jsガイドブック

id:yuku_t さん著の 『BACKBONE.JS ガイドブック』 を読み終わりました *1

Backbone.js のことはもちろん、JS での開発に便利なツールについても書かれており勉強になりました。 JS でのクライアントサイドアプリケーション開発の実践的な話を知りたいという人にとって役立つ一冊だと思います。

本書の概要

本書は、JavaScript のライブラリである Backbone.js を使って web サービスのクライアントサイドの開発を行う方法について書かれた本です。

Backbone.js についての説明があることはもちろんのこと、RequireJS を使って AMD 形式の JS モジュール管理をする方法や、JS で書かれたクライアントサイドのアプリケーションのテストの方法、npm によるプロジェクトの依存管理や Grunt によるタスク管理の方法なども書かれています。 Backbone.js についての書籍、というよりも、Backbone.js を使ってクライアントサイドアプリケーションを開発する手法についての本、という認識の方が正しいと思います。

書籍の目次などは下記サポートページにありますので、詳しくはそちらをご覧ください。

Backbone.js はフレームワークなのか

日本語の Backbone.js の紹介を見ると、よく 「Backbone.js はクライアントサイドの MVC フレームワーク」 と書かれているのを目にするのですが、Backbone.js をフレームワークだと捉えるのは正しくないように思います。 (Backbone.js の公式サイトの FAQ にも “Backbone is a library, not a framework, and plays well with others.” と書かれています。) 本書でも Backbone.js が 「MVC フレームワーク」 として紹介されていますが、むしろ 「フレームワークではない」 と考えた方が理解しやすいのではないかと思いました。

フレームワークの場合はアプリケーションの枠組みが提供されていて、開発者はその枠組みの中で必要なクラスやメソッドを定義していくことになります。 一方、Backbone.js では、Model や View といった便利なクラスが提供されていますが、それをどう使うかというのは開発者に委ねられていて、アプリケーション全体をどういう設計にするかといった部分は開発者が考えなければなりません。

本書が Backbone.js を使う上での指針を与えてくれる

Backbone.js を最初に触ったときに 「どう使えばいいのかよくわからない」 と感じる人は多いのではないかと思うのですが、それは Backbone.js がフレームワークではなく単なるライブラリであり、どう使うかは開発者に任されている、というところに一因があるのではないでしょうか。 「どう使うかは自由」 と言われても困ってしまいますよね。 そこで Backbone.js を使う際の開発の指針が欲しくなるわけですが、それが書かれているのが本書というわけです。

そもそもの MVC の考え方の説明からはじまり、Backbone.js における MVC の説明、Backbone.js の各種クラスの基本的な使い方の説明、「こういう場合はこうすればいい」 とか 「こういうことはしてはいけない」 といった実践的な内容 (ベストプラクティスとかアンチパターン) が書かれていて、Backbone.js を使ってみたけど馴染めなかった私にとっては 「なるほどなー」 と納得させられるものでした。

Backbone.js 以外の話 (テストとか)

上でも述べたとおり、下記のようなツールの使い方などの説明もなされています。

  • JS のモジュール管理 : RequireJS, r.js
  • テスト : QUnit, Jasmine
  • プロジェクト管理 : npm, Grunt

RequireJS や r.js は使ったことがなかったので、こういうのもあるのかー、と参考になりました。 QUnit や Jasmine、npm、Grunt などは、現在の JavaScript による開発においては定番のものですね。 ひととおり実際にどういう風に使うのかといった説明がなされているので、これらのツールを使ったことがない人でも本書を読めば使い方がわかると思います。 もちろん本書を読むだけでこれらのツールを使いこなせるようになるわけではなく、詳細を知るためには公式サイトなりなんなりで調べる必要はあるのですが、定番の開発環境がどういうものなのかがまとまっている文書ってあまりない気がするので、そういう点で価値があると思います。

読み終わっての感想

冒頭にも書いた通り、「Backbone.js を使ってクライアントサイドアプリケーションを開発する手法」 がまとまっていて、ためになりました。 Backbone.js に興味がある人や Backbone.js をちょっと使ってみたけどよくわからなかったという人は是非読むといいと思います。

私自身としては、本書を読んだことで、これまでちゃんと理解できていなかった Backbone.js のうまい使い方を理解できました (できた気がする)。

前提知識として JS, DOM, HTML (や jQuery も少々) の基本的な知識はあるものとして書かれていますので、そこら辺が全然わかってない人は本書を読む前にそこら辺の勉強をする必要があります。 (そもそもそこら辺の知識なしで Backbone.js を使おうとはしないと思いますが。) そこら辺の知識を持っているけど、JS でクライアントサイドアプリケーションをうまく構造化できなくて悩んでいる、という人には本書をおすすめします!

*1:yuku_t さんから直接頂きました。 ありがとうございます!