気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Seasar2の特徴とプロダクト構成

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 と呼んでいます。その構成は以下の通りになっています。

  • 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

開発効率を上げるソース自動生成ツール
例外的なケースのみを明示的に実装する。