roo

29
1 Spring Roo のののの のの Spring のののの のののの

Upload: terahide

Post on 25-May-2015

1.374 views

Category:

Technology


3 download

DESCRIPTION

2011/08/01のJSUGでプレゼンテーションした資料です。

TRANSCRIPT

Page 1: Roo

1

Spring Roo のご紹介

日本 Spring ユーザ会てらひで

Page 2: Roo

自己紹介

• 寺島 秀樹– 所属

• 株式会社アクシスウェア( http://www.axisware.co.jp )

• ソフトウェアデザイン事業部• チーフアーキテクト

– アーキテクトとして全体最適や標準化を行う

– 連絡先• [email protected]• mixi :てらひで!!( ID : 3315992 )

Page 3: Roo

最近の興味• 社内勉強会

– 社内の技術者の教育– 他社の社内勉強会の実情– 勉強会の円滑な運営– 社内講師はどうすれば育成できるか?

• 意見交換させて頂ければ幸いです。

3

ご参考: http://www.slideshare.net/terahide/ss-8600885

Page 4: Roo

今回のお話をお受けするにあたり• JSUG で Roo のお話をする機会を頂いた• テーマ「大規模開発で Roo は使えるか」• Web で調べながら1カ月で評価すればいいや

• 1週間後→ チュートリアルが動かない• 日本語の記事がほぼ皆無であると気づく• テーマ変更「 Roo を触ってみたお」

• 今青ざめた自分がここにいる。。。

4

Page 5: Roo

Spring Roo• RAD ツール• コマンドベース• 自動生成• Usable and

     Learnable

5

http://www.springsource.org/roo

Page 6: Roo

SpringSource の戦略• Framework ベンダを脱却して   Java エンタプライズ システムの All In One 企業へ

– ビルド• etc.

– 実行•               etc.

– 管理• Hyperic etc.

• パブリッククラウド で エンタープライズを!

6

Page 7: Roo

Roo の位置づけ• SpringSource の中核技術の1つ• RAD ツールのしての競合

– RoR– Dolteng ( Seaser2 の Eclipse プラグイン)– ・・・

• クラウドと Roo

7

Page 8: Roo

Roo の構成要素• 構成

– Java– SpringFramework– Spring MVC– JSP– JPA– AspectJ

8

• WEB アーキテクチャ– RESTful

• テスト– JUnit– Selenium

• ビルド– Maven

枯れた技術!

Page 9: Roo

nTier アーキテクチャ• Goodbye DAOs

9

View

Action 1※

Service

DAO

従来 Roo

View

Controller

Entity

※1 Spring MVC の場合は Controller

Page 10: Roo

Roo の機能–自動生成• コマンドを打つ↓• ファイルを生成

– Java– JSP– Spring の設定ファイル– メッセージ properties ファイル– Maven の pom ファイル– etc.

10

Usable !

Page 11: Roo

Roo の機能 - コマンド• コマンドなんて覚えられない!

• hint コマンド• Tab キー

11

Learnable!

Page 12: Roo

自動生成• 個人的なお話ですが

12

自動生成で得をしたことがない!

痛い目にはいっぱいあった(;;)

Page 13: Roo

よく聞くお話• 開発者 A さん「 Excel で書かれた○ × 設計書か

ら           Javaのコードを自動

生成して...」

• 自動生成 → 修正 → 再度生成

13

修正した内容消えちゃった o (>△<) o

Page 14: Roo

自動生成の問題点を考える• ジェネレーションギャップ• 生成にかかるコスト(時間)

– 開発のリズム

• 完璧なコードの生成は難しい!– 可読性の確保

• 空行とかインデントって結構大事– ビジネスロジックは自動生成できない!

14

Page 15: Roo

Roo の自動生成• × 設計書から自動生成• プログラムベース

– 自動生成して終わりではない– プログラミングは必要– 基本的な CRUD を生成( Scaffold )– プログラムのテンプレートを生成

• ジェネレーションギャップ– AspectJ

– 生成した「変更しない部分」を .aj ファイルに隠ぺい

15

Page 16: Roo

デモ• チュートリアル

16

Page 17: Roo

なんとなく分かった• 気になる点

– エンタプライズは scaffoldだけでは成り立たない– 機能を追加するのは簡単?– 画面とかどうやって追加するの?– コントローラの実装は?– ・ ・ ・

17

実務で使えるの?

Page 18: Roo

実際にやってみた• 評価期間:3週間• 作業者:2人• 評価内容:

– 簡単な Web アプリケーション(ちょっとしたゲーム)を開発

– 困った点、良かった点をまとめる

18

Page 19: Roo

調べられなかった点調べられなかった点 使用される技術他システム連携 JMS

Entity の拡張 JPA

複雑なトランザクション制御

SpringFramework

セキュリティ SpringSecurity

View (非同期) Spring JS(Dojo)

クラウド (GWT) GWT19

Page 20: Roo

困った点• やりたいことの実現方法を探せない

– 日本語のドキュメントが皆無

• 開発のリズムがつかみにくい– hotdeploy に未対応、( tcサーバ再起動)– In メモリ DB は再起動すると。。。

• JSP がなじまない– SpringMVC のお話だけど

• STS が。。。– チュートリアルをまともに動かすのに1週間かかった– コマンドラインならすぐだったけどね

20

Page 21: Roo

良かった点

21

ごめんなさい(><)よく分かりませんでした。

Page 22: Roo

Roo のアドバンテージ①• Java ・ Spring ベースである

– タイプセーフの利点• 大規模開発に向く

– JavaEE に比べて Lightweight• クラウド環境に向く

– 枯れた技術• 堅牢• 学習コストの短縮

22

Page 23: Roo

Roo のアドバンテージ②• 非ランタイム

– 実行時に必要な jar ファイルを含める必要がない– war の肥大化を防ぐ– 無駄にメモリを消費しない– 動的プロクシが介在しないのでそれによる性能低下

が起きない

23

Page 24: Roo

Roo のアドバンテージ③• 一貫性のある開発スタイル

– アプリケーションの構造・開発方法がおのずと決まってくる

• プログラムを書く時間を短縮できる– ドメインのモデリングにその分時間をさける

• add-on ベース– 今後もさまざまな add-on が追加される– 自分で追加することも可能

• springsource の中核技術– 今後もメンテナンスが期待できる

24

Page 25: Roo

感想①• 大規模開発で使用するには...

– ドキュメントの難– 例外的な機能などへの戦略– 大勢集まった開発者

• 短期間で roo の流儀を徹底できるか

25

Page 26: Roo

感想②• 開発中に部分部分で使用する手もあるかも

– 最初に機能のテンプレートを作ってそれを拡張する• テンプレートの作成に roo を

– 独自フレームワークの基礎に• ソフトウェアアーキテクト• フレームワークエンジニア

26

Page 27: Roo

Happy Roo Life !

27

Page 28: Roo

28

ご清聴ありがとうございました

Page 29: Roo

29

ライセンスについて• JSUG マスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれ

を元にした派生作品)の複製・頒布・表示・上演を認めます。

• 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。

• 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。