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
42
Roo
2011/08/01のJSUGでプレゼンテーションした資料です。
terahide
August 01, 2011
Tweet
Share
More Decks by terahide
See All by terahide
アニメに学ぶチームの多様性とコンピテンシー
terahide
0
430
テスト駆動開発でダイエットに挑戦して失敗した話
terahide
0
1.1k
コミュニケーション不全はなぜ起きるか
terahide
0
130
オレオレになりがちなテスト計画を見直した話
terahide
0
130
和服を普段着にするようになって気づいたアジャイルの心
terahide
0
39
Management3.0のワークを受けてから会社の偉い人へM3.0のワークショップをするまでにやったこと
terahide
0
100
一番アジャイルな料理人はソーマくんだと思うんだ
terahide
0
53
Att
terahide
0
24
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
terahide
0
38
Other Decks in Technology
See All in Technology
SmartNewsにおける 1000+ノード規模 K8s基盤 でのコスト最適化 – Spot・Gravitonの大規模導入への挑戦
vsanna2
0
130
Geminiとv0による高速プロトタイピング
shinya337
1
270
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
3
440
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
340
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
7
1.1k
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
4
3.8k
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
170
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
170
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
180
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
2
7k
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
250
怖くない!はじめてのClaude Code
shinya337
0
390
Featured
See All Featured
Visualization
eitanlees
146
16k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
RailsConf 2023
tenderlove
30
1.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Code Reviewing Like a Champion
maltzj
524
40k
Music & Morning Musume
bryan
46
6.6k
BBQ
matthewcrist
89
9.7k
Site-Speed That Sticks
csswizardry
10
690
What's in a price? How to price your products and services
michaelherold
246
12k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
950
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マスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生 作品)の複製・頒布・表示・上演を認めます。 • 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。 • 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。