振り返ればヤツ(Backbone.js)がいる

2013.07.16 | プログラミング |
スポンサードリンク

うだるような暑さが続くけれど、みなさんお元気かしら? 私はクーラーの効いた快適な部屋で耳の後ろから加齢臭を放ちつつ、今日も絶賛コーディング中よ。

さて、今日はWordPressに同梱されているBackbone.jsとunderscore.jsの使用状況について特に調べもせず書いていくわ。大体こんな内容よ。

  1. Backbone.jsとunderscore.jsとはなんやねん
  2. WordPressはそれをどう使っているねん
  3. 今後どうなるねん
  4. 誰に関係あるねん

Backbone.jsとは

Backbone.jsっていうのは、JavaScriptのMVCフレームワークっていうことになっているけど、要するに「Ajaxとかで動的なUI作ってるとコードがゴチャゴチャになるのが嫌やねん」というプログラマー達の怨念から誕生したライブラリよ。

FacebookみたいなサイトのUIを見ていると、一般的なWebアプリケーションよりもデータの更新・登録が即時反映されるなーということに気づくわよね。

んじゃいっちょそういうアプリ作ってみるかーと思ってみても、AjaxのAPIを沢山作って、テンプレート生成ロジック作って、イベントもバインドしなおしたり、まあ色々めんどくさいわけよ。そういうのを少しでも楽にしようという考えから生まれたのがBackbone.jsね。

ドット・インストールに入門コースがあるから見てみてね → Backbone.js入門 (全22回)

underscore.jsとは

underscore.jsっていうのはjQueryと似たようなライブラリなんだけど、jQueryやBackbone.jsなんかと一緒に使われることを想定していて、公式サイトには「ちょっとだらしないjQueryにとってのネクタイ、Backbone.jsにとってのサスペンダーだよ」と書いてあるわ(ちょっとニュアンス違うかも)

要するに、jQueryやBackbone.jsで「これ足りねーぞ」っていう機能がモリモリ入ってて軽量なわけね。

特にJavascriptでDOMを生成するときに+演算子でつないでいくのがマジで辛いんだけど、_.template とかを使うとわりかし楽になるわね。

こちらもドット・インストールに入門コースがあるから見てちょうだい → Underscore.js入門 (全10回)

WordPressのどこで使ってるねん

WordPress 3.6-RC1-24704 を見る限り、たとえばメディアブラウザ(メディアマネージャーが正式名称かしら?)の部分で使われてるわ。

画像をアップロード・挿入する時に使うヤツね

画像をアップロード・挿入する時に使うヤツね

このメディアブラウザ、以前よりもだいぶ使い勝手が上がっていて、以前は画像のIDとかを取得してどこかに保存するUIを作るのってけっこうめんどくさかったんだけど、今はもうちょっと楽になったわね。

具体的なサンプルとしては WORDPRESS 3.5 MEDIA UPLOADER: TIPS ON USING IT WITHIN PLUGINS  とかを見てみてね。wp_enqueu_media を使うのがポイントよ。

具体的にこのメディアブラウザがどのように実装されているかというと、次のファイルあたりを見るとわかるんじゃないかしら。

  • /wp-includes/js/media-model.js
  • /wp-includes/js/media-views.js
  • /wp-includes/js/wp-backbone.js

wp-backbone.jsが上に挙げたBackbone.jsとunderscore.jsに依存してるわけね。

今後どうなるねん

WordPressにはよくあるんだけど、メディアブラウザみたいに「便利だけど他の部分でどう使ったらいいかわからない、もしくは使えるけど激しく難しい」っていう機能があるわね。

もちろんこれはしょうがないことで、一端コアに実装されてからAPIを整備して解放していくという流れがあるからだとは思うんだけど、今後この「コア実装→API整備」までの流れは早くなっていくと思われるわ。

WordPressは色々な変換を遂げて来たけれど、バージョン3系あたりからCMSとしての機能拡張、特にAPIの整備と管理画面の機能強化が進んでいるように思うわ。

CMSとなると、プルダウン一つとっても、選択肢をその場で追加できるようになっていないと嫌だとか、そういう要望が沢山あるわよね。そうしたハードな要望に応えるために、Backbone.jsやらを使っていくというのはいかにもありそうなことよね。

誰に関係あるねん

プラグインやテーマを利用するだけならあんまり関係ないけど、プラグインを配布していたり、テーマに拡張機能をモリモリつけている人なんかは、「Backbone.jsってなんなん?」ぐらいは知っておくといいかもしれないわね。

そんじゃーね!