Slide 1

Slide 1 text

複数 育 共通Խ戦略 JJUG CCC 2025 Spring @irof

Slide 2

Slide 2 text

2 # 自己 紹介 - -大ࡕ - ## - 関西Java ձ - 月 一 ## 仕事 - 個 人 事ۀ主 - 開発全般 支 ԉ

Slide 3

Slide 3 text

irof 正解 ڭ 初 心 者向 除 現場固有 言 難 投 ײ 現場固有 話 仕事 要 右側 3

Slide 4

Slide 4 text

irof 技術 安定指向 実践主ٛ 場所 見 極 実験 実験 実地検証 本番 検証 4

Slide 5

Slide 5 text

目次 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ 踏 考 5

Slide 6

Slide 6 text

共通Խ 話 6 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ 踏 考

Slide 7

Slide 7 text

共通Խ 背景 複数 連携 一 多 存在 特 Java 使 領域 単一 珍 気 分 担当者 ձ社 別 一 ԣ断的 課題 7

Slide 8

Slide 8 text

共通Խ 問題 同 問題 別ʑ 取 組 重複 違 解 出 絶対解 個別最適Խ 解 違 付随 偶有的 問題 大 違 問題 起 時 対処 専門Խ 人 負ՙ 偏 8

Slide 9

Slide 9 text

ԣ道 言 葉 Խ 売 文句 自 由 技術 選 実際別 技術 採用 成立 ӕ 必要 技術 手 出 問題 ۙ年 程度技術統一 流 思 9

Slide 10

Slide 10 text

共通Խ ૂ 重複 削減 品質 安定Խ 人 材流動性 確保 ڍ 思 10

Slide 11

Slide 11 text

共通Խ 足 取 重 難 見 別 困 今 方 手 間 時間 成Ռ 明 示 合意 面倒 仕事 指 示 11 抵抗 n֊層 参考

Slide 12

Slide 12 text

共通Խ 話 共通Խ 取 組 機ձ 少 ʁ偏 気 高 尚 取 組 方 手 探 自 分 経験 言 語Խ 思 次第 12

Slide 13

Slide 13 text

機ձ 13 今回 3 出 打率3割

Slide 14

Slide 14 text

共通Խ 14 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ 踏 考

Slide 15

Slide 15 text

15

Slide 16

Slide 16 text

[知識共有] 知識 共有 ✅ 手 軽 ⚠認識 採用 不明 ⚠ 共有 16

Slide 17

Slide 17 text

[雰囲気合 ] 共通Խ 取 組 具象Խ 同 作 本当 同 確認 今後 同 ✅共通Խ 低 柔軟性 高 ⚠判断 属 人 的 安定 危険 17

Slide 18

Slide 18 text

[基礎技術 統一] Java SpringBoot 使 技術 ἧ ✅[知識共有] 活用 期待 ✅基礎外 意思決定 導入 迅速 行 ⚠ 使 方 異 独 自 進Խ ᴥᴪ 生 多 ֖ 開 別物 ײ 18

Slide 19

Slide 19 text

[軽量標準Խ] [基礎技術 統一] 明文Խ [知識共有] 行 程度 則 互 期待 ✅技術 一定 水 準下 ⚠統制 効 仕組 形֚Խ ⚠ 標準Խ 検討 期待値 19

Slide 20

Slide 20 text

[ 共通Խ] 設定 処理 他 複製 持 込 ✅導入 低 ✅[雰囲気合 ] 比 具象 扱 伝達精度 高 ⚠ 元 変更 追随 手 間 追随 ༙ 元 管理 遠因 ⚠ 後 変更 期待 20

Slide 21

Slide 21 text

派 生 Spring Initializr Maven archetype GitHub 初期構築 [ 共通Խ] 一形態 精度 上 作 更 新 Өڹ 使 直後 独 自 進Խ 始 注意点 引 継 21

Slide 22

Slide 22 text

[内部 ] 処理共通Խ 一形態 jar 共有 ✅変更 機械的 波及 ⚠ 責任範囲 ᐆດ 混乱 生 22

Slide 23

Slide 23 text

