@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.
- package/bin/claude-code-booster +2 -2
- package/lib/assets/.claude/agents/xp-architect.md +250 -250
- package/lib/assets/.claude/agents/xp-executive.md +207 -207
- package/lib/assets/.claude/agents/xp-interaction-designer.md +239 -239
- package/lib/assets/.claude/agents/xp-product-manager.md +245 -245
- package/lib/assets/.claude/agents/xp-programmer.md +268 -268
- package/lib/assets/.claude/agents/xp-project-manager.md +229 -229
- package/lib/assets/.claude/agents/xp-technical-writer.md +224 -224
- package/lib/assets/.claude/agents/xp-tester.md +265 -265
- package/lib/assets/.claude/agents/xp-user-representative.md +204 -204
- package/lib/assets/.claude/skills/analyzing-business-case/SKILL.md +148 -148
- package/lib/assets/.claude/skills/analyzing-business-strategy/SKILL.md +277 -277
- package/lib/assets/.claude/skills/analyzing-review/SKILL.md +174 -174
- package/lib/assets/.claude/skills/creating-iteration-report/SKILL.md +210 -210
- package/lib/assets/.claude/skills/creating-release-report/SKILL.md +161 -161
- package/lib/assets/.claude/skills/developing-review/SKILL.md +175 -175
- package/lib/assets/.claude/skills/developing-uiux-review/SKILL.md +207 -207
- package/lib/assets/.claude/skills/generating-bmc/SKILL.md +123 -123
- package/lib/assets/.claude/skills/operating-qt/SKILL.md +147 -147
- package/lib/assets/.claude/skills/operating-review/SKILL.md +171 -171
- package/lib/assets/.claude/skills/operating-script/SKILL.md +145 -145
- package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +168 -168
- package/lib/assets/.claude/skills/practicing-getting-start-tdd/SKILL.md +266 -266
- package/lib/assets/.claude/skills/validating-iteration-plan/SKILL.md +54 -54
- package/lib/assets/.devcontainer/devcontainer.json +1 -1
- package/lib/assets/.gitattributes +0 -2
- package/lib/assets/CLAUDE.md +193 -193
- package/lib/assets/Dockerfile +1 -6
- package/lib/assets/README.md +0 -16
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/01-immutability-and-data-transformation.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/15-gossiping-bus-drivers.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/20-pattern-interactions.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/21-best-practices.md +6 -6
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/22-oo-to-fp-migration.md +3 -3
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/index.md +22 -22
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/01-immutability-and-data-transformation.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/index.md +22 -22
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/01-immutability-and-data-transformation.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/15-gossiping-bus-drivers.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/17-video-rental-system.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/19-wator-simulation.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/21-best-practices.md +2 -2
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/22-oo-to-fp-migration.md +5 -5
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/index.md +22 -22
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/15-gossiping-bus-drivers.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/20-pattern-interactions.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/rust/01-immutability-and-data-transformation.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/rust/index.md +22 -22
- package/lib/assets/docs/article/functional-desgin-ppp/scala/01-immutability-and-data-transformation.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/scala/15-gossiping-bus-drivers.md +1 -1
- package/lib/assets/docs/article/functional-desgin-ppp/scala/21-best-practices.md +3 -3
- package/lib/assets/docs/article/functional-desgin-ppp/scala/22-oo-to-fp-migration.md +3 -3
- package/lib/assets/docs/article/functional-desgin-ppp/scala/index.md +22 -22
- package/lib/assets/docs/article/getting-start-tdd/integration/04-type-system-comparison.md +2 -2
- package/lib/assets/docs/article/getting-start-tdd/integration/06-learning-roadmap.md +8 -8
- package/lib/assets/docs/article/getting-start-tdd/ruby/11-immutable-data-and-pipeline.md +2 -2
- package/lib/assets/docs/article/grokkingfp/all/part-2-ch03-immutable-data.md +3 -3
- package/lib/assets/docs/article/grokkingfp/all/part-3-ch06-option.md +4 -4
- package/lib/assets/docs/article/grokkingfp/all/writing-plan.md +8 -8
- package/lib/assets/docs/article/grokkingfp/elixir/part-1.md +1 -1
- package/lib/assets/docs/article/grokkingfp/elixir/part-5.md +1 -1
- package/lib/assets/docs/article/grokkingfp/elixir/part-6.md +1 -1
- package/lib/assets/docs/article/grokkingfp/fsharp/part-6.md +1 -1
- package/lib/assets/docs/article/grokkingfp/haskell/part-4.md +1 -1
- package/lib/assets/docs/article/grokkingfp/haskell/part-6.md +1 -1
- package/lib/assets/docs/article/grokkingfp/java/part-1.md +1 -1
- package/lib/assets/docs/article/grokkingfp/java/part-2.md +4 -4
- package/lib/assets/docs/article/grokkingfp/java/part-6.md +2 -2
- package/lib/assets/docs/article/grokkingfp/python/part-1.md +3 -3
- package/lib/assets/docs/article/grokkingfp/ruby/part-1.md +1 -1
- package/lib/assets/docs/article/grokkingfp/ruby/part-6.md +1 -1
- package/lib/assets/docs/article/grokkingfp/rust/part-4.md +1 -1
- package/lib/assets/docs/article/grokkingfp/scala/part-1.md +1 -1
- package/lib/assets/docs/article/grokkingfp/scala/part-3.md +1 -1
- package/lib/assets/docs/article/grokkingfp/scala/part-6.md +1 -1
- package/lib/assets/docs/article/grokkingfp/typescript/part-1.md +1 -1
- package/lib/assets/docs/article/grokkingfp/typescript/part-4.md +1 -1
- package/lib/assets/docs/article/grokkingfp/typescript/part-6.md +1 -1
- package/lib/assets/docs/article/index.md +39 -39
- package/lib/assets/docs/design/index.md +44 -44
- package/lib/assets/docs/index.md +33 -33
- package/lib/assets/docs/operation/index.md +16 -16
- 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
- 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
- package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1 -1
- 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
- package/lib/assets/docs/reference/images/BMC.drawio.svg +3 -3
- 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
- package/lib/assets/docs/requirements/index.md +17 -17
- package/lib/assets/docs/strategy/index.md +17 -17
- 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
- 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
- package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +513 -513
- package/lib/assets/ops/docker/sonarqube-local/docker-compose.yml +57 -57
- package/lib/assets/ops/nix/shells/.tmux.conf +2 -2
- package/lib/assets/ops/nix/shells/.vimrc +15 -2
- package/lib/assets/ops/nix/shells/shell.nix +1 -0
- package/package.json +1 -1
- package/lib/assets/.envrc +0 -1
|
@@ -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
|
- 判別共用体(Discriminated Union)
|
|
29
29
|
- アクティブパターン
|
|
30
30
|
- 型拡張とインターフェース
|
|
@@ -33,21 +33,21 @@
|
|
|
33
33
|
|
|
34
34
|
4. [データ検証](./04-data-validation.md)
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
- Result 型によるエラーハンドリング
|
|
38
38
|
- Computation Expression
|
|
39
39
|
- カスタムバリデータの作成
|
|
40
40
|
|
|
41
41
|
5. [プロパティベーステスト](./05-property-based-testing.md)
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
|
|
44
44
|
- FsCheck の基本
|
|
45
45
|
- ジェネレータの作成
|
|
46
46
|
- プロパティの定義と検証
|
|
47
47
|
|
|
48
48
|
6. [TDD と関数型プログラミング](./06-tdd-functional.md)
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
- xUnit / Expecto によるテスト
|
|
52
52
|
- Red-Green-Refactor サイクル
|
|
53
53
|
- テストファーストの関数設計
|
|
@@ -56,21 +56,21 @@
|
|
|
56
56
|
|
|
57
57
|
7. [Composite パターン](./07-composite-pattern.md)
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
- 再帰的な判別共用体
|
|
61
61
|
- ツリー構造の表現
|
|
62
62
|
- fold による走査
|
|
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
|
- マクロコマンド
|
|
93
93
|
|
|
94
94
|
12. [Visitor パターン](./12-visitor-pattern.md)
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
- パターンマッチによる訪問
|
|
98
98
|
- fold ベースのビジター
|
|
99
99
|
- 拡張可能なビジター
|
|
@@ -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
|
- 不変状態の管理
|
|
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
|
- MailboxProcessor(Agent)
|
|
144
144
|
- 非同期ワークフロー
|
|
145
145
|
- 並行状態管理
|
|
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
|
- Computation Expression
|
|
168
168
|
- 関数デコレーター
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
|
|
171
171
|
22. [OO から FP への移行](./22-oo-to-fp-migration.md)
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
|
|
174
174
|
- 移行戦略
|
|
175
175
|
- イベントソーシング
|
|
176
176
|
- 段階的な関数抽出
|
|
@@ -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
|
- enum と代数的データ型
|
|
29
29
|
- trait による抽象化
|
|
30
30
|
- ジェネリクスと trait bounds
|
|
@@ -33,21 +33,21 @@
|
|
|
33
33
|
|
|
34
34
|
4. [データ検証](./04-data-validation.md)
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
- 型によるバリデーション
|
|
38
38
|
- Result によるエラーハンドリング
|
|
39
39
|
- カスタムバリデータの作成
|
|
40
40
|
|
|
41
41
|
5. [プロパティベーステスト](./05-property-based-testing.md)
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
|
|
44
44
|
- proptest の基本
|
|
45
45
|
- ジェネレータの作成
|
|
46
46
|
- プロパティの定義と検証
|
|
47
47
|
|
|
48
48
|
6. [TDD と関数型プログラミング](./06-tdd-and-functional.md)
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
- Rust 組み込みテストの活用
|
|
52
52
|
- Red-Green-Refactor サイクル
|
|
53
53
|
- テストファーストの関数設計
|
|
@@ -56,21 +56,21 @@
|
|
|
56
56
|
|
|
57
57
|
7. [Composite パターン](./07-composite-pattern.md)
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
- 再帰的なデータ構造
|
|
61
61
|
- enum によるツリー構造
|
|
62
62
|
- fold による走査
|
|
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
|
- マクロコマンド
|
|
93
93
|
|
|
94
94
|
12. [Visitor パターン](./12-visitor-pattern.md)
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
- match によるパターンマッチ
|
|
98
98
|
- fold ベースのビジター
|
|
99
99
|
- 拡張可能なビジター
|
|
@@ -102,14 +102,14 @@
|
|
|
102
102
|
|
|
103
103
|
13. [Abstract Factory パターン](./13-abstract-factory-pattern.md)
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
|
|
106
106
|
- 関数ファクトリー
|
|
107
107
|
- trait オブジェクトによる生成
|
|
108
108
|
- 依存性注入
|
|
109
109
|
|
|
110
110
|
14. [Abstract Server パターン](./14-abstract-server-pattern.md)
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
|
|
113
113
|
- trait による抽象化
|
|
114
114
|
- 実装の差し替え
|
|
115
115
|
- テスタブルな設計
|
|
@@ -118,35 +118,35 @@
|
|
|
118
118
|
|
|
119
119
|
15. [ゴシップ好きなバスの運転手](./15-gossiping-bus-drivers.md)
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
- 不変状態の管理
|
|
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
|
- Mutex と RwLock による状態管理
|
|
144
144
|
- チャネルによるメッセージパッシング
|
|
145
145
|
- async/await と Tokio
|
|
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
|
- 関数デコレーター
|
|
@@ -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
|
- 段階的な関数抽出
|
|
@@ -76,7 +76,7 @@ enum OrderStatus:
|
|
|
76
76
|
|
|
77
77
|
**ポイント**:
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
- case class を使用(不変性を保証)
|
|
81
81
|
- 必要最小限のフィールド
|
|
82
82
|
- 明確な命名
|
|
@@ -101,7 +101,7 @@ object OrderCalculations:
|
|
|
101
101
|
|
|
102
102
|
**原則**:
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
|
|
105
105
|
- 1つの関数は1つのことを行う
|
|
106
106
|
- 入力から出力への純粋な変換
|
|
107
107
|
- 副作用なし
|
|
@@ -188,7 +188,7 @@ object ImmutableUpdates:
|
|
|
188
188
|
|
|
189
189
|
**イミュータビリティの利点**:
|
|
190
190
|
|
|
191
|
-
|
|
191
|
+
|
|
192
192
|
- 元のデータは変更されない
|
|
193
193
|
- 履歴の追跡が容易
|
|
194
194
|
- 並行処理が安全
|
|
@@ -76,7 +76,7 @@ object OOStyle:
|
|
|
76
76
|
|
|
77
77
|
**問題点**:
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
- 内部状態が可変
|
|
81
81
|
- テストが困難(状態に依存)
|
|
82
82
|
- 履歴の追跡が難しい
|
|
@@ -124,7 +124,7 @@ object FPStyle:
|
|
|
124
124
|
|
|
125
125
|
**利点**:
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
|
|
128
128
|
- 元のデータは不変
|
|
129
129
|
- テストが容易(入力 → 出力)
|
|
130
130
|
- 完全な履歴を保持
|
|
@@ -276,7 +276,7 @@ val account = replayEvents(events) // balance: 700
|
|
|
276
276
|
|
|
277
277
|
**利点**:
|
|
278
278
|
|
|
279
|
-
|
|
279
|
+
|
|
280
280
|
- 完全な監査証跡
|
|
281
281
|
- 任意の時点の状態を再構築可能
|
|
282
282
|
- デバッグが容易
|
|
@@ -10,21 +10,21 @@
|
|
|
10
10
|
|
|
11
11
|
1. [不変性とデータ変換](./01-immutability-and-data-transformation.md)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
- case class と不変データ構造
|
|
15
15
|
- データ変換パイプライン
|
|
16
16
|
- 副作用の分離
|
|
17
17
|
|
|
18
18
|
2. [関数合成と高階関数](./02-function-composition.md)
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
- andThen と compose による関数合成
|
|
22
22
|
- カリー化と部分適用
|
|
23
23
|
- 高階関数の活用
|
|
24
24
|
|
|
25
25
|
3. [多態性の実現方法](./03-polymorphism.md)
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
- sealed trait と代数的データ型
|
|
29
29
|
- トレイトとミックスイン
|
|
30
30
|
- 型クラスによる既存型の拡張
|
|
@@ -33,21 +33,21 @@
|
|
|
33
33
|
|
|
34
34
|
4. [データ検証](./04-data-validation.md)
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
- 型によるバリデーション
|
|
38
38
|
- Either によるエラーハンドリング
|
|
39
39
|
- カスタムバリデータの作成
|
|
40
40
|
|
|
41
41
|
5. [プロパティベーステスト](./05-property-based-testing.md)
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
|
|
44
44
|
- ScalaCheck の基本
|
|
45
45
|
- ジェネレータの作成
|
|
46
46
|
- プロパティの定義と検証
|
|
47
47
|
|
|
48
48
|
6. [TDD と関数型プログラミング](./06-tdd-functional.md)
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
- ScalaTest によるテスト
|
|
52
52
|
- Red-Green-Refactor サイクル
|
|
53
53
|
- テストファーストの関数設計
|
|
@@ -56,21 +56,21 @@
|
|
|
56
56
|
|
|
57
57
|
7. [Composite パターン](./07-composite-pattern.md)
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
- 再帰的なデータ構造
|
|
61
61
|
- ADT によるツリー構造
|
|
62
62
|
- fold による走査
|
|
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
|
- マクロコマンド
|
|
93
93
|
|
|
94
94
|
12. [Visitor パターン](./12-visitor-pattern.md)
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
- パターンマッチによる訪問
|
|
98
98
|
- fold ベースのビジター
|
|
99
99
|
- 拡張可能なビジター
|
|
@@ -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
|
- 不変状態の管理
|
|
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
|
- 状態マシン
|
|
144
144
|
- イベントバス
|
|
145
145
|
- AtomicReference による同期
|
|
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
|
- IO モナド
|
|
168
168
|
- 関数デコレーター
|
|
@@ -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
|
- 段階的な関数抽出
|