SlideShare a Scribd company logo
Summit
Developers
Developers Summit 2013 Summer
SIerにもテクノロジーの冒険はある!
∼  GGrraaiillss,,AAnnddrrooiidd,,OOppeennSSttaacckk
を巡る物語  ∼
上原 潤二
神原 健一
金渕 満
NTTソフトウェア株式会社
#devsumiB2
13年8月1日木曜日
Developer Summit 2013 Summer
自己紹介
上原潤二(@uehaj)
NTTソフトウェア(株)Grails推進室
JGGUG(日本Grails/Groovyユーザグループ)運営委員
書籍:
プログラミングGROOVY(技術評論社)
Grails徹底入門(翔泳社)
ブログ「Grな日々」
GroovyServ, LispBuilder, GVM(JVM
written in Groovy)開発者
2
13年8月1日木曜日
Developer Summit 2013 Summer
物語1:エンタープライズGrails
3
中堅SIerにおいて、
先進的なフルスタック
フレームワークGrails
を全社的に普及推進し
てみた。
13年8月1日木曜日
Developer Summit 2013 Summer
今日の内容
使ってます、Grails
NTTソフトウェアではWebアプリ開発を
中心にGrails/Groovy全社的に採用
Grailsって何?
何でまたGrailsを?
何を目指している?
4
13年8月1日木曜日
Developer Summit 2013 Summer
使ってます、Grails
平成24年1月
Grails推進室設置
平成24年度
Grails/Groovyを全社的に採用
10組織15プロジェクト+で使用
平成25年(-7月)
6件のプロジェクトでGrails/Groovyを新
規採用
5
13年8月1日木曜日
Developer Summit 2013 Summer
Grails推進室
6
技術サポート・研修
社内リポジトリ運用
ツール開発
開発環境クラウド化
OSS開発
海外カンファレンス
などでの講演
トレーニングコース
開催
社内プロジェクトコミュニティ
Grails
推進室
草の根翻訳
プロジェクト
Grailsの普及推進・技術
者育成をミッションとす
る専担チーム7名
英語ドキュメントの翻訳
13年8月1日木曜日
Developer Summit 2013 Summer
Grailsって何?
Webアプリ開発用統合フレームワーク
OSS/JavaEEベース(単なるwar)/Groovy
フルスタック
プラグインベース
アセットパイプライン管理
DBマイグレーション
リモーティング
認証(Spring Security)
:
7
(一説によると)全体工数の
22%を削減することができると
言われている
• Spring FW
• Spring MVC
• Hibernate
• SiteMesh
• Log4j,JUnit,.
13年8月1日木曜日
Developer Summit 2013 Summer
Groovyって何?
Javaの表記拡張(上位互換)
簡潔記述(1/4∼1/2)
クロージャ
関数型っぽいコレクション操作
動的+静的ハイブリッド
8
13年8月1日木曜日
Developer Summit 2013 Summer
Groovyって何?
Javaの表記拡張(上位互換)
簡潔記述(1/4∼1/2)
クロージャ
関数型っぽいコレクション操作
動的+静的ハイブリッド
8
GrailsはGroovyの応用例
他応用
Spock(テスト)
Gradle(ビルド)
13年8月1日木曜日
Developer Summit 2013 Summer
Groovyって何?
Javaの表記拡張(上位互換)
簡潔記述(1/4∼1/2)
クロージャ
関数型っぽいコレクション操作
動的+静的ハイブリッド
8
GrailsはGroovyの応用例
他応用
Spock(テスト)
Gradle(ビルド)
class	
  MySpec	
  extends	
  Specification	
  {
	
  	
  	
  	
  def	
  "2つの数字の最大値"(int	
  x,	
  int	
  y,	
  int	
  z)	
  {
	
  	
  	
  	
  	
  	
  expect:
	
  	
  	
  	
  	
  	
  	
  	
  Math.max(x,	
  y)	
  ==	
  z
	
  	
  	
  	
  	
  	
  where:
	
  	
  	
  	
  	
  	
  	
  	
  x	
  |	
  y	
  |	
  z
	
  	
  	
  	
  	
  	
  	
  	
  1	
  |	
  3	
  |	
  3
	
  	
  	
  	
  	
  	
  	
  	
  7	
  |	
  4	
  |	
  7
	
  	
  	
  	
  	
  	
  	
  	
  0	
  |	
  0	
  |	
  0
	
  	
  	
  	
  }
	
  }
