@k2works/claude-code-booster 4.4.1 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/bin/claude-code-booster +2 -2
  2. package/lib/assets/.claude/agents/xp-architect.md +250 -250
  3. package/lib/assets/.claude/agents/xp-executive.md +207 -207
  4. package/lib/assets/.claude/agents/xp-interaction-designer.md +239 -239
  5. package/lib/assets/.claude/agents/xp-product-manager.md +245 -245
  6. package/lib/assets/.claude/agents/xp-programmer.md +268 -268
  7. package/lib/assets/.claude/agents/xp-project-manager.md +229 -229
  8. package/lib/assets/.claude/agents/xp-technical-writer.md +224 -224
  9. package/lib/assets/.claude/agents/xp-tester.md +265 -265
  10. package/lib/assets/.claude/agents/xp-user-representative.md +204 -204
  11. package/lib/assets/.claude/skills/analyzing-business-case/SKILL.md +148 -148
  12. package/lib/assets/.claude/skills/analyzing-business-strategy/SKILL.md +277 -277
  13. package/lib/assets/.claude/skills/analyzing-review/SKILL.md +174 -174
  14. package/lib/assets/.claude/skills/creating-iteration-report/SKILL.md +210 -210
  15. package/lib/assets/.claude/skills/creating-release-report/SKILL.md +161 -161
  16. package/lib/assets/.claude/skills/developing-review/SKILL.md +175 -175
  17. package/lib/assets/.claude/skills/developing-uiux-review/SKILL.md +207 -207
  18. package/lib/assets/.claude/skills/generating-bmc/SKILL.md +123 -123
  19. package/lib/assets/.claude/skills/operating-qt/SKILL.md +147 -147
  20. package/lib/assets/.claude/skills/operating-review/SKILL.md +171 -171
  21. package/lib/assets/.claude/skills/operating-script/SKILL.md +145 -145
  22. package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +168 -168
  23. package/lib/assets/.claude/skills/practicing-getting-start-tdd/SKILL.md +266 -266
  24. package/lib/assets/.claude/skills/validating-iteration-plan/SKILL.md +54 -54
  25. package/lib/assets/.devcontainer/devcontainer.json +1 -1
  26. package/lib/assets/.gitattributes +0 -2
  27. package/lib/assets/CLAUDE.md +193 -193
  28. package/lib/assets/Dockerfile +1 -6
  29. package/lib/assets/README.md +0 -16
  30. package/lib/assets/docs/article/functional-desgin-ppp/clojure/01-immutability-and-data-transformation.md +1 -1
  31. package/lib/assets/docs/article/functional-desgin-ppp/clojure/15-gossiping-bus-drivers.md +1 -1
  32. package/lib/assets/docs/article/functional-desgin-ppp/clojure/20-pattern-interactions.md +1 -1
  33. package/lib/assets/docs/article/functional-desgin-ppp/clojure/21-best-practices.md +6 -6
  34. package/lib/assets/docs/article/functional-desgin-ppp/clojure/22-oo-to-fp-migration.md +3 -3
  35. package/lib/assets/docs/article/functional-desgin-ppp/clojure/index.md +22 -22
  36. package/lib/assets/docs/article/functional-desgin-ppp/elixir/01-immutability-and-data-transformation.md +1 -1
  37. package/lib/assets/docs/article/functional-desgin-ppp/elixir/index.md +22 -22
  38. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/01-immutability-and-data-transformation.md +1 -1
  39. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/15-gossiping-bus-drivers.md +1 -1
  40. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/17-video-rental-system.md +1 -1
  41. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/19-wator-simulation.md +1 -1
  42. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/21-best-practices.md +2 -2
  43. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/22-oo-to-fp-migration.md +5 -5
  44. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/index.md +22 -22
  45. package/lib/assets/docs/article/functional-desgin-ppp/haskell/15-gossiping-bus-drivers.md +1 -1
  46. package/lib/assets/docs/article/functional-desgin-ppp/haskell/20-pattern-interactions.md +1 -1
  47. package/lib/assets/docs/article/functional-desgin-ppp/rust/01-immutability-and-data-transformation.md +1 -1
  48. package/lib/assets/docs/article/functional-desgin-ppp/rust/index.md +22 -22
  49. package/lib/assets/docs/article/functional-desgin-ppp/scala/01-immutability-and-data-transformation.md +1 -1
  50. package/lib/assets/docs/article/functional-desgin-ppp/scala/15-gossiping-bus-drivers.md +1 -1
  51. package/lib/assets/docs/article/functional-desgin-ppp/scala/21-best-practices.md +3 -3
  52. package/lib/assets/docs/article/functional-desgin-ppp/scala/22-oo-to-fp-migration.md +3 -3
  53. package/lib/assets/docs/article/functional-desgin-ppp/scala/index.md +22 -22
  54. package/lib/assets/docs/article/getting-start-tdd/integration/04-type-system-comparison.md +2 -2
  55. package/lib/assets/docs/article/getting-start-tdd/integration/06-learning-roadmap.md +8 -8
  56. package/lib/assets/docs/article/getting-start-tdd/ruby/11-immutable-data-and-pipeline.md +2 -2
  57. package/lib/assets/docs/article/grokkingfp/all/part-2-ch03-immutable-data.md +3 -3
  58. package/lib/assets/docs/article/grokkingfp/all/part-3-ch06-option.md +4 -4
  59. package/lib/assets/docs/article/grokkingfp/all/writing-plan.md +8 -8
  60. package/lib/assets/docs/article/grokkingfp/elixir/part-1.md +1 -1
  61. package/lib/assets/docs/article/grokkingfp/elixir/part-5.md +1 -1
  62. package/lib/assets/docs/article/grokkingfp/elixir/part-6.md +1 -1
  63. package/lib/assets/docs/article/grokkingfp/fsharp/part-6.md +1 -1
  64. package/lib/assets/docs/article/grokkingfp/haskell/part-4.md +1 -1
  65. package/lib/assets/docs/article/grokkingfp/haskell/part-6.md +1 -1
  66. package/lib/assets/docs/article/grokkingfp/java/part-1.md +1 -1
  67. package/lib/assets/docs/article/grokkingfp/java/part-2.md +4 -4
  68. package/lib/assets/docs/article/grokkingfp/java/part-6.md +2 -2
  69. package/lib/assets/docs/article/grokkingfp/python/part-1.md +3 -3
  70. package/lib/assets/docs/article/grokkingfp/ruby/part-1.md +1 -1
  71. package/lib/assets/docs/article/grokkingfp/ruby/part-6.md +1 -1
  72. package/lib/assets/docs/article/grokkingfp/rust/part-4.md +1 -1
  73. package/lib/assets/docs/article/grokkingfp/scala/part-1.md +1 -1
  74. package/lib/assets/docs/article/grokkingfp/scala/part-3.md +1 -1
  75. package/lib/assets/docs/article/grokkingfp/scala/part-6.md +1 -1
  76. package/lib/assets/docs/article/grokkingfp/typescript/part-1.md +1 -1
  77. package/lib/assets/docs/article/grokkingfp/typescript/part-4.md +1 -1
  78. package/lib/assets/docs/article/grokkingfp/typescript/part-6.md +1 -1
  79. package/lib/assets/docs/article/index.md +39 -39
  80. package/lib/assets/docs/design/index.md +44 -44
  81. package/lib/assets/docs/index.md +33 -33
  82. package/lib/assets/docs/operation/index.md +16 -16
  83. package/lib/assets/docs/reference/CodexCLIMCP/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/343/203/225/343/203/255/343/203/274.md +546 -546
  84. package/lib/assets/docs/reference/SonarQube/343/203/255/343/203/274/343/202/253/343/203/253/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +1 -1
  85. package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1 -1
  86. package/lib/assets/docs/reference/Vim/346/223/215/344/275/234/343/203/236/343/203/213/343/203/245/343/202/242/343/203/253.md +13 -0
  87. package/lib/assets/docs/reference/images/BMC.drawio.svg +3 -3
  88. package/lib/assets/docs/reference//347/265/214/345/226/266/346/210/246/347/225/245/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +566 -566
  89. package/lib/assets/docs/requirements/index.md +17 -17
  90. package/lib/assets/docs/strategy/index.md +17 -17
  91. package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273.md +327 -327
  92. package/lib/assets/docs/template//343/203/252/343/203/252/343/203/274/343/202/271/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +275 -275
  93. package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +513 -513
  94. package/lib/assets/ops/docker/sonarqube-local/docker-compose.yml +57 -57
  95. package/lib/assets/ops/nix/shells/.tmux.conf +2 -2
  96. package/lib/assets/ops/nix/shells/.vimrc +15 -2
  97. package/lib/assets/ops/nix/shells/shell.nix +1 -0
  98. package/package.json +1 -1
  99. package/lib/assets/.envrc +0 -1
