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