Upgrade to Pro — share decks privately, control downloads, hide ads and more …

複数アプリケーションを育てていくための共通化戦略

Avatar for irof irof
June 07, 2025

 複数アプリケーションを育てていくための共通化戦略

JJUG CCC 2025 Spring https://jjug.doorkeeper.jp/events/183483
2025-06-07T16:30

Avatar for irof

irof

June 07, 2025
Tweet

More Decks by irof

Other Decks in Programming

Transcript

  1. 2 # 自己 紹介 - -大ࡕ - ## - 関西Java

    ձ - 月 一 ## 仕事 - 個 人 事ۀ主 - 開発全般 支 ԉ
  2. irof 正解 ڭ 初 心 者向 除 現場固有 言 難

    投 ײ 現場固有 話 仕事 要 右側 3
  3. 共通Խ 背景 複数 連携 一 多 存在 特 Java 使

    領域 単一 珍 気 分 担当者 ձ社 別 一 ԣ断的 課題 7
  4. 共通Խ 問題 同 問題 別ʑ 取 組 重複 違 解

    出 絶対解 個別最適Խ 解 違 付随 偶有的 問題 大 違 問題 起 時 対処 専門Խ 人 負ՙ 偏 8
  5. ԣ道 言 葉 Խ 売 文句 自 由 技術 選

    実際別 技術 採用 成立 ӕ 必要 技術 手 出 問題 ۙ年 程度技術統一 流 思 9
  6. 共通Խ 足 取 重 難 見 別 困 今 方

    手 間 時間 成Ռ 明 示 合意 面倒 仕事 指 示 11 抵抗 n֊層 参考
  7. 共通Խ 話 共通Խ 取 組 機ձ 少 ʁ偏 気 高

    尚 取 組 方 手 探 自 分 経験 言 語Խ 思 次第 12
  8. 15

  9. [雰囲気合 ] 共通Խ 取 組 具象Խ 同 作 本当 同

    確認 今後 同 ✅共通Խ 低 柔軟性 高 ⚠判断 属 人 的 安定 危険 17
  10. [基礎技術 統一] Java SpringBoot 使 技術 ἧ ✅[知識共有] 活用 期待

    ✅基礎外 意思決定 導入 迅速 行 ⚠ 使 方 異 独 自 進Խ ᴥᴪ 生 多 ֖ 開 別物 ײ 18
  11. [軽量標準Խ] [基礎技術 統一] 明文Խ [知識共有] 行 程度 則 互 期待

    ✅技術 一定 水 準下 ⚠統制 効 仕組 形֚Խ ⚠ 標準Խ 検討 期待値 19
  12. [ 共通Խ] 設定 処理 他 複製 持 込 ✅導入 低

    ✅[雰囲気合 ] 比 具象 扱 伝達精度 高 ⚠ 元 変更 追随 手 間 追随 ༙ 元 管理 遠因 ⚠ 後 変更 期待 20
  13. 派 生 Spring Initializr Maven archetype GitHub 初期構築 [ 共通Խ]

    一形態 精度 上 作 更 新 Өڹ 使 直後 独 自 進Խ 始 注意点 引 継 21
  14. 派 生 参照 [ 共通Խ] 持 込 際 Git submodule

    別 引 込 使 方法 Git 知識 必要 一度設定 終 日 常的 必要 知識 水 準 上 知 全員 要ٻ ʁ 正直 ק Java 素直 jar 共有 ʁ 23
  15. 補 足 [内部 ] [共通 ] 処理 共通Խ 呼 出

    呼 出 後 実 行 責任 側 否 大 違 拡張 選択肢 側 持 基本的 実装的 共通処理 [内部 ] ۀ務的 共通処理 [共通 ] 妥当 25 実装的 共通 ۀ務的 共通 分 使 技術 ۙ 考 方 転用 効 判断基準 結構違
  16. 内部 設定 拡張 Ճ 共通 使用 ✅ 強制 運用 必要

    伝೻ ⚠Өڹ範囲 暗黙的 広 Խ 26 作 本 対象外
  17. [世ք 共通Խ] 外部 使 共通Խ 1 [知識共有] [基礎技術 統一] 採

    用 言 ✅世ք 知 見 実績 活用 ⚠ 自 分 ײ 合 ʂ 解決 多 28
  18. 派 生 内部 公開 [世ք 共通Խ] 一形態 自 分 作

    [内部 ] [内部 ] 公開 ✅ ⚠ 話 公開 方ʑ 29
  19. 自 分 使 Nexus GitHub Packages AWS CodeArtifact 使 開発端末

    CI環ڥ 言 Maven知識 要ٻ 水 準 上 Gradle使 Maven 知識 必要 jar lib OKʁ 手 軽 単純 機能 方 32
  20. 運用 必ਢ SNAPSHOT 実装次第 努力 再発明 素直 使 番号 複数

    場合 SemVer 過剰 見 ׳習 場合 CalVer 合 思 単純 十 分 気 SemVer 1.152 SemVer 採用 …… 提供側 永ٱ 上 気分 使 分 使用側 使用 33
  21. SpringBoot 一押 SpringBoot 設定 ײ 調整 実 行 環ڥ 一層欲

    ԣ断的 同 設定 必要 際 [ 共通Խ] 済 多 対象 多岐 渡 全部設定 ʁ ٙ 心 暗َ 49 付録
  22. 使用 共通Խ SpringBoot 入 自 動的 多 共通Խ ༙ [

    共通Խ] 見 都合 変 Өڹ 対Ԡ 微妙 思 数 増 増 顕著 一式 数 starter 作 [基礎技術 統一] 共通Խ 51 付録
  23. 54 spring-boot-starter-xxx spring-boot-starter-xxx micrometer-registory-xxx hoge-app fuga-app my-starter-xxx Maven Gradle 使

    統一 前提 上 依存解決 仕組 修得 上 行 雰囲気 動 依存 入 spring-boot-dependencies ݌՞ 制御 書 読 ײ 知 期待 難 領域 思 使用 共通Խ 付録
  24. 共通Խ 実 行 環ڥ 環ڥ変数 設定 複数 場合 SPRING_APPRICATION_JSON 設定

    楽 実 行 効 spring.con fi g.import 共通設定 取 込 要 EnvironmentPostProcessor 追Ճ 時 突 込 55 付録
  25. 脱線:application.yml application.yml properties SpringBoot 読 設定 複数配置 ك 見 読

    一 特定条件 上書 @SpringBootTest properties @DynamicProperySource application- test.properties 書 pro fi le 有効 他 方法 56 付録
  26. 周 特 連携周 運用 統一 個別 設定 設定 自 体

    手 軽 手 入 時 全 一律同 多 優先的 共通Խ 57 付録
  27. actuator /actuator/info 追Ճ git Spring 書 使 出力 実 行

    環ڥ 確実 情報 確認 入 Jar 展開 確認 ك /actuator/env 環ڥ 見 捗 actuator周 一律同 設定 利点 多 Կ 安定 共通Խ 58 付録
  28. 入 口 出 口 側 変更 最 小 上 入

    準備 分散 運 用始 必要 時 ԣ断的 持 最初 入 気 込 明 示 方 良 一時྇ 59 付録
  29. 例 SpringAOP 特Խ 拡張 用意 時 渋ʑ使 ײ SpringMVC 場合

    HandlerInterceptor ControllerAdvice ClientHttpRequestInterceptor 60 付録
  30. 共通部分 ComponentScan 共通Խ Bean定ٛ 扱 場合 ComponentScan 自 動登録 小

    回 効 避 側 見 以外 ComponentScan 事故 制約 原因 AutoCon fi guration 使 難 Import 明 示 的 引 込 61 付録
  31. 補 足 :SpringBoot 拡張 二択 Bean定ٛ Bean定ٛ 際 SpringBoot 意図

    拡張点 注意 Spring 拡張点 使用 SpringBoot 殺 SpringBoot 拡張点 不 足 仕方 仕方 時 注意 必要 62 付録
  32. 段差 乗 ӽ 共通Խ 取 組 伴 苦労 ײ 段差

    呼 落 穴 迷 段差 乗 ӽ 解決 関 係 一対一 64
  33. 段差 生 原因 押 付 嫌 目 前 問題 苦

    労 違 Ձ値基準 押 付 嫌 形 守 標準Խ 出発点 出発点 前提 辛 65
  34. [空転 ] [内部 ] [内部 ] [共通 ] 作成 当然

    始 機能使 ʁ ٙ 心 暗َ 特 組 合 ؤ張 対Ԡ ୭ 使 …… 利用者 見 OSS 67
  35. 共通Խ 取 組 重要性 高 標準Խ [軽量標準Խ] [ 標準Խ] 主

    成Ռ 物 状گ 後回 経験 人 多 言 読 時 困 時 割 続 大事 68
  36. [実 違 ] 同 思 ֖ 開 違 言 [雰囲気合

    ] [軽量標準Խ] [ 共通Խ] 起 覚悟 大 見 込 外 [基礎技術 統一] 似 ײ 同 思 使 ك ك 当然 悪意 69
  37. [予期 波及 ] [内部 ] Өڹ範囲 広 全体 Өڹ 規模

    使 方 目 届 難 気 問題 起 問題 起 変更 怖 悪循環 70
  38. [雑用係Խ Խ] [内部 ] 道具箱 入 一括適用 選択肢 出 個別対処

    確実 早 対Ԡ 当然 話 領域 対Ԡ 必要性 技術力 上 繰 返 技術格差 広 対Ԡ 人 固定 Խ 話 行 着 雑用係 71
  39. [聞 ] 共通Խ 取 組 受 取 側 色 ʑ

    言 分 機ձ 言 Թ度ײ 合 仕方 ఘ 作 側 言 思 使 側 言 困 72
  40. [使 ] 良 思 作 ୭ 使 他 使 思

    自 分 使 使 残 要 使 現実 73
  41. [地道 確認] 機械的 確認 仕組 入 活用 人 力 確認

    精度 低 扱 多少 漏 צ違 ڐ容 仕組 ײ 75
  42. [後方互換 取 組 ] 後方互換 新 今 通 使 育

    [内部 ] [内部 ] 共通Խ 期待 削減 更新 Өڹ 低 受 後方互換性 高 保 必要 互換性 維持 容қ 76
  43. 後方互換 損 場合 互換性 損 新 対Ԡ 生 [雑用係Խ Խ]

    使 独 自 拡張 行 [実 違 ] [使 ] 使用側 当然 選択 言 参考 表出 事象 ୟ ௵ https://irof.hateblo.jp/entry/2025/01/24/121938 77
  44. 後方互換 取 組 参照 内部 使 JDK 不特定多数 使 比

    後方互換 必要 労力 少 実際 必要 違 互換性 取 組 参考 78
  45. 段֊的移 行 新 IF 作成 順次乗 換 促 IF 維持

    内部 ڍ動 [ ] 切 替 排他関係 合 79
  46. ՙ下 [空転 ] 要因 適切 捨 削除 @Deprecated 警告 段֊

    置 面倒 ײ ڑ離ײ ۙ 場合 除 一 足 飛 行 ק ؆単 練習 難 参考 緊ٸ時 規律 https://irof.hateblo.jp/entry/2025/02/11/110918 80
  47. 依存 抑 技術 積 慎重 共通 特 使 後方互換 Өڹ

    受 内部 積 派 生 安қ 選定 領域 使 使 使 使 以上 制御 81
  48. [声 届 関係性] 共通Խ 押 付 反発 抱 構造 意識的

    受 取 良 内部 建 付 幻想 相 手 ձ話 人 間 結構変 ײ 互 知 勝 手 ԇ 積 重 構造 前提 考 82
  49. [適用度合 色 分 ] 共通 使 全部適切 判断 済 言

    度合 定ٛ RFC RequirementLevel RFC2119 参考 83
  50. 適用度合 84 RFC 表記例 Թ度ײ MUST REQUIRED SHALL 必ਢ 必

    難 場合 相談 欲 SHOULD RECOMMENDED 推奨 基本的 事後 ڭ MAY OPTIONAL 参考 従
  51. 適用度合 使用例 開発標準 規約 必ਢ Java SpringBoot 使 推奨 SpringBoot

    設定 行 Bean定ٛ 設定 [内部 ] 行 避 参考 例 実際 使 程度 85
  52. 変更 反ө 制御 88 制御 制御 XXX環ڥ向 中 制御 実

    行 時 起動時 変更 必要 SpringBoot 処理時 手 動 運用 一環 分 自 動 ON/OFF切 替 的 権限制御 一Ԡ 広ٛ 守備範囲
  53. 互換 [内部 ] [内部 ] 活用 下 共通Խ 機能 変更

    場合 変更 見 送 上 機能 元 維 持 選択肢 残 機能 互換性 維持 移 行 期 不要 次第 片付 89
  54. 有効Խ [内部 ] 機能 不要 場合 自 体 不採用 Խ

    必要 選択 方式 使 不明 組 合 問題 起 小 必要 程度 方 認知負ՙ 軽減 不要 機能 動作 望 有効 無効 切 替 SpringBoot AutoCon fi guration 参考 90
  55. 実現 手 段 OpenFeature 機能 SpringBoot ConditionalOnXxx系 基本的 実 行

    時 起動時 実 行 時 処理時 対Ԡ 自 力実装 外部Խ 実 行 時 処理時 頻繁 参照 検討 必要 設計 必要 …… 91
  56. 共有Խʁ 複数 同 参照 一Ԡ 実装技術 差 言 語 違

    基本的 手 動 切 替 1Օ 所 設計 制御 92
  57. 共通Խ文脈 例 導入 取捨選択 制御 dependency 選択 方 低 機能

    文脈 無効 受 入 制御 側 対Ԡ 別 API 呼 替 制御 93
  58. [合 一本 ] [使 ] 要因 一 需要 共通Խ 共通

    思 思 自 分 状گ 変 色 ʑ 共通Խ 否 判断 置 1Օ所 使 [ 共通Խ] 複数Օ所 使 変更 波及 望 一本 状گ 踏 考 明 必要 自 信 94
  59. ʁ 万能 正解 ୭ 困 状گ 規模 文Խ 様ʑ 要素

    落 所 変 今 足 場 確認 少 先 状گ 見 据 選 択 思 ڭ 一緒 考 営ۀ 97
  60. ʁ 一 選 小 領域 濃淡 辺 全体 ײ 意図

    今 状گ 言 語Խ 留 進 戻 考 98
  61. 目指 理想 ʁ 段֊ 収束 [使 ] [合 一本 ]

    ڍ 共通 Խ 必要 進 必要 選択 言 99
  62. 組織構造 関係 共通Խ 法則 働 専任 間 ڥք 共通 Խ範囲

    ڥք 兼任 逆 戦略 組織構造 無視 参考 情報 多 毎回 100
  63. 共通Խ 取 組 方 供給者 利用者 関係 対立構造 生 孤独

    Կ 手 打 容қ 象Ἕ 塔 住 人 思 適切 共通Խ 適切 重要 過剰 101
  64. 領域 段֊ 共通Խ 考 受 思 小 踏 締 進

    最ۙ 🤖 支 ԉ 選 結Ռ 受 取 自 分 同 選択 意志 持 選 方 良質 得 🧠 便利 使 思 102