派 生 参照 [ 共通Խ] 持 込 際 Git submodule 別 引 込 使 方法 Git 知識 必要 一度設定 終 日 常的 必要 知識 水 準 上 知 全員 要ٻ ʁ 正直 ק Java 素直 jar 共有 ʁ 23

Slide 24

Slide 24 text

[共通 ] 処理共通Խ 一形態 ӽ 使用 ✅ 制御 容қ ⚠処理 大 運用保守 必要 ⚠ 重 24

Slide 25

Slide 25 text

補 足 [内部 ] [共通 ] 処理 共通Խ 呼 出 呼 出 後 実 行 責任 側 否 大 違 拡張 選択肢 側 持 基本的 実装的 共通処理 [内部 ] ۀ務的 共通処理 [共通 ] 妥当 25 実装的 共通 ۀ務的 共通 分 使 技術 ۙ 考 方 転用 効 判断基準 結構違

Slide 26

Slide 26 text

内部 設定 拡張 Ճ 共通 使用 ✅ 強制 運用 必要 伝೻ ⚠Өڹ範囲 暗黙的 広 Խ 26 作 本 対象外

Slide 27

Slide 27 text

[ 標準Խ] ✅ ⚠ 27 書

Slide 28

Slide 28 text

[世ք 共通Խ] 外部 使 共通Խ 1 [知識共有] [基礎技術 統一] 採 用 言 ✅世ք 知 見 実績 活用 ⚠ 自 分 ײ 合 ʂ 解決 多 28

Slide 29

Slide 29 text

派 生 内部 公開 [世ք 共通Խ] 一形態 自 分 作 [内部 ] [内部 ] 公開 ✅ ⚠ 話 公開 方ʑ 29

Slide 30

Slide 30 text

30 再掲

Slide 31

Slide 31 text

前提技術要素 31

Slide 32

Slide 32 text

自 分 使 Nexus GitHub Packages AWS CodeArtifact 使 開発端末 CI環ڥ 言 Maven知識 要ٻ 水 準 上 Gradle使 Maven 知識 必要 jar lib OKʁ 手 軽 単純 機能 方 32

Slide 33

Slide 33 text

運用 必ਢ SNAPSHOT 実装次第 努力 再発明 素直 使 番号 複数 場合 SemVer 過剰 見 ׳習 場合 CalVer 合 思 単純 十 分 気 SemVer 1.152 SemVer 採用 …… 提供側 永ٱ 上 気分 使 分 使用側 使用 33

Slide 34

Slide 34 text

話 34 前回 落 🙃 違

Slide 35

Slide 35 text

共通Խ 35 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ 踏 考

Slide 36

Slide 36 text

一 36

Slide 37

Slide 37 text

同 二 目 作 37 [知識共有] [雰囲気合 ] [ 共通Խ]

Slide 38

Slide 38 text

独 自 進Խ🧟 38 ※ 期間 結構長 他 PiyoApp 増 省略

Slide 39

Slide 39 text

😵💫 39

Slide 40

Slide 40 text

😵💫😵💫 40

Slide 41

Slide 41 text

合 41 [基礎技術 統一] [軽量標準Խ]

Slide 42

Slide 42 text

同 目的 異 拡張 42

Slide 43

Slide 43 text

微妙 違 🤯 43

Slide 44

Slide 44 text

標準 仕組 強制 ʂ 44 [内部 ]

Slide 45

Slide 45 text

GOALʁ 45

Slide 46

Slide 46 text

BAD ENDʁ 46 邪魔ʂ 着 無理 …… 利֐関係者 増 動

Slide 47

Slide 47 text

BAD ENDʁ 現実 一直線 混在 悲؍ 向 合 取 組 47

Slide 48

Slide 48 text

付録 SpringBoot 共通Խ 48 抽象的 話 続 ṟٳ 的 具象 振 Skip可

Slide 49

Slide 49 text

SpringBoot 一押 SpringBoot 設定 ײ 調整 実 行 環ڥ 一層欲 ԣ断的 同 設定 必要 際 [ 共通Խ] 済 多 対象 多岐 渡 全部設定 ʁ ٙ 心 暗َ 49 付録

Slide 50

