Suche senden
Hochladen
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
•
8 gefällt mir
•
4,318 views
学 松崎
Folgen
JavaQne(じゃばきゅん) 2015 Fukuokaで発表したスライドです https://atnd.org/events/61398
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 53
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
学 松崎
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Toshiaki Maki
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化
Toshio Ehara
最近のSpringFramework2013 #jjug #jsug #SpringFramework
最近のSpringFramework2013 #jjug #jsug #SpringFramework
Toshiaki Maki
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot Starter
Ryosuke Uchitate
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Toshiaki Maki
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Toshiaki Maki
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Toshiaki Maki
Empfohlen
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
学 松崎
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Toshiaki Maki
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化
Toshio Ehara
最近のSpringFramework2013 #jjug #jsug #SpringFramework
最近のSpringFramework2013 #jjug #jsug #SpringFramework
Toshiaki Maki
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot Starter
Ryosuke Uchitate
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Toshiaki Maki
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Toshiaki Maki
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Toshiaki Maki
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
智治 長沢
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
Mitsuru Ogawa
noteをAngularJSで構築した話
noteをAngularJSで構築した話
Kon Yuichi
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
tomonari takahashi
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
Atsushi Kojima
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
AngularJS入門の巻
AngularJS入門の巻
Toshio Ehara
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
Naoki Yamada
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
Go (5) JAZUG 関西とゆかいな仲間たち的な
Go (5) JAZUG 関西とゆかいな仲間たち的な
Keiji Kamebuchi
How to develop a huge Single Page Application
How to develop a huge Single Page Application
Naoki Yamada
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
典子 松本
Angular js開発事例
Angular js開発事例
Shun Takeyama
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
Noriaki Kadota
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへ
Mitsuru Ogawa
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ
Kazuhiro Kotsutsumi
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629
学 松崎
OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208
学 松崎
Weitere ähnliche Inhalte
Was ist angesagt?
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
智治 長沢
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
Mitsuru Ogawa
noteをAngularJSで構築した話
noteをAngularJSで構築した話
Kon Yuichi
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
tomonari takahashi
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
Atsushi Kojima
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
AngularJS入門の巻
AngularJS入門の巻
Toshio Ehara
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
Naoki Yamada
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
Go (5) JAZUG 関西とゆかいな仲間たち的な
Go (5) JAZUG 関西とゆかいな仲間たち的な
Keiji Kamebuchi
How to develop a huge Single Page Application
How to develop a huge Single Page Application
Naoki Yamada
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
典子 松本
Angular js開発事例
Angular js開発事例
Shun Takeyama
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
Noriaki Kadota
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへ
Mitsuru Ogawa
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ
Kazuhiro Kotsutsumi
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
Was ist angesagt?
(20)
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
noteをAngularJSで構築した話
noteをAngularJSで構築した話
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
AngularJS入門の巻
AngularJS入門の巻
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
Go (5) JAZUG 関西とゆかいな仲間たち的な
Go (5) JAZUG 関西とゆかいな仲間たち的な
How to develop a huge Single Page Application
How to develop a huge Single Page Application
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
Angular js開発事例
Angular js開発事例
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへ
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Andere mochten auch
fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629
学 松崎
OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208
学 松崎
クラウド・SaaS型 統合基幹業務システム 「CAM MACS」を支える PostgreSQL ~雲に乗ったゾウ~
クラウド・SaaS型 統合基幹業務システム 「CAM MACS」を支える PostgreSQL ~雲に乗ったゾウ~
学 松崎
Fukuokaphp vol12 talk_20140225
Fukuokaphp vol12 talk_20140225
学 松崎
福岡Ruby会議01 20121201 LT
福岡Ruby会議01 20121201 LT
学 松崎
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
学 松崎
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
学 松崎
Andere mochten auch
(7)
fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629
OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208
クラウド・SaaS型 統合基幹業務システム 「CAM MACS」を支える PostgreSQL ~雲に乗ったゾウ~
クラウド・SaaS型 統合基幹業務システム 「CAM MACS」を支える PostgreSQL ~雲に乗ったゾウ~
Fukuokaphp vol12 talk_20140225
Fukuokaphp vol12 talk_20140225
福岡Ruby会議01 20121201 LT
福岡Ruby会議01 20121201 LT
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Ähnlich wie Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
Kumano Ryo
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Koichi ITO
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
Mitsuru Ogawa
スケジュール遅延が当たり前な状況を少し良くしたいチームがその未来のためにScrumに”再”挑戦した話
スケジュール遅延が当たり前な状況を少し良くしたいチームがその未来のためにScrumに”再”挑戦した話
Rakuten Commerce Tech (Rakuten Group, Inc.)
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
Takahiro Okumura
駅すぱあとWebサービスにおけるAWSとその周辺
駅すぱあとWebサービスにおけるAWSとその周辺
Mikawa Kouta
Moodle Developing Environment (J)
Moodle Developing Environment (J)
Takeshi Matsuzaki
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
Naoya Shiraishi
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
Shuji Watanabe
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
Hiroshi Maekawa
Spath for enterprise
Spath for enterprise
Koichiro Sumi
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
Yasui Tsutomu
業務システムで使うSpring Dynamic Modules
業務システムで使うSpring Dynamic Modules
Hiroki Kondo
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
Shinogi meetup online_20200729
Shinogi meetup online_20200729
Naotaka Shinogi
ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!
クラスメソッド株式会社
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
ru pic
スタートアップこそ巨人の肩に乗りまくれ! 〜Craful開発とMackerel〜
スタートアップこそ巨人の肩に乗りまくれ! 〜Craful開発とMackerel〜
Hiroshi Maekawa
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた
Kumano Ryo
Ähnlich wie Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
(20)
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
スケジュール遅延が当たり前な状況を少し良くしたいチームがその未来のためにScrumに”再”挑戦した話
スケジュール遅延が当たり前な状況を少し良くしたいチームがその未来のためにScrumに”再”挑戦した話
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
駅すぱあとWebサービスにおけるAWSとその周辺
駅すぱあとWebサービスにおけるAWSとその周辺
Moodle Developing Environment (J)
Moodle Developing Environment (J)
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
Spath for enterprise
Spath for enterprise
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
業務システムで使うSpring Dynamic Modules
業務システムで使うSpring Dynamic Modules
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
Shinogi meetup online_20200729
Shinogi meetup online_20200729
ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
スタートアップこそ巨人の肩に乗りまくれ! 〜Craful開発とMackerel〜
スタートアップこそ巨人の肩に乗りまくれ! 〜Craful開発とMackerel〜
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
1.
Spring Boot + Doma + AngularJS で作るERP ∼ JavaQneバージョン
∼ JavaQne 2015 Fukuoka 2015/01/24
2.
自己紹介 • 名前: 松崎
学 • Twitter: matsumana • blog: http://matsumana.info • 所属: 株式会社キャム http://cam-net.co.jp/ • 職業: ソフトウェアエンジニア (プログラマ、ITインフラエンジニア) • ITインフラ勉強会@福岡、MySQL Casual Fukuoka 主催
3.
JJUG CCC 2014
Fall で発表してきました! その時のスライドは これです http://goo.gl/CGWzRG
4.
今日お話する事 • サービスの特徴と、それを支える技術の概要 ・サービスの歴史 インフラ編 ・サービスの歴史
フレームワーク編 ・現在のアプリの開発環境 • Spring Boot, Doma, AngularJSを選んだ理由と 実際に使ってみた感想
5.
まず始めに
6.
ERPとは何か? 企業全体を経営資源の有効活用の観点から 統合的に管理し、経営の効率化を図るための 手法・概念のこと。 ERPが一般的に扱うものは企業における 製造・物流・販売・調達・人事・財務会計である。 ERPパッケージはこれらの基幹業務に関する 業務活動の情報管理を支援する。 Wikipediaより http://ja.wikipedia.org/wiki/企業資源計画
7.
基幹システムとは何か? 企業の情報システムのうち、業務内容と直接に関わる販売や 在庫管理、財務などを扱うもの。 あるいは、単に、業務やサービスの中核となる重要なシステム。 IT用語辞典 e-Wordsより http://e-words.jp/w/E59FBAE5B9B9E7B3BBE382B7E382B9E38386E383A0.html
8.
例えばERPでカバーする サブシステムには 次のようなものがあります
9.
• 受発注 • 購買債務 •
販売債権 • 製造 • 在庫 • 原価 • 財務会計 • 管理会計
10.
• 人事 • 給与 •
勤怠 • などなど
11.
• サービス(SaaS)として提供 マルチテナントなアプリ 顧客のオンプレミス環境ではなく、 弊社が構築・運用しているインフラ環境(AWS) でアプリを稼働させている • インフラ費用は全て弊社負担 インフラ費用増
= 利益減 少ないリソースでリクエストを捌く事が非常に重要 • OSやブラウザのバージョンアップ対応は無償 サービスの特徴
12.
サービスの歴史 インフラ編 • 2007∼ 国内データセンター •
2013∼ AWS
13.
インフラの 全体概要図
14.
http://goo.gl/cTexvM
15.
• サーバやミドルウェアは必ず障害が発生する前提で 考えたインフラ構成とアーキテクチャ • 一部に障害が発生してもサービスが止まらないように 各レイヤーは冗長構成にする •
サービスが止まるような障害の場合でも 出来るだけ早く復旧出来るようにする インフラ構成のポイント
16.
使用しているソフトウェア • Webサーバ: Apache
2.2 • APサーバ: Seasar2 → Tomcat 6 Java EE 6 → GlassFish 3.1.2.2 Spring Boot → Tomcat 8 • DBサーバ: PostgreSQL 9.3 • 監視: Zabbix 2.0 ・EC2インスタンスのリソース監視、可視化、 アラート通知 ・Java GatewayでJVMを監視、可視化、アラート通知
17.
Zabbix Java Gateway を使ってJMX経由で ヒープを可視化したら こんな感じ
18.
Jenkinsをどんな感じで 使っているかについては 別の資料があるので 抜粋してご紹介します http://www.slideshare.net/itokami1123/jenkins-java-spring20140609
19.
GitHUB Jenkins ソースのバージョン管理はGitを使用してます。 GitHub上のリポジトリにソースを集約してます。 PUSH ( ( ( プルリク・プルリク/
20.
GitHUB Jenkins GitHubからを5分毎にポーリングして マージしたソースをJenkinsに取得しています。 PULL ( ( ( Git plugin!/ *
/5 * * * *
21.
GitHUB Jenkins Jenkinsの状態(ビルド開始など)をHipChatで通知します。 HipChatは他にもGitHubの状態などにも使ってます。 通知 ( ( ( Jenkins
HipChat Plugin / コンパイルはじまった! /
22.
GitHUB Jenkins ビルドジョブを実行します。緊急でビルドだけしたい時も考え てテストジョブは分けてます。 ( ( ( ビルドなう!
/ maven mvn install -DskipTests=true ビルド ジョブ JSHintやCheckstyleで品質管理
23.
GitHUB Jenkins ビルドジョブ終了をキッカケにテストジョブを実行∼。 テストジョブ終了をキッカケにデプロイテストを実行∼。 ( ( ( ビルド ジョブ テスト ジョブ 上流から下流ジョブ
/ デプロ イテスト 状況を結果通知 /ちゃんと動いてる!
24.
GitHUB Jenkins ステージング環境やプロダクト環境に配備するJOBは手動で 実行しています。(課題の切りのよいタイミングで行う為) ( ( ( ステー ジング ジョブ ステージング環境 結合試験!
/ 課題管理はJIRA使ってます。 手動で起動
25.
ログ収集はFluentd
26.
• AWS (EC2,
S3, Route53, SES, RDS, VPC) • GitHub • レスポンスタイム可視化: New Relic • ログ分析: Google BigQuery • 通知: HipChat 使用しているサービス
27.
次はアプリのお話
28.
サービスの歴史 フレームワーク編 • 2007∼ Seasar2
(Teeda + S2Dao) ※現在も稼働中 • 2012∼ Java EE 6 (JSF + JPA) ※現在も稼働中 • 2014∼ Spring Boot + Doma + AngularJS
29.
アーキテクチャを 選定する上で重要なポイント • ERPはミッションクリティカルかつ、ライフサイクルが長 い (世間では10年間とか使われる事もある) 弊社では同じアプリを10年使い続けるのではなく 定期的に作り直す事にしています
(いわゆる式年遷宮) 10年前の製品に現在どのくらい魅力があると思いますか? • 画面の操作性、入力効率、サクサク感を重視 • インフラのコストを抑える (少ないサーバリソースで多くのリクエストを捌く)
30.
サービスを長い間 開発・運用してると 色んな問題が 出てくるものです
31.
• IEの互換モードでしか動かないアプリ (2007年のサービスローンチ時点ではIEは7だったし Chromeも存在しなかった) • 時代遅れ感が出てきたUI (最近はリッチなWebサイトやスマホアプリが 普及して顧客の目も肥えてきている)
32.
• APサーバやサードパーティコンポーネント (PrimeFaces)のバグに遭遇 OSSなので自分で直すという選択肢はあるが、 それに割くリソースを確保できなかった • APサーバのリソース消費が高い •
アプリのもっさり感
33.
2014年1月から 新アーキテクチャでの アプリ開発を開始
34.
いくつかのアーキテクチャ の候補を考え 試作アプリを作り 検討を重ねて採用したのが
35.
Spring Boot + Doma + AngularJS
36.
なぜSpring Boot? • 組み込みAPサーバでお手軽 •
Tomcat/Jettyで必要十分だった。リソース消費も少ない • Spring Bootなら各種設定や依存ライブラリの指定も楽 • Springもバージョンアップ時の互換性を重視しているので 長く使える事が期待できる (Groovy, Grailsみたいにならなければ・・・)
37.
なぜDoma? • JPAに馴染めなかった キャッシュ、N+1問題、エンティティ管理状態 (JPAで扱いやすいテーブル設計になってない気もした) • SQLは自分で書く、SQLは外部ファイルに書く というS2Daoのスタイルに慣れているし、 Domaはより便利になっている •
依存ライブラリが無いので導入しやすい
38.
なぜAngularJS? • AngularJSについては、この後@itoKami1123さんに 話してもらうので割愛
39.
現在のアプリの 開発環境 • 開発はLinux上でやってます • vagrant
upしてリモートデスクトップでログイン
40.
• Windowsで開発し、本番がLinuxだと それに起因するバグを出してしまう事がある ・文字コード問題 ・改行コード問題 ・パス区切り文字問題 ・レポートのレイアウト崩れ問題(JasperReports) など
41.
• 必要な開発ツールのごった煮感が半端なくて、 セットアップが大変なので チームのメンバーにVirtualBoxとVagrantを インストールしてもらい、 boxファイルとChefのcookbookを配布 ※ホストOSとゲストOSでクリップボードの共有が おかしいので、ちょっと不便です・・・
42.
プロビジョニングしている ソフトウェア (1) • Java8 •
Maven • Node.js • PostgreSQL 9.3 • Fluentd (td-agent)
43.
プロビジョニングしている ソフトウェア (2) • Chromium •
Mozc • LibreOffice • oh-my-zsh • xrdp
44.
Spring Boot, Domaを 使ってみた感想
45.
Spring Boot /
Spring • Seasar2とJava EE 6を使ってきたので、 Springのコンテナ機能(DI, トランザクション, AOPなど) は理解しやすかった • テストライブラリが充実していて良い感じ • アプリの起動が早く快適に開発できる • サーバのリソース消費が少ない
46.
Doma • SQLでゴリゴリ書きたい派には、とてもオススメ • 依存ライブラリが無いのも、とてもいい感じ •
便利機能がいっぱい ・Java8対応 ・コンパイル時チェック ・SQLファイル内の変数チェック ・SQLファイルの存在チェック ・ページング (Limit, Offset, 総レコード件数) 他にも沢山あります。詳しくはドキュメントを http://doma.readthedocs.org/ja/latest/
47.
モジュール構成 (概要) • マルチモジュール構成 •
Javaのビルドルーツ: Maven • フロントエンドのタスクツール: Grunt maven-grunt-pluginを使ってMavenから起動される jshint, karma(Jasmine), concat, cssmin, uglifyを実行する
48.
Spring BootやDomaに 関するブログを いくつか書いてます
49.
• Spring BootでO/Rマッパーの比較 •
Spring Bootのコネクションプーリングの比較 • Spring Bootのアプリケーションサーバの比較 • Spring BootでISUCON4予選のJava実装を作った • Spring Bootで現在捌いているリクエスト数を 取得する • Spring + Domaで実装したアプリのユニットテスト http://matsumana.info/blog/categories/spring/
50.
次のような場合は Java EE(JSF)を 選択した方が 良いのかも (個人的な意見です)
51.
• 閉じた環境で特定のユーザのみが使用するシステム • 保守サポートが必要な場合 •
フロントフレームワークに絡んだ改修予算が 確保できない場合
52.
ここまでのまとめ • 標準技術だから。流行っているから。ではなく きちんと検討・検証して自分達にあうものを 選びましょう
53.
次は @itoKami1123さんによる AngularJSの話です スライドはこちら http://www.slideshare.net/itokami1123/20140124-angular-js
Jetzt herunterladen