Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
複数アプリケーションを育てていくための共通化戦略
Search
irof
June 07, 2025
Programming
6.9k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
複数アプリケーションを育てていくための共通化戦略
JJUG CCC 2025 Spring
https://jjug.doorkeeper.jp/events/183483
2025-06-07T16:30
irof
June 07, 2025
More Decks by irof
See All by irof
ふつうのFeature Flag実践入門
irof
8
5.3k
視座の上げ方
irof
1
180
アーキテクチャと考える迷子にならない開発者テスト
irof
10
4.5k
技術的負債の正体を知って向き合う
irof
0
1.2k
関ジャバと言う場
irof
0
440
型で語るカタ
irof
2
1.7k
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
550
SpringBootにおけるオブザーバビリティのなにか
irof
1
1.5k
Javaアプリケーションモニタリングの基本
irof
7
3k
Other Decks in Programming
See All in Programming
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
15k
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
540
Are APIs Still Relevant in the AI Era?
soyuka
0
420
APNsからLive Activityを開始する話
yumnumm
0
150
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
460
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
120
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
620
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
310
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
230
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
20
21k
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
180
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
Bash Introduction
62gerente
615
220k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
Site-Speed That Sticks
csswizardry
13
1.5k
30 Presentation Tips
portentint
PRO
1
420
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
580
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
570
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.2k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
A Soul's Torment
seathinner
8
3.7k
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