見やすいJavaScriptコードのために。クライアントサイドのルーティングライブラリ「SugarSkull」
SugarSkullはJavaScriptによるクライアントサイドのルーティングライブラリ。
SugarSkullはjQuery/JavaScript製のオープンソース・ソフトウェア。RailsやSinatraが普及した要因の一つにルーティングがあげられる。それまではクライアント側のURLとサーバ側で実際に動作するプログラムとが乖離していた気がするが、それがぴったりとくっつく存在になったのだ。
Sinatraの普及もあって、他のプログラミング言語でもルーティングに力を入れるようになった。それはサーバサイドに限らずWebクライアント側でも同じだ。JavaScriptでルーティングを行うのがSugarSkullだ。
SugarSkullはaタグの指定するURLでルーティングを可能にするライブラリだ。通常、デザインとJavaScriptを分離するためにはidやclassを使ってアクションを設定する方式をとる。SugarSkullはURL(実際にはアンカー)を使ってそのままアクションが指定できるのだ。
例えば「#/red」というURLを指定する。そうするとSugarSkullが/redにマッチするアクションを実行する。ルーティングは階層を持たせたり、数字や引数を正規表現で特定することもできる。アクションにはbefore/leave/notfoundといった追加アクションも指定可能だ。
これはとても面白い。HTMLのデザインとJavaScriptの動作が明確に分けられる。面倒にidを追加する必要もないし、アクションをコントローラ内部に入れられる。jQueryなのでAjaxなどと連携させるのも簡単だ。Webアプリケーションを開発する際にはとても役立ちそうだ。
MOONGIFTはこう見る
JavaScriptにおいてMVCを推進するフレームワークは未だに確定的なものが出てこない。そのため各自既成のライブラリを組み合わせたり、独自に組んだりする。しかしそれでは仕様が複雑化する中で、徐々に破綻していってしまうのだ。
JavaScriptならばそこまで明確でなくともSinatraくらいの軽さが良いのかもしれない。モデルはサーバサイドに任せても良いだろう。大事なのはルーティングでコードが霧散しないことだ。SugarSkullは見やすいコードを保つ上でも役立つのではないだろうか。