13年8月1日木曜日
Developer Summit 2013 Summer
何でまたGrailsを?
背景
SIerの苦悩‥
開発効率UP
組織的スキル蓄積・技術者育成の軸
9
13年8月1日木曜日
Developer Summit 2013 Summer
何でまたGrailsを?
背景
SIerの苦悩‥
開発効率UP
組織的スキル蓄積・技術者育成の軸
9
なぜPlay FWやRoRとかじゃないのか?
13年8月1日木曜日
Developer Summit 2013 Summer
何でまたGrailsを?
背景
SIerの苦悩‥
開発効率UP
組織的スキル蓄積・技術者育成の軸
9
なぜPlay FWやRoRとかじゃないのか?
➡Javaとのシームレスな継続性
13年8月1日木曜日
Developer Summit 2013 Summer
何でまたGrailsを?
背景
SIerの苦悩‥
開発効率UP
組織的スキル蓄積・技術者育成の軸
9
なぜPlay FWやRoRとかじゃないのか?
➡Javaとのシームレスな継続性
➡現実と地続きであること
13年8月1日木曜日
Developer Summit 2013 Summer
Javaとの継続性: 新規開発
10
Grailsで
使用可能
Java開発スキル
APサーバ
ライブラリ
IDE・ツール
技術者・会社コネクション
Java資産
Java VM
13年8月1日木曜日
Developer Summit 2013 Summer
Javaとの継続性: 新規開発
10
Grailsで
使用可能
Java開発スキル
APサーバ
ライブラリ
IDE・ツール
技術者・会社コネクション
Grailsの
利点を享
受(22%
…)
補助ツール提供、研修、技術サポート
Java資産
Java VM
13年8月1日木曜日
Developer Summit 2013 Summer
Javaとの継続性: システム更改
11
Grails
内で
使用
可能
Javaソースコード
Jar, Maven POM
Hibernate Entity
JSP, Servlet
Spring Bean
SpringMVC Controller
既存システム
13年8月1日木曜日
新規機能
をGrails
で追加
必要に応
じて
Grails/
Groovyで
置き換え
Developer Summit 2013 Summer
Javaとの継続性: システム更改
11
Grails
内で
使用
可能
Javaソースコード
Jar, Maven POM
Hibernate Entity
JSP, Servlet
Spring Bean
SpringMVC Controller
既存システム
13年8月1日木曜日
Grails
の利
点を
逐次
享受
新規機能
をGrails
で追加
必要に応
じて
Grails/
Groovyで
置き換え
Developer Summit 2013 Summer
Javaとの継続性: システム更改
11
Grails
内で
使用
可能
Javaソースコード
Jar, Maven POM
Hibernate Entity
JSP, Servlet
Spring Bean
SpringMVC Controller
既存システム
13年8月1日木曜日
Grails
の利
点を
逐次
享受
新規機能
をGrails
で追加
必要に応
じて
Grails/
Groovyで
置き換え
Developer Summit 2013 Summer
Javaとの継続性: システム更改
11
Grails
内で
使用
可能
Javaソースコード
Jar, Maven POM
Hibernate Entity
JSP, Servlet
Spring Bean
SpringMVC Controller
既存システム
既存システムを運用しつつ追
加・更新可能
13年8月1日木曜日
•初期の習熟コス
トが高い
•Scaffoldの機能
が低い
•デフォルトAP
設定が最小限
Developer Summit 2013 Summer
効果をより高めるために
12
問題点
13年8月1日木曜日
Role (※1)
GSP(TAB
)
Wizard
Grid
GSP
Grails
解
決
策
ウィザードツール開発検討中
高機能Scaffold(CRUD)
テーブル結合対応
業務画面パターンから選択
jQgrid/DataTables使用
•初期の習熟コス
トが高い
•Scaffoldの機能
が低い
•デフォルトAP
設定が最小限
Developer Summit 2013 Summer
効果をより高めるために
12
問題点
13年8月1日木曜日
Role (※1)
GSP(TAB
)
Wizard
Grid
GSP
Grails
解
決
策
ウィザードツール開発検討中
高機能Scaffold(CRUD)
テーブル結合対応
業務画面パターンから選択
jQgrid/DataTables使用
•初期の習熟コス
トが高い
•Scaffoldの機能
が低い
•デフォルトAP
設定が最小限
Developer Summit 2013 Summer
効果をより高めるために
12
問題点
•Grailsのscaffoldテンプレ
ート機構の延長。
•2way編集が可能=Grailsの
中核的価値を妨げない。
13年8月1日木曜日
Developer Summit 2013 Summer
まとめ
13
13年8月1日木曜日
Developer Summit 2013 Summer
まとめ
SIビジネスは死なない!!
13
13年8月1日木曜日
Developer Summit 2013 Summer
まとめ
SIビジネスは死なない!!
少なくとも当面は
13
13年8月1日木曜日
Developer Summit 2013 Summer
まとめ
SIビジネスは死なない!!
少なくとも当面は
ただし変化が必要
13
13年8月1日木曜日
Developer Summit 2013 Summer
まとめ
SIビジネスは死なない!!
少なくとも当面は
ただし変化が必要
Javaベースの企業システムの開発において、
Grails適用は現実を踏まえた架け橋となる
13
13年8月1日木曜日
Developer Summit 2013 Summer
まとめ
SIビジネスは死なない!!
少なくとも当面は
ただし変化が必要
Javaベースの企業システムの開発において、
Grails適用は現実を踏まえた架け橋となる
13
現
実
システム運用と並行する漸進的・継続的開発
Agile,TDDの導入
未
来
13年8月1日木曜日

