気楽なソフト工房

プログラミングについていろいろな記事を書いています。



mykonos2008

Author:mykonos2008
システムエンジニアとして働いている30代の会社員です。
仕事や趣味でプログラムを書いている方の役に立つ記事を書いていきたいと思っています。
ご意見、ご感想はこちらまで
If you are an english speaker,Please visit my english blog.

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
私は現在、「Google App Engine」と「Silverlight」を組み合わせたWebアプリを開発しています。
「Google App Engine」側にはREST型のWebサービスを実装しているのですが、
やはり最初にぶちあたったのが、フレームワークの問題です。

実際、JavaでWebアプリを開発するとなると、ほとんどのケースにおいて、
フレームワークを使うことになると思いますが、「Google App Engine」の場合、
個人で小さなアプリを開発している人も多いのではと思います。

ほんの数画面ほどのものを作るだけなのですが、全く一から「JSP + Servlet」で
作るとコードが煩雑、または冗長になったりしてしまって、日頃きれいなコードを
心掛けている方は、少々不満に感じたりするかもしれません。

だからと言って、フレームワークを使うとなると、それを設定したり、
または使い方を覚えるのが大変で、かえって時間がかかってしまったり
することも有ります。

このジレンマを解決したく、私はGAE専用の超超軽量フレームワークを
作ってみたいと考えました。

私は、このフレームワークを考えるにあたり
「最低限JavaとServlet+JSPを知っていれば、すぐに使える!」
を最大の目標として設定しました。

私が今、ここでフレームワークと言っているのは、
フレームワークを構成するクラス群と
ある一つの考え方です。

■フレームワークを構成するクラス
フレームワークを構成する主なクラスは以下の3つです。

①Actionクラス
StrutsのActionクラスと同じで、実処理を記述したり、
遷移先をコントロールしたりするクラス。

②Dispatcherサーブレット
リクエストされたURLとルールに従って、対応するActionクラスの
対応するメソッドをコールするクラス。(設定ファイルは使いません。)

③HttpBeanManager
リクエストパラメータを、JDOエンティティのインスタンスに設定し、
検証を行うクラス。

①と②については最低限これが無いと、Servletが画面毎に存在する
原始のプログラムになってしまうのと考えたからです。

③についてはrequest.getParameter()をたくさん記述して、
それを一つ一つ各々で検証する部分に時間を割きたくなかったからです。

データまわりはGAEから提供されているので、これで
最低限の見栄えのと生産性が実現できると考えました。

■フレームワークを構成する考え方
次に先に述べた「ある一つの考え方」についてですが、
お気づきかと思いますが、このフレームワークではプレゼンテーション層の
モジュールを一切提供しません。

どうするかと言いますと、原点に立ち返り、JSPの「式」と「スクリプトレット」で
プレゼンテーション層を記述するのです。これが「ある一つの考え方」の内容です。

現在、ほとんどのフレームワークでは、独自のタグライブラリが提供されています。
今や、タグライブラリでJSPを記述するのは当たり前で、「スクリプトレット」と
言われても、言葉すら聞いたことが無いJavaのエンジニアの方もいると思います。

「スクリプトレット」はスパゲティーソースの原因としてバッシングを受け、
ほとんど使われることが無くなっていますが、私は、
「ビジネスロジックはJava側に記述し、スクリプトレットでは記述しない」
という前提の元に、「スクリプトレット」を使用することは、そこまで悪ではないと
考えています。

タグライブラリは確かにJSPをきれいにするのですが、その反面、覚えるのが大変で、
JavaによるWeb開発を難しくする要因の一つになっています。

そして、何よりも、タグライブラリを作ってしまったら、
「最低限JavaとServlet+JSPを知っていれば、すぐに使える!」と
矛盾することになります。

私は、このフレームワークを「Zinbei Framework」と名付けました!
理由は。。。ありません。思いつきです。

少しずつですが、作り上げてこのブログで発表していきたいと思います。

※私は、既存のフレームワークの有効性を否定しているわけではありません。
Javaの開発にもこのような選択肢があっても良いのではと考えているのです。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://csfun.blog49.fc2.com/tb.php/100-b89ccbc1

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。