Slide 50 text

50 付録

Slide 51

Slide 51 text

使用 共通Խ SpringBoot 入 自 動的 多 共通Խ ༙ [ 共通Խ] 見 都合 変 Өڹ 対Ԡ 微妙 思 数 増 増 顕著 一式 数 starter 作 [基礎技術 統一] 共通Խ 51 付録

Slide 52

Slide 52 text

52 spring-boot-starter-xxx spring-boot-starter-xxx micrometer-registory-xxx hoge-app fuga-app 付録

Slide 53

Slide 53 text

53 spring-boot-starter-xxx spring-boot-starter-xxx micrometer-registory-xxx hoge-app fuga-app my-starter-xxx 付録

Slide 54

Slide 54 text

54 spring-boot-starter-xxx spring-boot-starter-xxx micrometer-registory-xxx hoge-app fuga-app my-starter-xxx Maven Gradle 使 統一 前提 上 依存解決 仕組 修得 上 行 雰囲気 動 依存 入 spring-boot-dependencies ݌՞ 制御 書 読 ײ 知 期待 難 領域 思 使用 共通Խ 付録

Slide 55

Slide 55 text

共通Խ 実 行 環ڥ 環ڥ変数 設定 複数 場合 SPRING_APPRICATION_JSON 設定 楽 実 行 効 spring.con fi g.import 共通設定 取 込 要 EnvironmentPostProcessor 追Ճ 時 突 込 55 付録

Slide 56

Slide 56 text

脱線:application.yml application.yml properties SpringBoot 読 設定 複数配置 ك 見 読 一 特定条件 上書 @SpringBootTest properties @DynamicProperySource application- test.properties 書 pro fi le 有効 他 方法 56 付録

Slide 57

Slide 57 text

周 特 連携周 運用 統一 個別 設定 設定 自 体 手 軽 手 入 時 全 一律同 多 優先的 共通Խ 57 付録

Slide 58

Slide 58 text

actuator /actuator/info 追Ճ git Spring 書 使 出力 実 行 環ڥ 確実 情報 確認 入 Jar 展開 確認 ك /actuator/env 環ڥ 見 捗 actuator周 一律同 設定 利点 多 Կ 安定 共通Խ 58 付録

Slide 59

Slide 59 text

入 口 出 口 側 変更 最 小 上 入 準備 分散 運 用始 必要 時 ԣ断的 持 最初 入 気 込 明 示 方 良 一時྇ 59 付録

Slide 60

Slide 60 text

例 SpringAOP 特Խ 拡張 用意 時 渋ʑ使 ײ SpringMVC 場合 HandlerInterceptor ControllerAdvice ClientHttpRequestInterceptor 60 付録

Slide 61

Slide 61 text

共通部分 ComponentScan 共通Խ Bean定ٛ 扱 場合 ComponentScan 自 動登録 小 回 効 避 側 見 以外 ComponentScan 事故 制約 原因 AutoCon fi guration 使 難 Import 明 示 的 引 込 61 付録

Slide 62

Slide 62 text

補 足 :SpringBoot 拡張 二択 Bean定ٛ Bean定ٛ 際 SpringBoot 意図 拡張点 注意 Spring 拡張点 使用 SpringBoot 殺 SpringBoot 拡張点 不 足 仕方 仕方 時 注意 必要 62 付録

Slide 63

Slide 63 text

共通Խ 段差 乗 ӽ 63 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ 踏 考

Slide 64

Slide 64 text

段差 乗 ӽ 共通Խ 取 組 伴 苦労 ײ 段差 呼 落 穴 迷 段差 乗 ӽ 解決 関 係 一対一 64

Slide 65

Slide 65 text

段差 生 原因 押 付 嫌 目 前 問題 苦 労 違 Ձ値基準 押 付 嫌 形 守 標準Խ 出発点 出発点 前提 辛 65

Slide 66

Slide 66 text

段差 空転 実 違 予期 波及 雑用係Խ Խ 聞 使 66

Slide 67

Slide 67 text

[空転 ] [内部 ] [内部 ] [共通 ] 作成 当然 始 機能使 ʁ ٙ 心 暗َ 特 組 合 ؤ張 対Ԡ ୭ 使 …… 利用者 見 OSS 67

