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
複数アプリケーションを育てていくための共通化戦略
Search
irof
June 07, 2025
Programming
9
4.9k
複数アプリケーションを育てていくための共通化戦略
JJUG CCC 2025 Spring
https://jjug.doorkeeper.jp/events/183483
2025-06-07T16:30
irof
June 07, 2025
Tweet
Share
More Decks by irof
See All by irof
関ジャバと言う場
irof
0
63
型で語るカタ
irof
2
1.3k
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
350
SpringBootにおけるオブザーバビリティのなにか
irof
1
1.1k
Javaアプリケーションモニタリングの基本
irof
7
2.7k
Webアプリケーションを作りましょう
irof
0
190
Javaの新しめの機能を知ったかぶれるようになる話 #kanjava
irof
3
6.5k
バッチを作らなきゃとなったときに考えること
irof
2
830
SpringBoot3.4の構造化ログ #kanjava
irof
3
1.5k
Other Decks in Programming
See All in Programming
AI Agents: How Do They Work and How to Build Them @ Shift 2025
slobodan
0
110
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
160
大規模アプリにおけるXcode Previews実用化までの道のり
ikesyo
0
350
AI時代のUIはどこへ行く?
yusukebe
20
9.6k
議事録の要点整理を自動化! サーバレス Bot 構築術
penpeen
3
770
Deep Dive into Kotlin Flow
jmatsu
1
400
AIと私たちの学習の変化を考える - Claude Codeの学習モードを例に
azukiazusa1
11
4.7k
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
110
メモリ不足との戦い〜大量データを扱うアプリでの実践例〜
kwzr
1
240
Reduxモダナイズ 〜コードのモダン化を通して、将来のライブラリ移行に備える〜
pvcresin
1
300
Swift Updates - Learn Languages 2025
koher
2
530
OWASP Kansai DAY 2025.09: OSINTにふれてみよう
deka_morita
0
120
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Optimizing for Happiness
mojombo
379
70k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
BBQ
matthewcrist
89
9.8k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Transcript
複数 育 共通Խ戦略 JJUG CCC 2025 Spring @irof
2 # 自己 紹介 - -大ࡕ - ## - 関西Java
ձ - 月 一 ## 仕事 - 個 人 事ۀ主 - 開発全般 支 ԉ
irof 正解 ڭ 初 心 者向 除 現場固有 言 難
投 ײ 現場固有 話 仕事 要 右側 3
irof 技術 安定指向 実践主ٛ 場所 見 極 実験 実験 実地検証
本番 検証 4
目次 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ 踏
考 5
共通Խ 話 6 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗
ӽ 踏 考
共通Խ 背景 複数 連携 一 多 存在 特 Java 使
領域 単一 珍 気 分 担当者 ձ社 別 一 ԣ断的 課題 7
共通Խ 問題 同 問題 別ʑ 取 組 重複 違 解
出 絶対解 個別最適Խ 解 違 付随 偶有的 問題 大 違 問題 起 時 対処 専門Խ 人 負ՙ 偏 8
ԣ道 言 葉 Խ 売 文句 自 由 技術 選
実際別 技術 採用 成立 ӕ 必要 技術 手 出 問題 ۙ年 程度技術統一 流 思 9
共通Խ ૂ 重複 削減 品質 安定Խ 人 材流動性 確保 ڍ
思 10
共通Խ 足 取 重 難 見 別 困 今 方
手 間 時間 成Ռ 明 示 合意 面倒 仕事 指 示 11 抵抗 n֊層 参考
共通Խ 話 共通Խ 取 組 機ձ 少 ʁ偏 気 高
尚 取 組 方 手 探 自 分 経験 言 語Խ 思 次第 12
機ձ 13 今回 3 出 打率3割
共通Խ 14 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ
踏 考
15
[知識共有] 知識 共有 ✅ 手 軽 ⚠認識 採用 不明 ⚠
共有 16
[雰囲気合 ] 共通Խ 取 組 具象Խ 同 作 本当 同
確認 今後 同 ✅共通Խ 低 柔軟性 高 ⚠判断 属 人 的 安定 危険 17
[基礎技術 統一] Java SpringBoot 使 技術 ἧ ✅[知識共有] 活用 期待
✅基礎外 意思決定 導入 迅速 行 ⚠ 使 方 異 独 自 進Խ ᴥᴪ 生 多 ֖ 開 別物 ײ 18
[軽量標準Խ] [基礎技術 統一] 明文Խ [知識共有] 行 程度 則 互 期待
✅技術 一定 水 準下 ⚠統制 効 仕組 形֚Խ ⚠ 標準Խ 検討 期待値 19
[ 共通Խ] 設定 処理 他 複製 持 込 ✅導入 低
✅[雰囲気合 ] 比 具象 扱 伝達精度 高 ⚠ 元 変更 追随 手 間 追随 ༙ 元 管理 遠因 ⚠ 後 変更 期待 20
派 生 Spring Initializr Maven archetype GitHub 初期構築 [ 共通Խ]
一形態 精度 上 作 更 新 Өڹ 使 直後 独 自 進Խ 始 注意点 引 継 21
[内部 ] 処理共通Խ 一形態 jar 共有 ✅変更 機械的 波及 ⚠
責任範囲 ᐆດ 混乱 生 22
派 生 参照 [ 共通Խ] 持 込 際 Git submodule
別 引 込 使 方法 Git 知識 必要 一度設定 終 日 常的 必要 知識 水 準 上 知 全員 要ٻ ʁ 正直 ק Java 素直 jar 共有 ʁ 23
[共通 ] 処理共通Խ 一形態 ӽ 使用 ✅ 制御 容қ ⚠処理
大 運用保守 必要 ⚠ 重 24
補 足 [内部 ] [共通 ] 処理 共通Խ 呼 出
呼 出 後 実 行 責任 側 否 大 違 拡張 選択肢 側 持 基本的 実装的 共通処理 [内部 ] ۀ務的 共通処理 [共通 ] 妥当 25 実装的 共通 ۀ務的 共通 分 使 技術 ۙ 考 方 転用 効 判断基準 結構違
内部 設定 拡張 Ճ 共通 使用 ✅ 強制 運用 必要
伝 ⚠Өڹ範囲 暗黙的 広 Խ 26 作 本 対象外
[ 標準Խ] ✅ ⚠ 27 書
[世ք 共通Խ] 外部 使 共通Խ 1 [知識共有] [基礎技術 統一] 採
用 言 ✅世ք 知 見 実績 活用 ⚠ 自 分 ײ 合 ʂ 解決 多 28
派 生 内部 公開 [世ք 共通Խ] 一形態 自 分 作
[内部 ] [内部 ] 公開 ✅ ⚠ 話 公開 方ʑ 29
30 再掲
前提技術要素 31
自 分 使 Nexus GitHub Packages AWS CodeArtifact 使 開発端末
CI環ڥ 言 Maven知識 要ٻ 水 準 上 Gradle使 Maven 知識 必要 jar lib OKʁ 手 軽 単純 機能 方 32
運用 必ਢ SNAPSHOT 実装次第 努力 再発明 素直 使 番号 複数
場合 SemVer 過剰 見 ׳習 場合 CalVer 合 思 単純 十 分 気 SemVer 1.152 SemVer 採用 …… 提供側 永ٱ 上 気分 使 分 使用側 使用 33
話 34 前回 落 🙃 違
共通Խ 35 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ
踏 考
一 36
同 二 目 作 37 [知識共有] [雰囲気合 ] [ 共通Խ]
独 自 進Խ🧟 38 ※ 期間 結構長 他 PiyoApp 増
省略
😵💫 39
😵💫😵💫 40
合 41 [基礎技術 統一] [軽量標準Խ]
同 目的 異 拡張 42
微妙 違 🤯 43
標準 仕組 強制 ʂ 44 [内部 ]
GOALʁ 45
BAD ENDʁ 46 邪魔ʂ 着 無理 …… 利関係者 増 動
BAD ENDʁ 現実 一直線 混在 悲؍ 向 合 取 組
47
付録 SpringBoot 共通Խ 48 抽象的 話 続 ṟٳ 的 具象
振 Skip可
SpringBoot 一押 SpringBoot 設定 ײ 調整 実 行 環ڥ 一層欲
ԣ断的 同 設定 必要 際 [ 共通Խ] 済 多 対象 多岐 渡 全部設定 ʁ ٙ 心 暗َ 49 付録
50 付録
使用 共通Խ SpringBoot 入 自 動的 多 共通Խ ༙ [
共通Խ] 見 都合 変 Өڹ 対Ԡ 微妙 思 数 増 増 顕著 一式 数 starter 作 [基礎技術 統一] 共通Խ 51 付録
52 spring-boot-starter-xxx spring-boot-starter-xxx micrometer-registory-xxx hoge-app fuga-app 付録
53 spring-boot-starter-xxx spring-boot-starter-xxx micrometer-registory-xxx hoge-app fuga-app my-starter-xxx 付録
54 spring-boot-starter-xxx spring-boot-starter-xxx micrometer-registory-xxx hoge-app fuga-app my-starter-xxx Maven Gradle 使
統一 前提 上 依存解決 仕組 修得 上 行 雰囲気 動 依存 入 spring-boot-dependencies ՞ 制御 書 読 ײ 知 期待 難 領域 思 使用 共通Խ 付録
共通Խ 実 行 環ڥ 環ڥ変数 設定 複数 場合 SPRING_APPRICATION_JSON 設定
楽 実 行 効 spring.con fi g.import 共通設定 取 込 要 EnvironmentPostProcessor 追Ճ 時 突 込 55 付録
脱線:application.yml application.yml properties SpringBoot 読 設定 複数配置 ك 見 読
一 特定条件 上書 @SpringBootTest properties @DynamicProperySource application- test.properties 書 pro fi le 有効 他 方法 56 付録
周 特 連携周 運用 統一 個別 設定 設定 自 体
手 軽 手 入 時 全 一律同 多 優先的 共通Խ 57 付録
actuator /actuator/info 追Ճ git Spring 書 使 出力 実 行
環ڥ 確実 情報 確認 入 Jar 展開 確認 ك /actuator/env 環ڥ 見 捗 actuator周 一律同 設定 利点 多 Կ 安定 共通Խ 58 付録
入 口 出 口 側 変更 最 小 上 入
準備 分散 運 用始 必要 時 ԣ断的 持 最初 入 気 込 明 示 方 良 一時྇ 59 付録
例 SpringAOP 特Խ 拡張 用意 時 渋ʑ使 ײ SpringMVC 場合
HandlerInterceptor ControllerAdvice ClientHttpRequestInterceptor 60 付録
共通部分 ComponentScan 共通Խ Bean定ٛ 扱 場合 ComponentScan 自 動登録 小
回 効 避 側 見 以外 ComponentScan 事故 制約 原因 AutoCon fi guration 使 難 Import 明 示 的 引 込 61 付録
補 足 :SpringBoot 拡張 二択 Bean定ٛ Bean定ٛ 際 SpringBoot 意図
拡張点 注意 Spring 拡張点 使用 SpringBoot 殺 SpringBoot 拡張点 不 足 仕方 仕方 時 注意 必要 62 付録
共通Խ 段差 乗 ӽ 63 共通Խ 話 共通Խ 共通Խ 共通Խ
段差 乗 ӽ 踏 考
段差 乗 ӽ 共通Խ 取 組 伴 苦労 ײ 段差
呼 落 穴 迷 段差 乗 ӽ 解決 関 係 一対一 64
段差 生 原因 押 付 嫌 目 前 問題 苦
労 違 Ձ値基準 押 付 嫌 形 守 標準Խ 出発点 出発点 前提 辛 65
段差 空転 実 違 予期 波及 雑用係Խ Խ 聞 使
66
[空転 ] [内部 ] [内部 ] [共通 ] 作成 当然
始 機能使 ʁ ٙ 心 暗َ 特 組 合 ؤ張 対Ԡ ୭ 使 …… 利用者 見 OSS 67
共通Խ 取 組 重要性 高 標準Խ [軽量標準Խ] [ 標準Խ] 主
成Ռ 物 状گ 後回 経験 人 多 言 読 時 困 時 割 続 大事 68
[実 違 ] 同 思 ֖ 開 違 言 [雰囲気合
] [軽量標準Խ] [ 共通Խ] 起 覚悟 大 見 込 外 [基礎技術 統一] 似 ײ 同 思 使 ك ك 当然 悪意 69
[予期 波及 ] [内部 ] Өڹ範囲 広 全体 Өڹ 規模
使 方 目 届 難 気 問題 起 問題 起 変更 怖 悪循環 70
[雑用係Խ Խ] [内部 ] 道具箱 入 一括適用 選択肢 出 個別対処
確実 早 対Ԡ 当然 話 領域 対Ԡ 必要性 技術力 上 繰 返 技術格差 広 対Ԡ 人 固定 Խ 話 行 着 雑用係 71
[聞 ] 共通Խ 取 組 受 取 側 色 ʑ
言 分 機ձ 言 Թ度ײ 合 仕方 ఘ 作 側 言 思 使 側 言 困 72
[使 ] 良 思 作 ୭ 使 他 使 思
自 分 使 使 残 要 使 現実 73
乗 ӽ 地道 確認 後方互換 取 組 声 届 関係性
適用度合 色 分 合 一本 74
[地道 確認] 機械的 確認 仕組 入 活用 人 力 確認
精度 低 扱 多少 漏 צ違 ڐ容 仕組 ײ 75
[後方互換 取 組 ] 後方互換 新 今 通 使 育
[内部 ] [内部 ] 共通Խ 期待 削減 更新 Өڹ 低 受 後方互換性 高 保 必要 互換性 維持 容қ 76
後方互換 損 場合 互換性 損 新 対Ԡ 生 [雑用係Խ Խ]
使 独 自 拡張 行 [実 違 ] [使 ] 使用側 当然 選択 言 参考 表出 事象 ୟ ௵ https://irof.hateblo.jp/entry/2025/01/24/121938 77
後方互換 取 組 参照 内部 使 JDK 不特定多数 使 比
後方互換 必要 労力 少 実際 必要 違 互換性 取 組 参考 78
段֊的移 行 新 IF 作成 順次乗 換 促 IF 維持
内部 ڍ動 [ ] 切 替 排他関係 合 79
ՙ下 [空転 ] 要因 適切 捨 削除 @Deprecated 警告 段֊
置 面倒 ײ ڑ離ײ ۙ 場合 除 一 足 飛 行 ק ؆単 練習 難 参考 緊ٸ時 規律 https://irof.hateblo.jp/entry/2025/02/11/110918 80
依存 抑 技術 積 慎重 共通 特 使 後方互換 Өڹ
受 内部 積 派 生 安қ 選定 領域 使 使 使 使 以上 制御 81
[声 届 関係性] 共通Խ 押 付 反発 抱 構造 意識的
受 取 良 内部 建 付 幻想 相 手 ձ話 人 間 結構変 ײ 互 知 勝 手 ԇ 積 重 構造 前提 考 82
[適用度合 色 分 ] 共通 使 全部適切 判断 済 言
度合 定ٛ RFC RequirementLevel RFC2119 参考 83
適用度合 84 RFC 表記例 Թ度ײ MUST REQUIRED SHALL 必ਢ 必
難 場合 相談 欲 SHOULD RECOMMENDED 推奨 基本的 事後 ڭ MAY OPTIONAL 参考 従
適用度合 使用例 開発標準 規約 必ਢ Java SpringBoot 使 推奨 SpringBoot
設定 行 Bean定ٛ 設定 [内部 ] 行 避 参考 例 実際 使 程度 85
[ ] 朝 Open Feature 86
用途 抽象 実現 分離 安定 速度 獲得 87
変更 反ө 制御 88 制御 制御 XXX環ڥ向 中 制御 実
行 時 起動時 変更 必要 SpringBoot 処理時 手 動 運用 一環 分 自 動 ON/OFF切 替 的 権限制御 一Ԡ 広ٛ 守備範囲
互換 [内部 ] [内部 ] 活用 下 共通Խ 機能 変更
場合 変更 見 送 上 機能 元 維 持 選択肢 残 機能 互換性 維持 移 行 期 不要 次第 片付 89
有効Խ [内部 ] 機能 不要 場合 自 体 不採用 Խ
必要 選択 方式 使 不明 組 合 問題 起 小 必要 程度 方 認知負ՙ 軽減 不要 機能 動作 望 有効 無効 切 替 SpringBoot AutoCon fi guration 参考 90
実現 手 段 OpenFeature 機能 SpringBoot ConditionalOnXxx系 基本的 実 行
時 起動時 実 行 時 処理時 対Ԡ 自 力実装 外部Խ 実 行 時 処理時 頻繁 参照 検討 必要 設計 必要 …… 91
共有Խʁ 複数 同 参照 一Ԡ 実装技術 差 言 語 違
基本的 手 動 切 替 1Օ 所 設計 制御 92
共通Խ文脈 例 導入 取捨選択 制御 dependency 選択 方 低 機能
文脈 無効 受 入 制御 側 対Ԡ 別 API 呼 替 制御 93
[合 一本 ] [使 ] 要因 一 需要 共通Խ 共通
思 思 自 分 状گ 変 色 ʑ 共通Խ 否 判断 置 1Օ所 使 [ 共通Խ] 複数Օ所 使 変更 波及 望 一本 状گ 踏 考 明 必要 自 信 94
95 絡 伝 図
踏 考 96 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗
ӽ 踏 考
ʁ 万能 正解 ୭ 困 状گ 規模 文Խ 様ʑ 要素
落 所 変 今 足 場 確認 少 先 状گ 見 据 選 択 思 ڭ 一緒 考 営ۀ 97
ʁ 一 選 小 領域 濃淡 辺 全体 ײ 意図
今 状گ 言 語Խ 留 進 戻 考 98
目指 理想 ʁ 段֊ 収束 [使 ] [合 一本 ]
ڍ 共通 Խ 必要 進 必要 選択 言 99
組織構造 関係 共通Խ 法則 働 専任 間 ڥք 共通 Խ範囲
ڥք 兼任 逆 戦略 組織構造 無視 参考 情報 多 毎回 100
共通Խ 取 組 方 供給者 利用者 関係 対立構造 生 孤独
Կ 手 打 容қ 象Ἕ 塔 住 人 思 適切 共通Խ 適切 重要 過剰 101
領域 段֊ 共通Խ 考 受 思 小 踏 締 進
最ۙ 🤖 支 ԉ 選 結Ռ 受 取 自 分 同 選択 意志 持 選 方 良質 得 🧠 便利 使 思 102