Início
Conheça mais
Enviar pesquisa
Carregar
Entrar
Cadastre-se
Anúncio
Check these out next
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
智治 長沢
今後のWeb開発の未来を考えてangularJSにしました
Mitsuru Ogawa
noteをAngularJSで構築した話
Kon Yuichi
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
tomonari takahashi
ガチリアルな修羅チーム開発
Atsushi Kojima
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
AngularJS入門の巻
Toshio Ehara
Spring Bootをはじめる時にやるべき10のこと
心 谷本
1
de
53
Top clipped slide
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
23 de Jan de 2015
•
0 gostou
8 gostaram
×
Seja o primeiro a gostar disto
mostrar mais
•
4,303 visualizações
visualizações
×
Vistos totais
0
No Slideshare
0
De incorporações
0
Número de incorporações
0
Baixar agora
Baixar para ler offline
Denunciar
Tecnologia
JavaQne(じゃばきゅん) 2015 Fukuokaで発表したスライドです https://atnd.org/events/61398
学 松崎
Seguir
LINE Fukuoka株式会社 - Software Engineer em LINE Fukuoka株式会社
Anúncio
Anúncio
Anúncio
Recomendados
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
学 松崎
3.7K visualizações
•
42 slides
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Toshiaki Maki
37.2K visualizações
•
199 slides
AngularJSで業務システムUI部品化
Toshio Ehara
4.1K visualizações
•
27 slides
最近のSpringFramework2013 #jjug #jsug #SpringFramework
Toshiaki Maki
4K visualizações
•
29 slides
Spring starterによるSpring Boot Starter
Ryosuke Uchitate
3.1K visualizações
•
49 slides
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Toshiaki Maki
4.5K visualizações
•
13 slides
Mais conteúdo relacionado
Apresentações para você
(20)
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
智治 長沢
•
5K visualizações
今後のWeb開発の未来を考えてangularJSにしました
Mitsuru Ogawa
•
25.8K visualizações
noteをAngularJSで構築した話
Kon Yuichi
•
27.4K visualizações
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
tomonari takahashi
•
1.2K visualizações
ガチリアルな修羅チーム開発
Atsushi Kojima
•
2.6K visualizações
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
•
7.9K visualizações
AngularJS入門の巻
Toshio Ehara
•
12.8K visualizações
Spring Bootをはじめる時にやるべき10のこと
心 谷本
•
41.7K visualizações
我が家のフロントエンド開発事情
Naoki Yamada
•
3.9K visualizações
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
•
10.2K visualizações
これから始めるSpringのwebアプリケーション
土岐 孝平
•
19K visualizações
Go (5) JAZUG 関西とゆかいな仲間たち的な
Keiji Kamebuchi
•
1.6K visualizações
How to develop a huge Single Page Application
Naoki Yamada
•
3.2K visualizações
A/BテストをAzure×Googleアナリティクスで試してみました。
典子 松本
•
5K visualizações
Angular js開発事例
Shun Takeyama
•
3.7K visualizações
中の下のエンジニアを脱出するための仕事術
Noriaki Kadota
•
46.8K visualizações
これからフロントエンジニアを目指すあなたへ
Mitsuru Ogawa
•
7.9K visualizações
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
•
64.7K visualizações
Spa のための web サーバ構築ノウハウ
Kazuhiro Kotsutsumi
•
12K visualizações
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
•
39.8K visualizações
Similar a Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
(20)
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
学 松崎
•
18.9K visualizações
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
Kumano Ryo
•
18.8K visualizações
アジャイルソフトウェア開発の道具箱
Koichi ITO
•
5.8K visualizações
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
Mitsuru Ogawa
•
17.7K visualizações
スケジュール遅延が当たり前な状況を少し良くしたいチームがその未来のためにScrumに”再”挑戦した話
Rakuten Commerce Tech (Rakuten Group, Inc.)
•
729 visualizações
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
Takahiro Okumura
•
11.6K visualizações
駅すぱあとWebサービスにおけるAWSとその周辺
Mikawa Kouta
•
1.7K visualizações
Moodle Developing Environment (J)
Takeshi Matsuzaki
•
2.7K visualizações
150704 イノベーションエッグ第4回 umekita_force活動報告
Naoya Shiraishi
•
2.1K visualizações
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
Shuji Watanabe
•
6K visualizações
ドメイン『駆動』『開発』
Hiroshi Maekawa
•
10K visualizações
Spath for enterprise
Koichiro Sumi
•
743 visualizações
Swagger jjug ccc 2018 spring
kounan13
•
2.6K visualizações
ジョイ・インク 役職も部署もない全員主役のマネジメント
Yasui Tsutomu
•
2.6K visualizações
業務システムで使うSpring Dynamic Modules
Hiroki Kondo
•
2.2K visualizações
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
•
3.7K visualizações
Shinogi meetup online_20200729
Naotaka Shinogi
•
266 visualizações
ChefとOpsWorksで EC2 楽チンクッキング!
クラスメソッド株式会社
•
11.3K visualizações
皆さん!ふくてんが来ましたよ!!
ru pic
•
297 visualizações
スタートアップこそ巨人の肩に乗りまくれ! 〜Craful開発とMackerel〜
Hiroshi Maekawa
•
3.9K visualizações
Anúncio
Mais de 学 松崎
(10)
Fukuokaphp vol12 talk_20140225
学 松崎
•
1.2K visualizações
クラウド・SaaS型 統合基幹業務システム 「CAM MACS」を支える PostgreSQL ~雲に乗ったゾウ~
学 松崎
•
2.6K visualizações
OSC福岡2012 LT 20121208
学 松崎
•
2.6K visualizações
福岡Ruby会議01 20121201 LT
学 松崎
•
4.7K visualizações
MySQL Casual Talks in Fukuoka vol.2
学 松崎
•
9.6K visualizações
第4回 インフラ勉強会@福岡 Fluentdハンズオン
学 松崎
•
4.8K visualizações
fukinfra Vol3 LT 20120629
学 松崎
•
3K visualizações
hktstudy #01 LT 20120616
学 松崎
•
3.1K visualizações
Webサーバ勉強会 LT資料
学 松崎
•
4.7K visualizações
FukPUG vol2 Tornado
学 松崎
•
2.3K visualizações
Último
(20)
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
3 visualizações
20230602_enebular_meetup_kitazaki_v1.pdf
Ayachika Kitazaki
•
25 visualizações
SoftwareControl.pdf
ssusercd9928
•
7 visualizações
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
7 visualizações
DrupalをDockerで起動してみる
iPride Co., Ltd.
•
21 visualizações
Üslup ve tercüme.pdf
1Hmmtks
•
2 visualizações
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
220 visualizações
Forguncy8 製品概要 202305.pptx
フォーガンシー
•
55 visualizações
ペンタエリスリトール市場.pdf
HinaMiyazu
•
3 visualizações
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
Deep Learning JP
•
41 visualizações
Windows ChatGPT Bing AI.pptx
Atomu Hidaka
•
7 visualizações
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
224 visualizações
オレオレになりがちなテスト計画を見直した話
terahide
•
43 visualizações
20230601_Visual_IoTLT_vol14_kitazaki_v1.pdf
Ayachika Kitazaki
•
67 visualizações
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
450 visualizações
【DL輪読会】Egocentric Video Task Translation (CVPR 2023 Highlight)
Deep Learning JP
•
63 visualizações
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
オラクルエンジニア通信
•
31 visualizações
Voyager: An Open-Ended Embodied Agent with Large Language Models
harmonylab
•
0 visão
Wandb LLM Webinar May 30 2023 (配布用).pdf
Yuya Yamamoto
•
3 visualizações
Omnis
DaisukeFujita10
•
21 visualizações
Anúncio
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJS で作るERP ∼ JavaQneバージョン
∼ JavaQne 2015 Fukuoka 2015/01/24
自己紹介 • 名前: 松崎
学 • Twitter: matsumana • blog: http://matsumana.info • 所属: 株式会社キャム http://cam-net.co.jp/ • 職業: ソフトウェアエンジニア (プログラマ、ITインフラエンジニア) • ITインフラ勉強会@福岡、MySQL Casual Fukuoka 主催
JJUG CCC 2014
Fall で発表してきました! その時のスライドは これです http://goo.gl/CGWzRG
今日お話する事 • サービスの特徴と、それを支える技術の概要 ・サービスの歴史 インフラ編 ・サービスの歴史
フレームワーク編 ・現在のアプリの開発環境 • Spring Boot, Doma, AngularJSを選んだ理由と 実際に使ってみた感想
まず始めに
ERPとは何か? 企業全体を経営資源の有効活用の観点から 統合的に管理し、経営の効率化を図るための 手法・概念のこと。 ERPが一般的に扱うものは企業における 製造・物流・販売・調達・人事・財務会計である。 ERPパッケージはこれらの基幹業務に関する 業務活動の情報管理を支援する。 Wikipediaより http://ja.wikipedia.org/wiki/企業資源計画
基幹システムとは何か? 企業の情報システムのうち、業務内容と直接に関わる販売や 在庫管理、財務などを扱うもの。 あるいは、単に、業務やサービスの中核となる重要なシステム。 IT用語辞典 e-Wordsより http://e-words.jp/w/E59FBAE5B9B9E7B3BBE382B7E382B9E38386E383A0.html
例えばERPでカバーする サブシステムには 次のようなものがあります
• 受発注 • 購買債務 •
販売債権 • 製造 • 在庫 • 原価 • 財務会計 • 管理会計
• 人事 • 給与 •
勤怠 • などなど
• サービス(SaaS)として提供 マルチテナントなアプリ 顧客のオンプレミス環境ではなく、 弊社が構築・運用しているインフラ環境(AWS) でアプリを稼働させている • インフラ費用は全て弊社負担 インフラ費用増
= 利益減 少ないリソースでリクエストを捌く事が非常に重要 • OSやブラウザのバージョンアップ対応は無償 サービスの特徴
サービスの歴史 インフラ編 • 2007∼ 国内データセンター •
2013∼ AWS
インフラの 全体概要図
http://goo.gl/cTexvM
• サーバやミドルウェアは必ず障害が発生する前提で 考えたインフラ構成とアーキテクチャ • 一部に障害が発生してもサービスが止まらないように 各レイヤーは冗長構成にする •
サービスが止まるような障害の場合でも 出来るだけ早く復旧出来るようにする インフラ構成のポイント
使用しているソフトウェア • 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を監視、可視化、アラート通知
Zabbix Java Gateway を使ってJMX経由で ヒープを可視化したら こんな感じ
Jenkinsをどんな感じで 使っているかについては 別の資料があるので 抜粋してご紹介します http://www.slideshare.net/itokami1123/jenkins-java-spring20140609
GitHUB Jenkins ソースのバージョン管理はGitを使用してます。 GitHub上のリポジトリにソースを集約してます。 PUSH ( ( ( プルリク・プルリク/
GitHUB Jenkins GitHubからを5分毎にポーリングして マージしたソースをJenkinsに取得しています。 PULL ( ( ( Git plugin!/ *
/5 * * * *
GitHUB Jenkins Jenkinsの状態(ビルド開始など)をHipChatで通知します。 HipChatは他にもGitHubの状態などにも使ってます。 通知 ( ( ( Jenkins
HipChat Plugin / コンパイルはじまった! /
GitHUB Jenkins ビルドジョブを実行します。緊急でビルドだけしたい時も考え てテストジョブは分けてます。 ( ( ( ビルドなう!
/ maven mvn install -DskipTests=true ビルド ジョブ JSHintやCheckstyleで品質管理
GitHUB Jenkins ビルドジョブ終了をキッカケにテストジョブを実行∼。 テストジョブ終了をキッカケにデプロイテストを実行∼。 ( ( ( ビルド ジョブ テスト ジョブ 上流から下流ジョブ
/ デプロ イテスト 状況を結果通知 /ちゃんと動いてる!
GitHUB Jenkins ステージング環境やプロダクト環境に配備するJOBは手動で 実行しています。(課題の切りのよいタイミングで行う為) ( ( ( ステー ジング ジョブ ステージング環境 結合試験!
/ 課題管理はJIRA使ってます。 手動で起動
ログ収集はFluentd
• AWS (EC2,
S3, Route53, SES, RDS, VPC) • GitHub • レスポンスタイム可視化: New Relic • ログ分析: Google BigQuery • 通知: HipChat 使用しているサービス
次はアプリのお話
サービスの歴史 フレームワーク編 • 2007∼ Seasar2
(Teeda + S2Dao) ※現在も稼働中 • 2012∼ Java EE 6 (JSF + JPA) ※現在も稼働中 • 2014∼ Spring Boot + Doma + AngularJS
アーキテクチャを 選定する上で重要なポイント • ERPはミッションクリティカルかつ、ライフサイクルが長 い (世間では10年間とか使われる事もある) 弊社では同じアプリを10年使い続けるのではなく 定期的に作り直す事にしています
(いわゆる式年遷宮) 10年前の製品に現在どのくらい魅力があると思いますか? • 画面の操作性、入力効率、サクサク感を重視 • インフラのコストを抑える (少ないサーバリソースで多くのリクエストを捌く)
サービスを長い間 開発・運用してると 色んな問題が 出てくるものです
• IEの互換モードでしか動かないアプリ (2007年のサービスローンチ時点ではIEは7だったし Chromeも存在しなかった) • 時代遅れ感が出てきたUI (最近はリッチなWebサイトやスマホアプリが 普及して顧客の目も肥えてきている)
• APサーバやサードパーティコンポーネント (PrimeFaces)のバグに遭遇 OSSなので自分で直すという選択肢はあるが、 それに割くリソースを確保できなかった • APサーバのリソース消費が高い •
アプリのもっさり感
2014年1月から 新アーキテクチャでの アプリ開発を開始
いくつかのアーキテクチャ の候補を考え 試作アプリを作り 検討を重ねて採用したのが
Spring Boot + Doma + AngularJS
なぜSpring Boot? • 組み込みAPサーバでお手軽 •
Tomcat/Jettyで必要十分だった。リソース消費も少ない • Spring Bootなら各種設定や依存ライブラリの指定も楽 • Springもバージョンアップ時の互換性を重視しているので 長く使える事が期待できる (Groovy, Grailsみたいにならなければ・・・)
なぜDoma? • JPAに馴染めなかった キャッシュ、N+1問題、エンティティ管理状態 (JPAで扱いやすいテーブル設計になってない気もした) • SQLは自分で書く、SQLは外部ファイルに書く というS2Daoのスタイルに慣れているし、 Domaはより便利になっている •
依存ライブラリが無いので導入しやすい
なぜAngularJS? • AngularJSについては、この後@itoKami1123さんに 話してもらうので割愛
現在のアプリの 開発環境 • 開発はLinux上でやってます • vagrant
upしてリモートデスクトップでログイン
• Windowsで開発し、本番がLinuxだと それに起因するバグを出してしまう事がある ・文字コード問題 ・改行コード問題 ・パス区切り文字問題 ・レポートのレイアウト崩れ問題(JasperReports) など
• 必要な開発ツールのごった煮感が半端なくて、 セットアップが大変なので チームのメンバーにVirtualBoxとVagrantを インストールしてもらい、 boxファイルとChefのcookbookを配布 ※ホストOSとゲストOSでクリップボードの共有が おかしいので、ちょっと不便です・・・
プロビジョニングしている ソフトウェア (1) • Java8 •
Maven • Node.js • PostgreSQL 9.3 • Fluentd (td-agent)
プロビジョニングしている ソフトウェア (2) • Chromium •
Mozc • LibreOffice • oh-my-zsh • xrdp
Spring Boot, Domaを 使ってみた感想
Spring Boot /
Spring • Seasar2とJava EE 6を使ってきたので、 Springのコンテナ機能(DI, トランザクション, AOPなど) は理解しやすかった • テストライブラリが充実していて良い感じ • アプリの起動が早く快適に開発できる • サーバのリソース消費が少ない
Doma • SQLでゴリゴリ書きたい派には、とてもオススメ • 依存ライブラリが無いのも、とてもいい感じ •
便利機能がいっぱい ・Java8対応 ・コンパイル時チェック ・SQLファイル内の変数チェック ・SQLファイルの存在チェック ・ページング (Limit, Offset, 総レコード件数) 他にも沢山あります。詳しくはドキュメントを http://doma.readthedocs.org/ja/latest/
モジュール構成 (概要) • マルチモジュール構成 •
Javaのビルドルーツ: Maven • フロントエンドのタスクツール: Grunt maven-grunt-pluginを使ってMavenから起動される jshint, karma(Jasmine), concat, cssmin, uglifyを実行する
Spring BootやDomaに 関するブログを いくつか書いてます
• Spring BootでO/Rマッパーの比較 •
Spring Bootのコネクションプーリングの比較 • Spring Bootのアプリケーションサーバの比較 • Spring BootでISUCON4予選のJava実装を作った • Spring Bootで現在捌いているリクエスト数を 取得する • Spring + Domaで実装したアプリのユニットテスト http://matsumana.info/blog/categories/spring/
次のような場合は Java EE(JSF)を 選択した方が 良いのかも (個人的な意見です)
• 閉じた環境で特定のユーザのみが使用するシステム • 保守サポートが必要な場合 •
フロントフレームワークに絡んだ改修予算が 確保できない場合
ここまでのまとめ • 標準技術だから。流行っているから。ではなく きちんと検討・検証して自分達にあうものを 選びましょう
次は @itoKami1123さんによる AngularJSの話です スライドはこちら http://www.slideshare.net/itokami1123/20140124-angular-js
Anúncio