Seasar2によるスーパーアジャイルなWeb開発のChapter1の内容をピックアップ、自分の知見を少し追記してまとめました。詳細は書籍で確認してみてください。
プラットフォームの問題
Javaのフレームワークは画面遷移の設定、DI(依存性の注入)の設定など、とにかくXMLに設定を書く傾向があり、
XML地獄に陥りがち。
XMLはコンパイルされるものではないため、eclipseにおけるエラー表示がされないため、
間違いに気づきづらく、デバッグ時間が増える傾向にある。この結果、生産性が低下してしまう。
Struts,Springはその代表格。
Welcome to the Apache Struts project
Spring
再デプロイの問題
XMLファイル、ソースコードの修正時にアプリケーションを再デプロイして、アプリケーションサーバーを
再起動しなければならない。
Ruby言語ではソース修正後に再デプロイ、再起動なしですぐに結果を確認できる。
サクサク感のある開発が、やる気や効率を上げてくれる。
そういったJavaの問題を解決してきたのがSeasar2。
Searsar2の特徴
サクサク感のある開発
HOT deploy(ホットデプロイ)機能
アプリサーバーを起動させたまま、ソースコードの修正を認識させる。
再デプロイや再起動で待たされることがなくなる。
COOL deploy(クールデプロイ)機能
運用時にパフォーマンスを下げないためのCOOL deployモードを提供
HOT deployの時のように修正を即時で認識はしないモード
設定ファイルいらずの開発
定型的な設定はフレームワークが自動的に処理し、例外的な設定のみを
明示的に設定する思想でフレームワークが作られている。
何が起こっているかわからなくて不安、理解が浅くなると考える人に対して、
自動設定される内容を表示する機能も備えている。
プロダクト構成
Javaの生産性を上げるためのSeasar2の周辺のフレームワーク、ツール群をSuper Agile Family
と呼んでいます。その構成は以下の通りになっています。
Seasarの生みの親のひが やすをさんが沖縄出身ということで沖縄にちなんだ名前が多い。
S2Container
DIコンテナーのこと。オブジェクトを疎結合に結びつけ、保守性を高めるSuper Agileを支える縁の下の
力持ち的な存在。ほとんど自動的に処理を行うため、使う側は存在を意識しない。
S2Dxo
MapとJavaBeans、JavaBeansとJavaBeansなどのオブジェクト間の変換を行う。
Entityを画面用オブジェクトに変換したり、その逆をやったりする。
いまいち、想像しづらい。実装時に意識することがあるんだろうか。
沖縄の方言で「太陽」を意味するWeb機能を提供するフレームワーク。
JSF(Java Server Faces)の実装の「Core」とその機能を拡張した「Extension」に分かれる。
もともとはViewテンプレートにJSPを用いていたり、設定ファイルを書く必要があったが、
Teeda Extensionにおいて、ViewテンプレートにHTMLを使う、規約重視によって
設定ファイルなしの開発を可能にしている。
DBアクセス機能を提供するフレームワーク。
実装を書かずにインタフェースにメソッドを記述するだけでDBアクセスを可能とする。
開発効率を上げるソース自動生成ツール。
例外的なケースのみを明示的に実装する。