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

アーキテクチャと考える迷子にならない開発者テスト

Avatar for irof irof
November 15, 2025

 アーキテクチャと考える迷子にならない開発者テスト

JJUG CCC 2025 Fallのセッション資料です。
2025-11-15T15:30
https://ccc2025fall.java-users.jp
https://jjug.doorkeeper.jp/events/190868

Avatar for irof

irof

November 15, 2025
Tweet

More Decks by irof

Other Decks in Programming

Transcript

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

    ձ - 月 一 ## 仕事 - 個 人 事ۀ主 - 開発全般 支 ԉ
  2. 話 難 難 難 同 士 難 分割 個別 考

    話 逆ʁ 同時 片 足 進 ײ 4
  3. 前提 構造 ଊ 小 道具 進 方 気 考 方

    վ善例 進 方 開発者 以外 話 5
  4. 一大 呼 専門Ո 存在 示 一大 質 高 専門的 不可

    欠 専門Ո 領域 特Խ 研ᮎ 実践 決 片 手 間 8
  5. 一大 言 葉 話 分類 受 入 負ՙ 耐障֐性 ڍ

    分 方 軸 ἧ 必要 種類 調 色 ʑ出 話 10
  6. : 開発者 以降 開発者 扱 開発者 開発者 自 分 作

    対 自 分 行 開発者 作 思 通 動 言 古来 言 思 通 動 作 通 動 抵抗 主 動 機能性 確認 JUnit 11
  7. 一大 呼 専門Ո 存在 示 一大 質 高 専門的 不可

    欠 専門Ո 領域 特Խ 研ᮎ 実践 決 片 手 間 関 認識 少 気 15
  8. 言 葉 ᐆດ 大 構造 呼 呼 重要性 認識 整理

    浸透 構造 限 重要 決定 再定ٛ 構造 言 意味 引用元 建築文脈 構造 限 建築様式 ֓念的 指 模様 16
  9. 抽象的 考 難 語 多 抽象的 構造 単一 定 排他的

    複数 同時 存在 関連 …… 言 話 通 程度 人 17
  10. 広 知識 深 技術力 高 ײ覚 要 ٻ ୭ 知

    実際 ӽ 関連 書籍 文献 難 盛 言 事実 上ڃ開発者 上 位置 扱 19
  11. 言 葉 指 範囲 絞 修飾 ڍ 分 方 軸

    ἧ 必要 種類 調 色 ʑ出 話 20
  12. 話 開発 ؚ 要素 難 難 難 Ԝ ʁ 迷

    子 23 今回 状گ 前 進 考 方 話
  13. Java 言 語 構造 正直 構造 考 役 立 言

    実 行 単位 合 管理単位 ၆ᛌ 役立 27
  14. 目的 構造 意味 言 意味 持 示 Spring 使 使

    強制 力 Controller 受 取 言 役割 持 役割 Ռ 確 35
  15. 特定 欠 ؕ ૂ 特定 欠 ؕ 存在 通 欠

    ؕ 存在 欠 ؕ 見 考 重要 難 考 粗 無駄 上 動 動 OKʂ 動 ૂ ʂ 37 動 ʁ 追 追
  16. 紛 少 状態 実 行 範囲 ؚ 多 多 紛

    大 Կ ؚ 示 紛 関係 理由 通 通 通 可能性 紛 多 ܨ 38
  17. 見 欠 ؕ ۙ 見 欠 ؕ 存在 場所 欠

    ؕ 存在 示 ۙ 検出 早 原因特定 遠 紛 生 39
  18. ۙ 場所 小 ⭕ 高 速 軽量 安Ձ ⭕ 欠

    ؕ 原因特定 容қ ⭕ 作 多 ❌ 数 増 ❌ 絶対 落 作 getter 41
  19. 遠 場所 大 ⭕ 範囲 広 組 合 欠 ؕ

    検出 ⭕ 数 減 対象 減 ❌ 遅 準備 大変 ❌紛 大 ❌ૂ 欠 ؕ 起 場合 ❌ 欠 ؕ 検出 原因特定 難 42
  20. 遠 場所 長 菜ṟ 米 ௫ 作ۀ 細 操作 難

    ۙ 方 細 振 回 時 他 当 43
  21. 話ʁ 言 葉 知 文脈 話 形 必要 縦軸 数

    3 決 性質 踏 見 欠 ؕ 見 単位 見 道具 見 見 考 話 44
  22. 範囲 道具 考 言 欠 ؕ 見 存在 所 ۙ

    見 道具 少 具体例 話 46
  23. 注意: Spring7/SpringBoot4間ۙ 使 道具 変更 具体的 名 使 方 今知

    道具 使 合 同様 道具 維持 道具 使 時 気 配 大枠 変 47
  24. 実装 存在 欠 ؕ ૂ 実装 欠 ؕ 自 分

    実装 対 存在 欠 ؕ ૂ 得 人 間 実装 AI 実装 ؚ 欠 ؕ 入 得 53
  25. 考 検出 存在 担保 欠 ؕ Կ ʁ 対象 担

    ʁ 方 ؚ Կ ʁ 包ؚ 検出 ʁ 58
  26. 解答例 対象 Controller 全体 入 指定 Controller 入 ڝ合 起因

    不具合 検出 一部 手 前 ؚ 関 欠 ؕ 検出 Service以降 ؚ Service 副作用 永続Խ 依存 振 舞 検証 59
  27. 解答例 包ؚ 代替 場合 包ؚ 手 前 準 使用 必然的

    動作 必要 実 行 時間 大 伸 多 厳 単純 E2E 十 分 60
  28. 見 欠 ؕ例 実装 欠 ؕ 仕様上 欠 ؕ 本質的複雑性

    注力 偶有的複雑性 実装依存 ؚ 上 識別 66
  29. 設計 嫌 気配 言 使用 不٢ ೏ 設計 Repository ؚ

    生 成 面倒 他 色 ʑ SpringTest ׳ 一律導入 設計 67
  30. 見 欠 ؕ例 @Service 付 起動時 E2E 包ؚ ؚ 検出

    修正 一 行足 大 Өڹ Service AOP 欠 ؕ ԣ断 個別 68
  31. 使 道具 SpringTest 時 自 動 fl yway OCI SpringBootTest

    Testcontainers DockerCompose 他 方法 h2database 設計 DDL 管理 h2database 使 厳 使 非常 軽量 高 速 選択肢 入 71
  32. 絡 SpringTest 実 行 前後 Transactional 実 行 後 仕組

    管理 行 推奨 他 Өڹ 扱 独立性 持 検索 Өڹ 行 終了 時 戻 動作 方 多 72
  33. 二択 結Ռ MockRestServiceServer 高 速 HTTP 処理 差 替 範囲

    漏 認識 使用 選択肢 色 ʑ OCI 立 上 同一JVM 立 上 同一JVM 方 高 速 障֐ 少 OCI 別 流用 78
  34. 変更 場合 追Ճ 場合 MessageListener Controller 代 MessageListener 扱 導入

    際 他 関連 役割分担 考 際 追Ճ 役割 Կ Կ 考 考 方 81
  35. 83

  36. 全体 対象 実施 本番 同製品 採用 E2E 類似 可能 使

    道具 @SpringBootTest + @AutoCon fi gureMockMvc 文脈 @WebMvcTest 使 Repository以降 前述 同 Service domain logic Repository 遠 84
  37. 86

  38. 前述 Controller 除 使 道具 @SpringBootTest Repository以降 前述 同 Controller

    単独 前述 行 E2E 上位 任 一 前 包ؚ 準備 比較 複雑 正常系 正常系 作 厳 87
  39. 89

  40. 文 式 役 立 言 文 式 状 گ ك

    例: `LocalDate.parse("2013-02-29")` ʁ 仕事 覚 確 大事 91
  41. 文 式 ؆単 済 jshell 使 Java 言 語 JSL

    安定 他 ؚ 新機能 不安 学習 ڍ動 変 可能性 欠 ؕ ܨ 可能性 1文 抽出 92
  42. private 言 出 private 話 解決 色 ʑ Կ度 出

    話題 Կ度 話 思 ק 得 変更可能 状態 損 方法 避 妥ڠ案 可視性 緩 一般的 可視 性 緩 ൚用解 93
  43. private private 思 向 合 private 言 語Խ 理由 独立

    言 語Խ 理由 public 経由 方 理由 理由 思 悩 必要 素直 書 private 可視性 ࿪ 読 上 ӽ 94
  44. 道具 選定 限 技術 積 重要 使用 道具 使 道具

    知識 要ٻ 程度 知識 必要 線引 難 道具 追随 必要 96
  45. 小 ʁ 思 大 作 欠 ؕ 多 小 足

    動 部品 組 合 基本 動 部品 起 97
  46. 多 ʁ 対象以外 Կ 代替 呼 ೃ染 極論実 行 時刻

    本物 未来 使 Կ 使 考 使 参照 https://irof.hateblo.jp/entry/2019/07/18/140046 98
  47. ʁ 万能解 大 不安定 一 欠 ؕ 複数 落 悪

    兆候 即 初期 想定 合 ك 欠 ؕ 偏在 性質 適合 変 作 傾向 xUTP 参照 99
  48. Java null Java 言 語上 参照型 null 全 参照型引数 null

    渡 検討 必要 全 戻 値型 参照型 場合 null 可能性 考慮 必要 102
  49. null 世ք 目指 軽量 口 頭 実現 人 間 null

    存在 Java 使用 開発者 広 受 入 一 般的 null 使 人 入 替 ੬弱 運用 仕組 導入 検討 104
  50. 仕組 導入 基本的 JSpecify null 明 示 以前 引数 回

    JSpecify module-info 記述 便利 module使 話 package-info 書 別扱 宣 言 後 IDE 警告 標準機能 検証 対Ԡ 進 105
  51. null null 存在 面倒 対象 引数 null 渡 必要 漏

    規約 必要 排除 null 欠 ؕ 存在 不要 Ձ値 注力 話 null 限 有効 106
  52. 他 開発者 被 操作 同 ؍点 Կ 差 ڐ容 被

    健全 一方 当然 ਹ 開発者 合理的 組 合 担保 場合 突 合 考 必要 出 ੗ 分 役割分担 整理 戦略 話 必要 知識 手 伸 109
  53. 他 ڑ離ײ 開発者 遠 場所 大 先 ڍ 色 濃

    出 同 欠 ؕ 開発者 見 110
  54. 考 方 他 欠 ؕ 見 場合 開発者 見 理由

    課題 開発者 վ善 ૂ 一 開発 設計 前 欠 ؕ 存在 得 言 考 方 111