More Related Content

enterprise grails challenge, 2013 Summer

  • 1. Summit Developers Developers Summit 2013 Summer SIerにもテクノロジーの冒険はある! ∼ GGrraaiillss,,AAnnddrrooiidd,,OOppeennSSttaacckk を巡る物語 ∼ 上原 潤二 神原 健一 金渕 満 NTTソフトウェア株式会社 #devsumiB2 13年8月1日木曜日
  • 2. Developer Summit 2013 Summer 自己紹介 上原潤二(@uehaj) NTTソフトウェア(株)Grails推進室 JGGUG(日本Grails/Groovyユーザグループ)運営委員 書籍: プログラミングGROOVY(技術評論社) Grails徹底入門(翔泳社) ブログ「Grな日々」 GroovyServ, LispBuilder, GVM(JVM written in Groovy)開発者 2 13年8月1日木曜日
  • 3. Developer Summit 2013 Summer 物語1:エンタープライズGrails 3 中堅SIerにおいて、 先進的なフルスタック フレームワークGrails を全社的に普及推進し てみた。 13年8月1日木曜日
  • 4. Developer Summit 2013 Summer 今日の内容 使ってます、Grails NTTソフトウェアではWebアプリ開発を 中心にGrails/Groovy全社的に採用 Grailsって何? 何でまたGrailsを? 何を目指している? 4 13年8月1日木曜日
  • 5. Developer Summit 2013 Summer 使ってます、Grails 平成24年1月 Grails推進室設置 平成24年度 Grails/Groovyを全社的に採用 10組織15プロジェクト+で使用 平成25年(-7月) 6件のプロジェクトでGrails/Groovyを新 規採用 5 13年8月1日木曜日
  • 6. Developer Summit 2013 Summer Grails推進室 6 技術サポート・研修 社内リポジトリ運用 ツール開発 開発環境クラウド化 OSS開発 海外カンファレンス などでの講演 トレーニングコース 開催 社内プロジェクトコミュニティ Grails 推進室 草の根翻訳 プロジェクト Grailsの普及推進・技術 者育成をミッションとす る専担チーム7名 英語ドキュメントの翻訳 13年8月1日木曜日
  • 7. Developer Summit 2013 Summer Grailsって何? Webアプリ開発用統合フレームワーク OSS/JavaEEベース(単なるwar)/Groovy フルスタック プラグインベース アセットパイプライン管理 DBマイグレーション リモーティング 認証(Spring Security) : 7 (一説によると)全体工数の 22%を削減することができると 言われている • Spring FW • Spring MVC • Hibernate • SiteMesh • Log4j,JUnit,. 13年8月1日木曜日
  • 8. Developer Summit 2013 Summer Groovyって何? Javaの表記拡張(上位互換) 簡潔記述(1/4∼1/2) クロージャ 関数型っぽいコレクション操作 動的+静的ハイブリッド 8 13年8月1日木曜日
  • 9. Developer Summit 2013 Summer Groovyって何? Javaの表記拡張(上位互換) 簡潔記述(1/4∼1/2) クロージャ 関数型っぽいコレクション操作 動的+静的ハイブリッド 8 GrailsはGroovyの応用例 他応用 Spock(テスト) Gradle(ビルド) 13年8月1日木曜日
  • 10. Developer Summit 2013 Summer Groovyって何? Javaの表記拡張(上位互換) 簡潔記述(1/4∼1/2) クロージャ 関数型っぽいコレクション操作 動的+静的ハイブリッド 8 GrailsはGroovyの応用例 他応用 Spock(テスト) Gradle(ビルド) class  MySpec  extends  Specification  {        def  "2つの数字の最大値"(int  x,  int  y,  int  z)  {            expect:                Math.max(x,  y)  ==  z            where:                x  |  y  |  z                1  |  3  |  3                7  |  4  |  7                0  |  0  |  0        }  } 13年8月1日木曜日
  • 11. Developer Summit 2013 Summer 何でまたGrailsを? 背景 SIerの苦悩‥ 開発効率UP 組織的スキル蓄積・技術者育成の軸 9 13年8月1日木曜日
  • 12. Developer Summit 2013 Summer 何でまたGrailsを? 背景 SIerの苦悩‥ 開発効率UP 組織的スキル蓄積・技術者育成の軸 9 なぜPlay FWやRoRとかじゃないのか? 13年8月1日木曜日
  • 13. Developer Summit 2013 Summer 何でまたGrailsを? 背景 SIerの苦悩‥ 開発効率UP 組織的スキル蓄積・技術者育成の軸 9 なぜPlay FWやRoRとかじゃないのか? ➡Javaとのシームレスな継続性 13年8月1日木曜日
  • 14. Developer Summit 2013 Summer 何でまたGrailsを? 背景 SIerの苦悩‥ 開発効率UP 組織的スキル蓄積・技術者育成の軸 9 なぜPlay FWやRoRとかじゃないのか? ➡Javaとのシームレスな継続性 ➡現実と地続きであること 13年8月1日木曜日
  • 15. Developer Summit 2013 Summer Javaとの継続性: 新規開発 10 Grailsで 使用可能 Java開発スキル APサーバ ライブラリ IDE・ツール 技術者・会社コネクション Java資産 Java VM 13年8月1日木曜日
  • 16. Developer Summit 2013 Summer Javaとの継続性: 新規開発 10 Grailsで 使用可能 Java開発スキル APサーバ ライブラリ IDE・ツール 技術者・会社コネクション Grailsの 利点を享 受(22% …) 補助ツール提供、研修、技術サポート Java資産 Java VM 13年8月1日木曜日
  • 17. Developer Summit 2013 Summer Javaとの継続性: システム更改 11 Grails 内で 使用 可能 Javaソースコード Jar, Maven POM Hibernate Entity JSP, Servlet Spring Bean SpringMVC Controller 既存システム 13年8月1日木曜日
  • 18. 新規機能 をGrails で追加 必要に応 じて Grails/ Groovyで 置き換え Developer Summit 2013 Summer Javaとの継続性: システム更改 11 Grails 内で 使用 可能 Javaソースコード Jar, Maven POM Hibernate Entity JSP, Servlet Spring Bean SpringMVC Controller 既存システム 13年8月1日木曜日
  • 19. Grails の利 点を 逐次 享受 新規機能 をGrails で追加 必要に応 じて Grails/ Groovyで 置き換え Developer Summit 2013 Summer Javaとの継続性: システム更改 11 Grails 内で 使用 可能 Javaソースコード Jar, Maven POM Hibernate Entity JSP, Servlet Spring Bean SpringMVC Controller 既存システム 13年8月1日木曜日
  • 20. Grails の利 点を 逐次 享受 新規機能 をGrails で追加 必要に応 じて Grails/ Groovyで 置き換え Developer Summit 2013 Summer Javaとの継続性: システム更改 11 Grails 内で 使用 可能 Javaソースコード Jar, Maven POM Hibernate Entity JSP, Servlet Spring Bean SpringMVC Controller 既存システム 既存システムを運用しつつ追 加・更新可能 13年8月1日木曜日
  • 24. Developer Summit 2013 Summer まとめ 13 13年8月1日木曜日
  • 25. Developer Summit 2013 Summer まとめ SIビジネスは死なない!! 13 13年8月1日木曜日
  • 26. Developer Summit 2013 Summer まとめ SIビジネスは死なない!! 少なくとも当面は 13 13年8月1日木曜日
  • 27. Developer Summit 2013 Summer まとめ SIビジネスは死なない!! 少なくとも当面は ただし変化が必要 13 13年8月1日木曜日
  • 28. Developer Summit 2013 Summer まとめ SIビジネスは死なない!! 少なくとも当面は ただし変化が必要 Javaベースの企業システムの開発において、 Grails適用は現実を踏まえた架け橋となる 13 13年8月1日木曜日
  • 29. Developer Summit 2013 Summer まとめ SIビジネスは死なない!! 少なくとも当面は ただし変化が必要 Javaベースの企業システムの開発において、 Grails適用は現実を踏まえた架け橋となる 13 現 実 システム運用と並行する漸進的・継続的開発 Agile,TDDの導入 未 来 13年8月1日木曜日