Vanished Garden

ExtJS始めました

最近、ExtJSというJavaScriptフレームワークを使っている。これまで2ヵ月くらい触ってみて色々と苦労したり分かったこともあるので、備忘的に書いてみようと思う。
とはいえ、最初なのでまずはExtJSとは何ぞや、というところを。

そも、ExtJSとはなんぞや (ソースは俺なので間違ってたらごめん)

JavaScriptで所謂Rich Internet Applicationを実現しようというフレームワーク。米Yahoo!が作ったYUIフレームワークを拡張して作った、らしい。JavaScriptのObjectで部品群を定義して画面を作ることができる。
素のJavaScriptを隠蔽するので、マルチブラウザ対応がかなり楽になる。ExtJS自体はIE6以降対応だけど、ユーザーコードで余計な事をすると動かなくなるはずなのでそこは注意が必要。

公式サンプルを見るとだいたいどんな感じか分かると思う。

ライセンスはGPLと商用のデュアル。
商用ライセンスを買う時にサポートサブクリプションを別途買うと、通常は配布されないパッチリリースを使う事ができる。
具体的には、2013/02/19時点で最新の安定版である4.1系の場合、一般には4.1.1aが入手可能で4.1.2や4.1.3は入手できない。バージョン名が変な事になっているのは4.1.2が出た後に致命的なバグの修正があったのだろう。
商用ライセンス、サブクリプション共に開発者単位の課金で、それなりにお高い。 ライセンスは購入時とメジャーバージョンが同じ (今なら4.x) ならアップグレード可、サブクリプションは普通に1年じゃないかな。

現在は4.2 RCがβ版ライセンスで配布中。 近日リリースだと思うけど、けっこう変わっている場所も多くバグもあるのでもう1回か2回くらいRCが出るかもなあ、というところ。

所感

標準だと全然Webらしくないので、実はあまり好きではない。 例えば、最初にデカいファイルを読ませてページ遷移せずにDOMの書き換えで全部こなす思想は、最初が遅い代わりにその後の画面更新が速い(はず)、というメリットがあるが、反面ブラウザのback/forwardと相性が悪い。 頑張れば#を使ってhistory likeな動作をさせることもできるが、キャッシュが効かないので都度オブジェクトを再構築することになり、画面の作り次第で物凄く遅くなる。ExtJSのドキュメントが悪い例と言えるだろう。ブラウザにもよるけど、Chromeでも表示まで1秒以上待たされることが多々ある。

それはそれとして、フレームワークとしてのExtJSはかなり頑張っていると思う。
MVC分離とか通信周り、イベント周り、テーマシステム、チャート類、それにビルドツールとほぼ一通り揃っている。

書いた感じはFlexと近い…かもしれない。ContainerとLayout Managerの使い方は似たような感じになる。
できればTDDで作りたいけど、今のところ単体テストのうまいやり方はよくわかっていない。

最初はどうしようかと思ったけど、今はいくつか注意すればこれもありかなーと思っている。
そんな感じ。

Tagged on: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.