Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Roo
Search
terahide
August 01, 2011
Technology
0
44
Roo
2011/08/01のJSUGでプレゼンテーションした資料です。
terahide
August 01, 2011
Tweet
Share
More Decks by terahide
See All by terahide
アニメに学ぶチームの多様性とコンピテンシー
terahide
0
500
テスト駆動開発でダイエットに挑戦して失敗した話
terahide
0
1.2k
コミュニケーション不全はなぜ起きるか
terahide
0
130
オレオレになりがちなテスト計画を見直した話
terahide
0
150
和服を普段着にするようになって気づいたアジャイルの心
terahide
0
39
Management3.0のワークを受けてから会社の偉い人へM3.0のワークショップをするまでにやったこと
terahide
0
120
一番アジャイルな料理人はソーマくんだと思うんだ
terahide
0
59
Att
terahide
0
24
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
terahide
0
39
Other Decks in Technology
See All in Technology
OAuthからOIDCへ ― 認可の仕組みが認証に拡張されるまで
yamatai1212
0
150
難しいセキュリティ用語をわかりやすくしてみた
yuta3110
0
350
MCP ✖️ Apps SDKを触ってみた
hisuzuya
0
250
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.8k
[2025年10月版] Databricks Data + AI Boot Camp
databricksjapan
1
230
Building a cloud native business on open source
lizrice
0
150
物体検出モデルでシイタケの収穫時期を自動判定してみた。 #devio2025
lamaglama39
0
260
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
Zephyr(RTOS)にEdge AIを組み込んでみた話
iotengineer22
1
240
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
390
現場データから見える、開発生産性の変化コード生成AI導入・運用のリアル〜 / Changes in Development Productivity and Operational Challenges Following the Introduction of Code Generation AI
nttcom
1
420
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.8k
Being A Developer After 40
akosma
91
590k
The Invisible Side of Design
smashingmag
302
51k
Designing for Performance
lara
610
69k
GitHub's CSS Performance
jonrohan
1032
470k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Building Adaptive Systems
keathley
44
2.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
BBQ
matthewcrist
89
9.8k
Transcript
1 Spring Rooのご紹介 日本Springユーザ会 てらひで
自己紹介 • 寺島 秀樹 – 所属 • 株式会社アクシスウェア(http://www.axisware.co.jp) • ソフトウェアデザイン事業部
• チーフアーキテクト – アーキテクトとして全体最適や標準化を行う – 連絡先 •
[email protected]
• mixi:てらひで!!(ID:3315992)
最近の興味 • 社内勉強会 – 社内の技術者の教育 – 他社の社内勉強会の実情 – 勉強会の円滑な運営 –
社内講師はどうすれば育成できるか? • 意見交換させて頂ければ幸いです。 3 ご参考: http://www.slideshare.net/terahide/ss-8600885
今回のお話をお受けするにあたり • JSUGでRooのお話をする機会を頂いた • テーマ「大規模開発でRooは使えるか」 • Webで調べながら1カ月で評価すればいいや • 1週間後→ チュートリアルが動かない
• 日本語の記事がほぼ皆無であると気づく • テーマ変更「Rooを触ってみたお」 • 今青ざめた自分がここにいる。。。 4 や ば さ 指 数
Spring Roo • RADツール • コマンドベース • 自動生成 • Usable
and Learnable 5 http://www.springsource.org/roo
SpringSourceの戦略 • Framework ベンダを脱却して Java エンタプライズ システムのAll In One企業へ –
ビルド • etc. – 実行 • etc. – 管理 • Hyperic etc. • パブリッククラウド で エンタープライズを! 6
Rooの位置づけ • SpringSourceの中核技術の1つ • RADツールのしての競合 – RoR – Dolteng(Seaser2のEclipseプラグイン) –
・・・ • クラウドとRoo 7
Rooの構成要素 • 構成 – Java – SpringFramework – Spring MVC
– JSP – JPA – AspectJ 8 • WEBアーキテクチャ – RESTful • テスト – JUnit – Selenium • ビルド – Maven 枯れた技術!
nTier アーキテクチャ • Goodbye DAOs 9 View Action ※1 Service
DAO 従来 Roo View Controller Entity ※1 Spring MVCの場合はController
Rooの機能–自動生成 • コマンドを打つ↓ • ファイルを生成 – Java – JSP –
Springの設定ファイル – メッセージpropertiesファイル – Mavenのpomファイル – etc. 10 Usable !
Rooの機能-コマンド • コマンドなんて覚えられない! • hint コマンド • Tabキー 11 Learnable!
自動生成 • 個人的なお話ですが 12 自動生成で 得をしたことがない! 痛い目には いっぱいあった(;;)
よく聞くお話 • 開発者Aさん「Excelで書かれた◦×設計書から Javaのコードを自動生成して...」 • 自動生成 → 修正 → 再度生成
13 修正した内容 消えちゃったo(>△<)o
自動生成の問題点を考える • ジェネレーションギャップ • 生成にかかるコスト(時間) – 開発のリズム • 完璧なコードの生成は難しい! –
可読性の確保 • 空行とかインデントって結構大事 – ビジネスロジックは自動生成できない! 14
Rooの自動生成 • ×設計書から自動生成 • プログラムベース – 自動生成して終わりではない – プログラミングは必要 –
基本的なCRUDを生成(Scaffold) – プログラムのテンプレートを生成 • ジェネレーションギャップ – AspectJ – 生成した「変更しない部分」を.ajファイルに隠ぺい 15
デモ • チュートリアル 16
なんとなく分かった • 気になる点 – エンタプライズはscaffoldだけでは成り立たない – 機能を追加するのは簡単? – 画面とかどうやって追加するの? –
コントローラの実装は? – ・ ・ ・ 17 実務で使えるの?
実際にやってみた • 評価期間:3週間 • 作業者:2人 • 評価内容: – 簡単なWebアプリケーション(ちょっとしたゲーム)を開発 –
困った点、良かった点をまとめる 18
調べられなかった点 調べられなかった点 使用される技術 他システム連携 JMS Entityの拡張 JPA 複雑な トランザクション制御 SpringFramework
セキュリティ SpringSecurity View(非同期) Spring JS(Dojo) クラウド(GWT) GWT 19
困った点 • やりたいことの実現方法を探せない – 日本語のドキュメントが皆無 • 開発のリズムがつかみにくい – hotdeployに未対応、(tcサーバ再起動) –
InメモリDBは再起動すると。。。 • JSPがなじまない – SpringMVCのお話だけど • STSが。。。 – チュートリアルをまともに動かすのに1週間かかった – コマンドラインならすぐだったけどね 20
良かった点 21 ごめんなさい(><) よく分かりませんでした。
Rooのアドバンテージ① • Java・Springベースである – タイプセーフの利点 • 大規模開発に向く – JavaEEに比べてLightweight •
クラウド環境に向く – 枯れた技術 • 堅牢 • 学習コストの短縮 22
Rooのアドバンテージ② • 非ランタイム – 実行時に必要なjarファイルを含める必要がない – warの肥大化を防ぐ – 無駄にメモリを消費しない –
動的プロクシが介在しないのでそれによる性能低下が起 きない 23
Rooのアドバンテージ③ • 一貫性のある開発スタイル – アプリケーションの構造・開発方法がおのずと決まってく る • プログラムを書く時間を短縮できる – ドメインのモデリングにその分時間をさける
• add-onベース – 今後もさまざまなadd-onが追加される – 自分で追加することも可能 • springsourceの中核技術 – 今後もメンテナンスが期待できる 24
感想① • 大規模開発で使用するには... – ドキュメントの難 – 例外的な機能などへの戦略 – 大勢集まった開発者 •
短期間でrooの流儀を徹底できるか 25
感想② • 開発中に部分部分で使用する手もあるかも – 最初に機能のテンプレートを作ってそれを拡張する • テンプレートの作成にrooを – 独自フレームワークの基礎に •
ソフトウェアアーキテクト • フレームワークエンジニア 26
Happy Roo Life ! 27
28 ご清聴ありがとうございました
29 ライセンスについて • JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生 作品)の複製・頒布・表示・上演を認めます。 • 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。 • 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。