Slide 68

Slide 68 text

共通Խ 取 組 重要性 高 標準Խ [軽量標準Խ] [ 標準Խ] 主 成Ռ 物 状گ 後回 経験 人 多 言 読 時 困 時 割 続 大事 68

Slide 69

Slide 69 text

[実 違 ] 同 思 ֖ 開 違 言 [雰囲気合 ] [軽量標準Խ] [ 共通Խ] 起 覚悟 大 見 込 外 [基礎技術 統一] 似 ײ 同 思 使 ك ك 当然 悪意 69

Slide 70

Slide 70 text

[予期 波及 ] [内部 ] Өڹ範囲 広 全体 Өڹ 規模 使 方 目 届 難 気 問題 起 問題 起 変更 怖 悪循環 70

Slide 71

Slide 71 text

[雑用係Խ Խ] [内部 ] 道具箱 入 一括適用 選択肢 出 個別対処 確実 早 対Ԡ 当然 話 領域 対Ԡ 必要性 技術力 上 繰 返 技術格差 広 対Ԡ 人 固定 Խ 話 行 着 雑用係 71

Slide 72

Slide 72 text

[聞 ] 共通Խ 取 組 受 取 側 色 ʑ 言 分 機ձ 言 Թ度ײ 合 仕方 ఘ 作 側 言 思 使 側 言 困 72

Slide 73

Slide 73 text

[使 ] 良 思 作 ୭ 使 他 使 思 自 分 使 使 残 要 使 現実 73

Slide 74

Slide 74 text

乗 ӽ 地道 確認 後方互換 取 組 声 届 関係性 適用度合 色 分 合 一本 74

Slide 75

Slide 75 text

[地道 確認] 機械的 確認 仕組 入 活用 人 力 確認 精度 低 扱 多少 漏 צ違 ڐ容 仕組 ײ 75

Slide 76

Slide 76 text

[後方互換 取 組 ] 後方互換 新 今 通 使 育 [内部 ] [内部 ] 共通Խ 期待 削減 更新 Өڹ 低 受 後方互換性 高 保 必要 互換性 維持 容қ 76

Slide 77

Slide 77 text

後方互換 損 場合 互換性 損 新 対Ԡ 生 [雑用係Խ Խ] 使 独 自 拡張 行 [実 違 ] [使 ] 使用側 当然 選択 言 参考 表出 事象 ୟ ௵ https://irof.hateblo.jp/entry/2025/01/24/121938 77

Slide 78

Slide 78 text

後方互換 取 組 参照 内部 使 JDK 不特定多数 使 比 後方互換 必要 労力 少 実際 必要 違 互換性 取 組 参考 78

Slide 79

Slide 79 text

段֊的移 行 新 IF 作成 順次乗 換 促 IF 維持 内部 ڍ動 [ ] 切 替 排他関係 合 79

Slide 80

Slide 80 text

ՙ下 [空転 ] 要因 適切 捨 削除 @Deprecated 警告 段֊ 置 面倒 ײ ڑ離ײ ۙ 場合 除 一 足 飛 行 ק ؆単 練習 難 参考 緊ٸ時 規律 https://irof.hateblo.jp/entry/2025/02/11/110918 80

Slide 81

Slide 81 text

依存 抑 技術 積 慎重 共通 特 使 後方互換 Өڹ 受 内部 積 派 生 安қ 選定 領域 使 使 使 使 以上 制御 81

Slide 82

Slide 82 text

[声 届 関係性] 共通Խ 押 付 反発 抱 構造 意識的 受 取 良 内部 建 付 幻想 相 手 ձ話 人 間 結構変 ײ 互 知 勝 手 ԇ 積 重 構造 前提 考 82

Slide 83

Slide 83 text

[適用度合 色 分 ] 共通 使 全部適切 判断 済 言 度合 定ٛ RFC RequirementLevel RFC2119 参考 83

Slide 84

Slide 84 text

適用度合 84 RFC 表記例 Թ度ײ MUST REQUIRED SHALL 必ਢ 必 難 場合 相談 欲 SHOULD RECOMMENDED 推奨 基本的 事後 ڭ MAY OPTIONAL 参考 従