@@ -72,7 +72,7 @@ funcs --> effects : 境界で実行
72
72
 
73
73
  **ポイント**:
74
74
 
75
-
75
+
76
76
  - プレーンなマップを使用(クラスではなく)
77
77
  - 必要最小限のフィールド
78
78
  - 明確な命名
@@ -93,7 +93,7 @@ funcs --> effects : 境界で実行
93
93
 
94
94
  **原則**:
95
95
 
96
-
96
+
97
97
  - 1つの関数は1つのことを行う
98
98
  - 入力から出力への純粋な変換
99
99
  - 副作用なし
@@ -121,7 +121,7 @@ funcs --> effects : 境界で実行
121
121
 
122
122
  **スレッドマクロ `->` の活用**:
123
123
 
124
-
124
+
125
125
  - データの流れが明確
126
126
  - 各ステップが独立
127
127
  - デバッグしやすい
@@ -147,7 +147,7 @@ funcs --> effects : 境界で実行
147
147
 
148
148
  **検証関数のパターン**:
149
149
 
150
-
150
+
151
151
  - 述語関数(`?` で終わる)を使用
152
152
  - 合成可能な小さな検証
153
153
  - 明確なエラー条件
@@ -173,7 +173,7 @@ funcs --> effects : 境界で実行
173
173
 
