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
10
4k
複数アプリケーションを育てていくための共通化戦略
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
1
300
SpringBootにおけるオブザーバビリティのなにか
irof
1
970
Javaアプリケーションモニタリングの基本
irof
7
2.6k
Webアプリケーションを作りましょう
irof
0
120
Javaの新しめの機能を知ったかぶれるようになる話 #kanjava
irof
3
6.2k
バッチを作らなきゃとなったときに考えること
irof
2
770
SpringBoot3.4の構造化ログ #kanjava
irof
3
1.4k
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
12
5.2k
役立つログに取り組もう
irof
36
13k
Other Decks in Programming
See All in Programming
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
220
Select API from Kotlin Coroutine
jmatsu
1
190
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
280
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
310
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
210
Gleamという選択肢
comamoca
6
760
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
4
910
童醫院敏捷轉型的實踐經驗
cclai999
0
180
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
370
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
Create a website using Spatial Web
akkeylab
0
300
Featured
See All Featured
It's Worth the Effort
3n
185
28k
Building Adaptive Systems
keathley
43
2.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Bash Introduction
62gerente
614
210k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Automating Front-end Workflow
addyosmani
1370
200k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Done Done
chrislema
184
16k
The Language of Interfaces
destraynor
158
25k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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