Slide 85

Slide 85 text

適用度合 使用例 開発標準 規約 必ਢ Java SpringBoot 使 推奨 SpringBoot 設定 行 Bean定ٛ 設定 [内部 ] 行 避 参考 例 実際 使 程度 85

Slide 86

Slide 86 text

[ ] 朝 Open Feature 86

Slide 87

Slide 87 text

用途 抽象 実現 分離 安定 速度 獲得 87

Slide 88

Slide 88 text

変更 反ө 制御 88 制御 制御 XXX環ڥ向 中 制御 実 行 時 起動時 変更 必要 SpringBoot 処理時 手 動 運用 一環 分 自 動 ON/OFF切 替 的 権限制御 一Ԡ 広ٛ 守備範囲

Slide 89

Slide 89 text

互換 [内部 ] [内部 ] 活用 下 共通Խ 機能 変更 場合 変更 見 送 上 機能 元 維 持 選択肢 残 機能 互換性 維持 移 行 期 不要 次第 片付 89

Slide 90

Slide 90 text

有効Խ [内部 ] 機能 不要 場合 自 体 不採用 Խ 必要 選択 方式 使 不明 組 合 問題 起 小 必要 程度 方 認知負ՙ 軽減 不要 機能 動作 望 有効 無効 切 替 SpringBoot AutoCon fi guration 参考 90

Slide 91

Slide 91 text

実現 手 段 OpenFeature 機能 SpringBoot ConditionalOnXxx系 基本的 実 行 時 起動時 実 行 時 処理時 対Ԡ 自 力実装 外部Խ 実 行 時 処理時 頻繁 参照 検討 必要 設計 必要 …… 91

Slide 92

Slide 92 text

共有Խʁ 複数 同 参照 一Ԡ 実装技術 差 言 語 違 基本的 手 動 切 替 1Օ 所 設計 制御 92

Slide 93

Slide 93 text

共通Խ文脈 例 導入 取捨選択 制御 dependency 選択 方 低 機能 文脈 無効 受 入 制御 側 対Ԡ 別 API 呼 替 制御 93

Slide 94

Slide 94 text

[合 一本 ] [使 ] 要因 一 需要 共通Խ 共通 思 思 自 分 状گ 変 色 ʑ 共通Խ 否 判断 置 1Օ所 使 [ 共通Խ] 複数Օ所 使 変更 波及 望 一本 状گ 踏 考 明 必要 自 信 94

Slide 95

Slide 95 text

95 絡 伝 図

Slide 96

Slide 96 text

踏 考 96 共通Խ 話 共通Խ 共通Խ 共通Խ 段差 乗 ӽ 踏 考

Slide 97

Slide 97 text

ʁ 万能 正解 ୭ 困 状گ 規模 文Խ 様ʑ 要素 落 所 変 今 足 場 確認 少 先 状گ 見 据 選 択 思 ڭ 一緒 考 営ۀ 97

Slide 98

Slide 98 text

ʁ 一 選 小 領域 濃淡 辺 全体 ײ 意図 今 状گ 言 語Խ 留 進 戻 考 98

Slide 99

Slide 99 text

目指 理想 ʁ 段֊ 収束 [使 ] [合 一本 ] ڍ 共通 Խ 必要 進 必要 選択 言 99

Slide 100

Slide 100 text

組織構造 関係 共通Խ 法則 働 専任 間 ڥք 共通 Խ範囲 ڥք 兼任 逆 戦略 組織構造 無視 参考 情報 多 毎回 100

Slide 101

Slide 101 text

共通Խ 取 組 方 供給者 利用者 関係 対立構造 生 孤独 Կ 手 打 容қ 象Ἕ 塔 住 人 思 適切 共通Խ 適切 重要 過剰 101

Slide 102

Slide 102 text

領域 段֊ 共通Խ 考 受 思 小 踏 締 進 最ۙ 🤖 支 ԉ 選 結Ռ 受 取 自 分 同 選択 意志 持 選 方 良質 得 🧠 便利 使 思 102