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
2
660
複数アプリケーションを育てていくための共通化戦略
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
SpringBootにおけるオブザーバビリティのなにか
irof
1
890
Javaアプリケーションモニタリングの基本
irof
7
2.5k
Webアプリケーションを作りましょう
irof
0
110
Javaの新しめの機能を知ったかぶれるようになる話 #kanjava
irof
3
5.9k
バッチを作らなきゃとなったときに考えること
irof
2
750
SpringBoot3.4の構造化ログ #kanjava
irof
3
1.3k
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
11
5.2k
役立つログに取り組もう
irof
36
13k
Javaのリリースモデル変更 その後
irof
0
140
Other Decks in Programming
See All in Programming
事業戦略を理解してソフトウェアを設計する
masuda220
PRO
6
1k
クラシルリワードにおける iOSアプリ開発の取り組み
funzin
1
810
MLOps Japan 勉強会 #52 - 特徴量を言語を越えて一貫して管理する, 『特徴量ドリブン』な MLOps の実現への試み
taniiicom
2
570
ts-morph実践:型を利用するcodemodのテクニック
ypresto
1
540
イベントソーシングとAIの親和性ー物語とLLMに理解できるデータ
tomohisa
1
160
#QiitaBash TDDでAIに設計イメージを伝える
ryosukedtomita
2
1.6k
ユーザーにサブドメインの ECサイトを提供したい (あるいは) 2026年函館で一番熱くなるかもしれない言語の話
uvb_76
0
180
推論された型の移植性エラーTS2742に挑む
teamlab
PRO
0
150
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
0
160
TSConfigからTypeScriptの世界を覗く
planck16
2
1.3k
DevTalks 25 - Create your own AI-infused Java apps with ease
kdubois
2
120
Language Server と喋ろう – TSKaigi 2025
pizzacat83
2
670
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
A Tale of Four Properties
chriscoyier
159
23k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
How to train your dragon (web standard)
notwaldorf
92
6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
106
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
840
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
660
How GitHub (no longer) Works
holman
314
140k
Faster Mobile Websites
deanohume
307
31k
Documentation Writing (for coders)
carmenintech
71
4.8k
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