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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
irof
June 07, 2025
Programming
6.8k
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.1k
視座の上げ方
irof
1
150
アーキテクチャと考える迷子にならない開発者テスト
irof
10
4.4k
技術的負債の正体を知って向き合う
irof
0
1.1k
関ジャバと言う場
irof
0
420
型で語るカタ
irof
2
1.7k
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
540
SpringBootにおけるオブザーバビリティのなにか
irof
1
1.5k
Javaアプリケーションモニタリングの基本
irof
7
3k
Other Decks in Programming
See All in Programming
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
270
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
460
Intent as Code
shoppingjaws
6
1k
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
550
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
1k
新卒PdEのリアル
ryu1013
1
500
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
280
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
280
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
SREの越境 / SRE Collaboration
y0hgi
0
100
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Into the Great Unknown - MozCon
thekraken
41
2.7k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
500
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Claude Code のすすめ
schroneko
67
230k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Building Adaptive Systems
keathley
44
3.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
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