2013年11月4日月曜日

WEBサービスを作ってみよう 第3回 Slim3の概要


Slim3をいくらか触ってみたので、その概念について。


まず、Slim3の基本的な構成はController、Model、Serviceとあり、それぞれControllerは画面遷移、Modelはデータオブジェクト、Serviceはロジックの役割を持ちます。

Slim3におけるControllerは、URLに関連付けられたServletで、基本的な流れはまずControllerを呼び出して処理し、そこからjspを出力するという感じです。
ModelはDatastoreに永続化するクラスで、データベースオブジェクトの設計部分になります。
ビジネスロジックが書かれたServiceから、DatastoreのModel読み出しや、保存を実行します。


開発にはEclipseを使うのが一般的で、Slim3 Plugin for Eclipseをインストールして利用します。
Antが使えるので、Antタスクを使ってControllerを作成すると、ControllerとJSPとTestCaseを同時に生成出来、ControllerはURLに関連付くので、servlet-mappingの設定など面倒な作業は不要です。
当然、ServiceやModelを作成する際も、TestCaseを生成してくれます。


Slim3はTDD(Test DrivenDevelopment)という開発手法を推奨していて、コード本体が完成していない状態でまずテストを書いてテストが失敗することを確認し(テストファースト)、次にそれが動くコード本体を書くという流れを繰り返します。

コード本体の書き方も、まずは定数を返すなどの仮実装を行い、徐々に変数を用いた本来のコードに仕上げていって洗練していくという流れです。

この設計手法にはとても共感出来ます。
いっきにコードを書き倒して、もはやどこでしくじったのか訳が分からなくなり、数時間ハマるなんてことを良く経験するので、それを回避出来ます。

TestCaseの生成の重要性が良く分かっていませんでしたが、なるほどこれは重要ですね。


ちなみに、はじめにAntを動かしてみたところ、gen-controllerのところで思いっきりハマりました。

Antを実行すると

 java.lang.SecurityException: SHA1 digest error for org/eclipse/swt/graphics/GC.class

と言われてControllerが生成出来ません。

色々調べてみたところ、

実行 > 外部ツールの構成 > 「JRE」タブ > ランライム JRE > 「ワークスペースと同じ JRE で実行」にチェック

で解決しました。

どうやらJREのバージョンが異なることで起きていたようで、これで無事Controllerが生成されました。


さて、フレームワークを使うと開発が効率化されるというのがなんとなく分かってきましたが、さらにSlim3はHOT reloadingをサポートしています。
何それ?という感じですが、所謂HOT deployの別称で、アプリケーションサーバを立ち上げたままでも変更したクラスがリロードされるので、いちいち再起動が不要という代物です。

いくつかハマるケースもあるみたいですが、Servletを書き換える度に再起動するのに比べると恐ろしく効率的です。


世の中の人が便利と言ってるモノは、やっぱり便利ですね。
今後は素直に先人の知恵には従おうと思います。


0 コメント:

コメントを投稿