174
174
  **イミュータビリティの利点**:
175
175
 
176
-
176
+
177
177
  - 元のデータは変更されない
178
178
  - 履歴の追跡が容易
179
179
  - 並行処理が安全
@@ -196,7 +196,7 @@ funcs --> effects : 境界で実行
196
196
 
197
197
  **純粋関数の条件**:
198
198
 
199
-
199
+
200
200
  1. 同じ入力に対して常に同じ出力
201
201
  2. 副作用がない
202
202
  3. 外部状態に依存しない
@@ -81,7 +81,7 @@ inherit --> compose : 変換
81
81
 
82
82
  **問題点**:
83
83
 
84
-
84
+
85
85
  - 内部状態が可変
86
86
  - テストが困難(状態に依存)
87
87
  - 履歴の追跡が難しい
@@ -123,7 +123,7 @@ inherit --> compose : 変換
123
123
 
124
124
  **利点**:
125
125
 
126
-
126
+
127
127
  - 元のデータは不変
128
128
  - テストが容易(入力 → 出力)
129
129
  - 完全な履歴を保持
@@ -253,7 +253,7 @@ rectangle "フェーズ3" {
253
253
 
254
254
  **利点**:
255
255
 
256
-
256
+
257
257
  - 完全な監査証跡
258
258
  - 任意の時点の状態を再構築可能
259
259
  - デバッグが容易
@@ -10,21 +10,21 @@
10
10
 
11
11
  1. [不変性とデータ変換](./01-immutability-and-data-transformation.md)
12
12
 
13
-
13
+
14
14
  - 不変データ構造の重要性
15
15
  - データ変換パイプライン
16
16
  - 副作用の分離
17
17
 
18
18
  2. [関数合成と高階関数](./02-function-composition.md)
19
19
 
20
-
20
+
21
21
  - 関数合成の基本
22
22
  - 部分適用とカリー化
23
23
  - 高階関数の活用
24
24
 
25
25
  3. [多態性の実現方法](./03-polymorphism.md)
26
26
 
27
-
27
+
28
28
  - マルチメソッドによるディスパッチ
29
29
  - プロトコルとレコード
30
30
  - マルチメソッド vs プロトコルの使い分け
@@ -33,21 +33,21 @@
33
33
 
34
34
  4. [Clojure Spec による仕様定義](./04-clojure-spec.md)
35
35
 
36
-
36
+
37
37
  - データ構造の仕様定義
38
38
  - 関数仕様の定義(fdef)
39
39
  - 実行時検証と自動テスト生成
40
40
 
41
41
  5. [プロパティベーステスト](./05-property-based-testing.md)
42
42
 
43
-
43
+
44
44
  - test.check の基本
45
45
  - ジェネレータの作成
46
46
  - プロパティの定義と検証
47
47
 
48
48
  6. [テスト駆動開発と関数型プログラミング](./06-tdd-in-functional.md)
49
49
 
50
-
50
+
51
51
  - Red-Green-Refactor サイクル
52
52
  - テストファーストの関数設計
53
53
  - リファクタリングと不変性
@@ -56,7 +56,7 @@
56
56
 
57
57
  7. [Composite パターン](./07-composite-pattern.md)
58
58
 
59
-
59
+
60
60
  - 個別オブジェクトと複合オブジェクトの統一的な扱い
61
61
  - Shape(図形)の移動・拡大を統一インターフェースで操作
62
62
  - Switchable(スイッチ)のグループ化と一括操作
@@ -64,7 +64,7 @@
64
64
 
65
65
  8. [Decorator パターン](./08-decorator-pattern.md)
66
66
 
67
-
67
+
68
68
  - 機能の動的な追加
69
69
  - JournaledShape: 操作履歴の記録(ジャーナリング)
70
70
  - 関数デコレータ: ログ、リトライ、キャッシュ
@@ -72,7 +72,7 @@
72
72
 
73
73
  9. [Adapter パターン](./09-adapter-pattern.md)
74
74
 
75
-
75
+
76
76
  - インターフェースの変換
77
77
  - VariableLightAdapter: 可変強度ライトをオン/オフに適応
78
78
  - データフォーマットアダプター: 新旧フォーマット変換
@@ -82,7 +82,7 @@
82
82
 
83
83
  10. [Strategy パターン](./10-strategy-pattern.md)
84
84
 
85
-
85
+
86
86
  - アルゴリズムをカプセル化し交換可能にする
87
87
  - 料金計算: 通常・割引・会員・数量割引の各戦略
88
88
  - 関数型アプローチ: 高階関数による戦略の合成
@@ -90,7 +90,7 @@
90
90
 
91
91
  11. [Command パターン](./11-command-pattern.md)
92
92
 
93
-
93
+
94
94
  - 操作をデータとしてカプセル化
95
95
  - テキストコマンド: 挿入・削除・置換
96
96
  - キャンバスコマンド: 図形の追加・削除・移動
@@ -98,7 +98,7 @@
98
98
 
99
99
  12. [Visitor パターン](./12-visitor-pattern.md)
100
100
 
101
-
101
+
102
102
  - データ構造と操作の分離
103
103
  - JSON/XML 変換 Visitor の実装
104
104
  - 面積・周囲長計算 Visitor
@@ -108,7 +108,7 @@
108
108
 
109
109
  13. [Abstract Factory パターン](./13-abstract-factory-pattern.md)
110
110
 
111
-
111
+
112
112
  - 関連するオブジェクトのファミリーを一貫して生成
113
113
  - ShapeFactory: Standard/Outlined/Filled の各実装
114
114
  - UIFactory: プラットフォーム別 UI コンポーネント生成
@@ -116,7 +116,7 @@
116
116
 
117
117
  14. [Abstract Server パターン](./14-abstract-server-pattern.md)
118
118
 
119
-
119
+
120
120
  - 依存関係逆転の原則(DIP)の実現
121
121
  - Switchable: Light/Fan/Motor の統一インターフェース
122
122
  - Repository: データアクセスの抽象化
@@ -126,7 +126,7 @@
126
126
 
127
127
  15. [ゴシップ好きなバスの運転手](./15-gossiping-bus-drivers.md)
128
128
 
129
-
129
+
130
130
  - バス運転手が停留所で噂を共有するシミュレーション
131
131
  - 無限シーケンス(cycle)による循環ルート表現
132
132
  - 集合演算による噂の伝播
@@ -134,28 +134,28 @@
134
134
 
135
135
  16. [給与計算システム](./16-payroll-system.md)
136
136
 
137
-
137
+
138
138
  - ドメインモデリング
139
139
  - 支払いスケジュールと給与タイプ
140
140
  - Clojure Spec によるデータ検証
141
141
 
142
142
  17. [レンタルビデオシステム](./17-video-rental-system.md)
143
143
 
144
-
144
+
145
145
  - 料金計算ロジックの設計
146
146
  - ポリシーパターンの適用
147
147
  - テキスト/HTML フォーマッターの実装
148
148
 
149
149
  18. [並行処理システム](./18-concurrency-system.md)
150
150
 
151
-
151
+
152
152
  - Clojure エージェントによる非同期処理
153
153
  - 状態機械パターン
154
154
  - イベント駆動アーキテクチャ
155
155
 
156
156
  19. [Wa-Tor シミュレーション](./19-wator-simulation.md)
157
157
 
158
-
158
+
159
159
  - 捕食者-被食者モデルの実装
160
160
  - セルオートマトンとマルチメソッド
161
161
  - GUI との統合(Quil)
@@ -165,21 +165,21 @@
165
165
 
166
166
  20. [パターン間の相互作用](./20-pattern-interactions.md)
167
167
 
168
-
168
+
169
169
  - Composite と Decorator の組み合わせ
170
170
  - Command と Observer の連携
171
171
  - 複合的なアーキテクチャ設計
172
172
 
173
173
  21. [関数型デザインのベストプラクティス](./21-best-practices.md)
174
174
 
175
-
175
+
176
176
  - データ中心設計
177
177
  - 純粋関数と副作用の分離
178
178
  - テスト可能な設計
179
179
 
180
180
  22. [オブジェクト指向から関数型への移行](./22-oo-to-fp-migration.md)
181
181
 
182
-
182
+
183
183
  - 既存コードのリファクタリング戦略
184
184
  - 段階的な移行アプローチ
185
185
  - 共存と統合
@@ -316,7 +316,7 @@ end
316
316
 
317
317
  Stream の利点:
318
318
 
319
-
319
+
320
320
  - 中間リストを作成しない
321
321
  - 遅延評価により必要な要素のみ処理
322
322
  - メモリ効率が良い
@@ -10,21 +10,21 @@
10
10
 
11
11
  1. [不変性とデータ変換](./01-immutability-and-data-transformation.md)
12
12
 
13
-
13
+
14
14
  - マップと構造体による不変データ
15
15
  - パイプ演算子によるデータ変換
16
16
  - Enum と Stream による遅延評価
17
17
 
18
18
  2. [関数合成と高階関数](./02-function-composition.md)
19
19
 
20
-
20
+
21
21
  - 無名関数とキャプチャ演算子
22
22
  - 関数合成のパターン
23
23
  - 高階関数の活用
24
24
 
25
25
  3. [多態性の実現方法](./03-polymorphism.md)
26
26
 
27
-
27
+
28
28
  - プロトコルによる多態性
29
29
  - ビヘイビアとコールバック
30
30
  - パターンマッチングによる型の切り替え
@@ -33,21 +33,21 @@
33
33
 
34
34
  4. [データ検証](./04-data-validation.md)
35
35
 
36
-
36
+
37
37
  - Ecto.Changeset によるバリデーション
38
38
  - カスタムバリデータの作成
39
39
  - with 式によるエラーハンドリング
40
40
 
41
41
  5. [プロパティベーステスト](./05-property-based-testing.md)
42
42
 
43
-
43
+
44
44
  - StreamData の基本
45
45
  - ジェネレータの作成
46
46
  - プロパティの定義と検証
47
47
 
48
48
  6. [TDD と関数型プログラミング](./06-tdd-functional.md)
49
49
 
50
-
50
+
51
51
  - ExUnit によるテスト
52
52
  - Red-Green-Refactor サイクル
53
53
  - ドキュメントテスト(doctest)
@@ -56,21 +56,21 @@
56
56
 
57
57
  7. [Composite パターン](./07-composite-pattern.md)
58
58
 
59
-
59
+
60
60
  - 再帰的なデータ構造
61
61
  - ネストした構造の操作
62
62
  - アキュムレータを使った走査
63
63
 
64
64
  8. [Decorator パターン](./08-decorator-pattern.md)
65
65
 
66
-
66
+
67
67
  - 関数合成によるデコレーション
68
68
  - 高階関数でのラッピング
69
69
  - マクロによる振る舞いの追加
70
70
 
71
71
  9. [Adapter パターン](./09-adapter-pattern.md)
72
72
 
73
-
73
+
74
74
  - 関数アダプター
75
75
  - プロトコル変換
76
76
  - レガシーコードとの統合
@@ -79,21 +79,21 @@
79
79
 
80
80
  10. [Strategy パターン](./10-strategy-pattern.md)
81
81
 
82
-
82
+
83
83
  - 第一級関数としての戦略
84
84
  - モジュールによる戦略実装
85
85
  - 動的な戦略切り替え
86
86
 
87
87
  11. [Command パターン](./11-command-pattern.md)
88
88
 
89
-
89
+
90
90
  - 不変コマンドデータ
91
91
  - コマンドの履歴と Undo
92
92
  - GenServer によるコマンド管理
93
93
 
94
94
  12. [Visitor パターン](./12-visitor-pattern.md)
95
95
 
96
-
96
+
97
97
  - パターンマッチによる訪問
98
98
  - プロトコルベースのビジター
99
99
  - Enum.reduce による走査
@@ -102,14 +102,14 @@
102
102
 
103
103
  13. [Abstract Factory パターン](./13-abstract-factory-pattern.md)
104
104
 
105
-
105
+
106
106
  - 関数ファクトリー
107
107
  - モジュールベースの生成
108
108
  - 設定による依存性注入
109
109
 
110
110
  14. [Abstract Server パターン](./14-abstract-server-pattern.md)
111
111
 
112
-
112
+
113
113
  - ビヘイビアによる抽象化
114
114
  - 実装の差し替え
115
115
  - テスタブルな設計
@@ -118,35 +118,35 @@
118
118
 
119
119
  15. [ゴシップ好きなバスの運転手](./15-gossiping-bus-drivers.md)
120
120
 
121
-
121
+
122
122
  - Agent による状態管理
123
123
  - シミュレーションの実装
124
124
  - 再帰的な処理
125
125
 
126
126
  16. [給与計算システム](./16-payroll-system.md)
127
127
 
128
-
128
+
129
129
  - ドメインモデリング
130
130
  - 多態的な計算
131
131
  - レポート生成
132
132
 
133
133
  17. [レンタルビデオシステム](./17-video-rental-system.md)
134
134
 
135
-
135
+
136
136
  - 状態遷移の管理
137
137
  - イベントソーシング
138
138
  - ビジネスルールの実装
139
139
 
140
140
  18. [並行処理システム](./18-concurrency-system.md)
141
141
 
142
-
142
+
143
143
  - GenServer による状態管理
144
144
  - Task による並行実行
145
145
  - OTP パターン
146
146
 
147
147
  19. [Wa-Tor シミュレーション](./19-wator-simulation.md)
148
148
 
149
-
149
+
150
150
  - セルオートマトン
151
151
  - 不変グリッドの更新
152
152
  - プロセスベースのシミュレーション
@@ -155,14 +155,14 @@
155
155
 
156
156
  20. [パターン間の相互作用](./20-pattern-interactions.md)
157
157
 
158
-
158
+
159
159
  - Composite + Decorator
160
160
  - Command + Observer
161
161
  - パターンの組み合わせ
162
162
 
163
163
  21. [ベストプラクティス](./21-best-practices.md)
164
164
 
165
-
165
+
166
166
  - データ中心設計
167
167
  - 純粋関数の分離
168
168
  - OTP パターンの活用
@@ -170,7 +170,7 @@
170
170
 
171
171
  22. [OO から FP への移行](./22-oo-to-fp-migration.md)
172
172
 
173
-
173
+
174
174
  - 移行戦略(Strangler Fig、アダプター)
175
175
  - イベントソーシング
176
176
  - 段階的な関数抽出
@@ -276,7 +276,7 @@ let processItemsEfficiently items =
276
276
 
277
277
  `Seq` の利点:
278
278
 
279
-
279
+
280
280
  - 中間コレクションを作成しない
281
281
  - 必要な分だけ処理(遅延評価)
282
282
  - メモリ効率が良い
@@ -58,7 +58,7 @@ type Driver =
58
58
 
59
59
  ポイント:
60
60
 
61
-
61
+
62
62
  - `Route` はリストで保持し、`Position` でインデックスを管理
63
63
  - 噂は `Set<string>` として管理(集合演算が容易)
64
64
 
@@ -167,7 +167,7 @@ module Points =
167
167
 
168
168
  ポイントルール:
169
169
 
170
-
170
+
171
171
  - 通常のレンタル: 1ポイント
172
172
  - 新作2日以上: 2ポイント(ボーナス)
173
173
 
@@ -370,7 +370,7 @@ end note
370
370
 
371
371
  典型的なシナリオ:
372
372
 
373
-
373
+
374
374
  1. 魚の個体数が増加
375
375
  2. サメの餌が増え、サメも増加
376
376
  3. サメが増えすぎて魚が減少
@@ -78,7 +78,7 @@ and OrderStatus =
78
78
 
79
79
  **ポイント**:
80
80
 
81
-
81
+
82
82
  - プレーンなレコードを使用(クラスではなく)
83
83
  - 必要最小限のフィールド
84
84
  - 明確な命名
@@ -100,7 +100,7 @@ module Order =
100
100
 
101
101
  **原則**:
102
102
 
103
-
103
+
104
104
  - 1つの関数は1つのことを行う
105
105
  - 入力から出力への純粋な変換
106
106
  - 副作用なし
@@ -77,7 +77,7 @@ type AccountOO(id: string, initialBalance: decimal) =
77
77
 
78
78
  **問題点**:
79
79
 
80
-
80
+
81
81
  - 内部状態が可変
82
82
  - テストが困難(状態に依存)
83
83
  - 履歴の追跡が難しい
@@ -133,7 +133,7 @@ module Account =
133
133
 
134
134
  **改善点**:
135
135
 
136
-
136
+
137
137
  - 状態が不変
138
138
  - 元のデータは変更されない
139
139
  - Result 型でエラーを表現
@@ -177,7 +177,7 @@ let getName (animal: Animal) : string =
177
177
 
178
178
  **利点**:
179
179
 
180
-
180
+
181
181
  - 新しい動物を追加すると、コンパイラがすべての `match` を更新するよう警告
182
182
  - 関数を追加しても既存のコードに影響なし
183
183
  - パターンマッチングによる網羅性チェック
@@ -219,7 +219,7 @@ let createInMemoryRepo<'T> (getId: 'T -> string) : Repository<'T> =
219
219
 
220
220
  **利点**:
221
221
 
222
-
222
+
223
223
  - テスト用のモックが簡単
224
224
  - 部分的な実装が可能
225
225
  - 関数を引数として渡せる
@@ -264,7 +264,7 @@ let replay (events: AccountEvent list) : Account =
264
264
 
265
265
  **利点**:
266
266
 
267
-
267
+
268
268
  - 完全な履歴を保持
269
269
  - 任意の時点の状態を再構築可能
270
270
  - 監査ログとして使用可能