Roo

1,757 views

Published on

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

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
  • ズレてるね。。。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
1,757
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
21
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Roo

  1. 1. Spring Roo のご紹介 日本 Spring ユーザ会 てらひで
  2. 2. 自己紹介 <ul><li>寺島 秀樹 </li></ul><ul><ul><li>所属 </li></ul></ul><ul><ul><ul><li>株式会社アクシスウェア( http://www.axisware.co.jp ) </li></ul></ul></ul><ul><ul><ul><li>ソフトウェアデザイン事業部 </li></ul></ul></ul><ul><ul><ul><li>チーフアーキテクト </li></ul></ul></ul><ul><ul><ul><ul><li>アーキテクトとして全体最適や標準化を行う </li></ul></ul></ul></ul><ul><ul><li>連絡先 </li></ul></ul><ul><ul><ul><li>[email_address] </li></ul></ul></ul><ul><ul><ul><li>mixi :てらひで!!( ID : 3315992 ) </li></ul></ul></ul>
  3. 3. 最近の興味 <ul><li>社内勉強会 </li></ul><ul><ul><li>社内の技術者の教育 </li></ul></ul><ul><ul><li>他社の社内勉強会の実情 </li></ul></ul><ul><ul><li>勉強会の円滑な運営 </li></ul></ul><ul><ul><li>社内講師はどうすれば育成できるか? </li></ul></ul><ul><li>意見交換させて頂ければ幸いです。 </li></ul>ご参考: http://www.slideshare.net/terahide/ss-8600885
  4. 4. 今回のお話をお受けするにあたり <ul><li>JSUG で Roo のお話をする機会を頂いた </li></ul><ul><li>テーマ「大規模開発で Roo は使えるか」 </li></ul><ul><li>Web で調べながら1カ月で評価すればいいや </li></ul><ul><li>1週間後-> チュートリアルが動かない </li></ul><ul><li>日本語の記事がほぼ皆無であると気づく </li></ul><ul><li>テーマ変更「 Roo を触ってみたお」 </li></ul><ul><li>今青ざめた自分がここにいる。。。 </li></ul>や ば さ 指 数
  5. 5. Spring Roo <ul><li>RAD ツール </li></ul><ul><li>コマンドベース </li></ul><ul><li>自動生成 </li></ul><ul><li>Usable and </li></ul><ul><li>     Learnable </li></ul>http://www.springsource.org/roo
  6. 6. SpringSource の戦略 <ul><li>Framework ベンダを脱却して </li></ul><ul><li>   Java エンタプライズ システムの All In One 企業へ </li></ul><ul><ul><li>ビルド </li></ul></ul><ul><ul><ul><li>etc. </li></ul></ul></ul><ul><ul><li>実行 </li></ul></ul><ul><ul><ul><li>              etc. </li></ul></ul></ul><ul><ul><li>管理 </li></ul></ul><ul><ul><ul><li>Hyperic etc. </li></ul></ul></ul><ul><li>パブリッククラウド で エンタープライズを! </li></ul>
  7. 7. Roo の位置づけ <ul><li>SpringSource の中核技術の1つ </li></ul><ul><li>RAD ツールのしての競合 </li></ul><ul><ul><li>RoR </li></ul></ul><ul><ul><li>Dolteng ( Seaser2 の Eclipse プラグイン) </li></ul></ul><ul><ul><li>・・・ </li></ul></ul><ul><li>クラウドと Roo </li></ul>
  8. 8. Roo の構成要素 <ul><li>構成 </li></ul><ul><ul><li>Java </li></ul></ul><ul><ul><li>SpringFramework </li></ul></ul><ul><ul><li>Spring MVC </li></ul></ul><ul><ul><li>JSP </li></ul></ul><ul><ul><li>JPA </li></ul></ul><ul><ul><li>AspectJ </li></ul></ul><ul><li>WEB アーキテクチャ </li></ul><ul><ul><li>RESTful </li></ul></ul><ul><li>テスト </li></ul><ul><ul><li>JUnit </li></ul></ul><ul><ul><li>Selenium </li></ul></ul><ul><li>ビルド </li></ul><ul><ul><li>Maven </li></ul></ul>枯れた技術!
  9. 9. nTier アーキテクチャ <ul><li>Goodbye DAOs </li></ul>View Action ※1 Service DAO 従来 Roo View Controller Entity ※ 1 Spring MVC の場合は Controller
  10. 10. Roo の機能–自動生成 <ul><li>コマンドを打つ↓ </li></ul><ul><li>ファイルを生成 </li></ul><ul><ul><li>Java </li></ul></ul><ul><ul><li>JSP </li></ul></ul><ul><ul><li>Spring の設定ファイル </li></ul></ul><ul><ul><li>メッセージ properties ファイル </li></ul></ul><ul><ul><li>Maven の pom ファイル </li></ul></ul><ul><ul><li>etc. </li></ul></ul>Usable !
  11. 11. Roo の機能 - コマンド <ul><li>コマンドなんて覚えられない! </li></ul><ul><li>hint コマンド </li></ul><ul><li>Tab キー </li></ul>Learnable !
  12. 12. 自動生成 <ul><li>個人的なお話ですが </li></ul>自動生成で 得をしたことがない! 痛い目には いっぱいあった(;;)
  13. 13. よく聞くお話 <ul><li>開発者 A さん「 Excel で書かれた○ × 設計書から </li></ul><ul><li>           Javaのコードを自動生成して...」 </li></ul><ul><li>自動生成 -> 修正 -> 再度生成 </li></ul>修正した内容 消えちゃった o (>△<) o
  14. 14. 自動生成の問題点を考える <ul><li>ジェネレーションギャップ </li></ul><ul><li>生成にかかるコスト(時間) </li></ul><ul><ul><li>開発のリズム </li></ul></ul><ul><li>完璧なコードの生成は難しい! </li></ul><ul><ul><li>可読性の確保 </li></ul></ul><ul><ul><ul><li>空行とかインデントって結構大事 </li></ul></ul></ul><ul><ul><li>ビジネスロジックは自動生成できない! </li></ul></ul>
  15. 15. Roo の自動生成 <ul><li>× 設計書から自動生成 </li></ul><ul><li>プログラムベース </li></ul><ul><ul><li>自動生成して終わりではない </li></ul></ul><ul><ul><li>プログラミングは必要 </li></ul></ul><ul><ul><li>基本的な CRUD を生成( Scaffold ) </li></ul></ul><ul><ul><li>プログラムのテンプレートを生成 </li></ul></ul><ul><li>ジェネレーションギャップ </li></ul><ul><ul><li>AspectJ </li></ul></ul><ul><ul><li>生成した「変更しない部分」を .aj ファイルに隠ぺい </li></ul></ul>
  16. 16. デモ <ul><li>チュートリアル </li></ul>
  17. 17. なんとなく分かった <ul><li>気になる点 </li></ul><ul><ul><li>エンタプライズは scaffold だけでは成り立たない </li></ul></ul><ul><ul><li>機能を追加するのは簡単? </li></ul></ul><ul><ul><li>画面とかどうやって追加するの? </li></ul></ul><ul><ul><li>コントローラの実装は? </li></ul></ul><ul><ul><li>・ ・ ・ </li></ul></ul>実務で使えるの?
  18. 18. 実際にやってみた <ul><li>評価期間:3週間 </li></ul><ul><li>作業者:2人 </li></ul><ul><li>評価内容: </li></ul><ul><ul><li>簡単な Web アプリケーション(ちょっとしたゲーム)を開発 </li></ul></ul><ul><ul><li>困った点、良かった点をまとめる </li></ul></ul>
  19. 19. 調べられなかった点 調べられなかった点 使用される技術 他システム連携 JMS Entity の拡張 JPA 複雑な トランザクション制御 SpringFramework セキュリティ SpringSecurity View (非同期) Spring JS(Dojo) クラウド (GWT) GWT
  20. 20. 困った点 <ul><li>やりたいことの実現方法を探せない </li></ul><ul><ul><li>日本語のドキュメントが皆無 </li></ul></ul><ul><li>開発のリズムがつかみにくい </li></ul><ul><ul><li>hotdeploy に未対応、( tc サーバ再起動) </li></ul></ul><ul><ul><li>In メモリ DB は再起動すると。。。 </li></ul></ul><ul><li>JSP がなじまない </li></ul><ul><ul><li>SpringMVC のお話だけど </li></ul></ul><ul><li>STS が。。。 </li></ul><ul><ul><li>チュートリアルをまともに動かすのに1週間かかった </li></ul></ul><ul><ul><li>コマンドラインならすぐだったけどね </li></ul></ul>
  21. 21. 良かった点 ごめんなさい(><) よく分かりませんでした。
  22. 22. Roo のアドバンテージ① <ul><li>Java ・ Spring ベースである </li></ul><ul><ul><li>タイプセーフの利点 </li></ul></ul><ul><ul><ul><li>大規模開発に向く </li></ul></ul></ul><ul><ul><li>JavaEE に比べて Lightweight </li></ul></ul><ul><ul><ul><li>クラウド環境に向く </li></ul></ul></ul><ul><ul><li>枯れた技術 </li></ul></ul><ul><ul><ul><li>堅牢 </li></ul></ul></ul><ul><ul><ul><li>学習コストの短縮 </li></ul></ul></ul>
  23. 23. Roo のアドバンテージ② <ul><li>非ランタイム </li></ul><ul><ul><li>実行時に必要な jar ファイルを含める必要がない </li></ul></ul><ul><ul><li>war の肥大化を防ぐ </li></ul></ul><ul><ul><li>無駄にメモリを消費しない </li></ul></ul><ul><ul><li>動的プロクシが介在しないのでそれによる性能低下が起きない </li></ul></ul>
  24. 24. Roo のアドバンテージ③ <ul><li>一貫性のある開発スタイル </li></ul><ul><ul><li>アプリケーションの構造・開発方法がおのずと決まってくる </li></ul></ul><ul><li>プログラムを書く時間を短縮できる </li></ul><ul><ul><li>ドメインのモデリングにその分時間をさける </li></ul></ul><ul><li>add-on ベース </li></ul><ul><ul><li>今後もさまざまな add-on が追加される </li></ul></ul><ul><ul><li>自分で追加することも可能 </li></ul></ul><ul><li>springsource の中核技術 </li></ul><ul><ul><li>今後もメンテナンスが期待できる </li></ul></ul>
  25. 25. 感想① <ul><li>大規模開発で使用するには... </li></ul><ul><ul><li>ドキュメントの難 </li></ul></ul><ul><ul><li>例外的な機能などへの戦略 </li></ul></ul><ul><ul><li>大勢集まった開発者 </li></ul></ul><ul><ul><ul><li>短期間で roo の流儀を徹底できるか </li></ul></ul></ul>
  26. 26. 感想② <ul><li>開発中に部分部分で使用する手もあるかも </li></ul><ul><ul><li>最初に機能のテンプレートを作ってそれを拡張する </li></ul></ul><ul><ul><ul><li>テンプレートの作成に roo を </li></ul></ul></ul><ul><ul><li>独自フレームワークの基礎に </li></ul></ul><ul><ul><ul><li>ソフトウェアアーキテクト </li></ul></ul></ul><ul><ul><ul><li>フレームワークエンジニア </li></ul></ul></ul>
  27. 27. Happy Roo Life !
  28. 28. ご清聴ありがとうございました
  29. 29. ライセンスについて <ul><li>JSUG マスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。 </li></ul><ul><li>非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。 </li></ul><ul><li>本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。 </li></ul>

×