@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
@@ -22,14 +22,14 @@ Java ──→ Python
22
22
 
23
23
  **Java を最初に学ぶ理由**:
24
24
 
25
-
25
+
26
26
  - 静的型付けと OOP の概念が明確に分かれている
27
27
  - JUnit 5 の構造が TDD の基本パターンを学ぶのに最適
28
28
  - エコシステムが成熟しており、学習リソースが豊富
29
29
 
30
30
  **Python を 2 番目に学ぶ理由**:
31
31
 
32
-
32
+
33
33
  - Java との対比で動的型付けの利点と欠点を体感できる
34
34
  - pytest のシンプルさが TDD の本質を理解させる
35
35
  - マルチパラダイムへの橋渡し
@@ -55,7 +55,7 @@ TypeScript ──→ Ruby ──→ Go or Rust
55
55
 
56
56
  **Go と Rust はどちらか一方を選択、または順に学習**:
57
57
 
58
-
58
+
59
59
  - **Go**: シンプルさを重視する場合。インターフェースの構造的部分型が新鮮
60
60
  - **Rust**: 型安全性を深く理解したい場合。所有権システムが根本的に新しい
61
61
 
@@ -82,14 +82,14 @@ F# ──→ Scala ──→ Elixir or Clojure ──→ Haskell
82
82
 
83
83
  **F# を FP の入口に選ぶ理由**:
84
84
 
85
-
85
+
86
86
  - C# と同じ .NET ランタイム上で動作し、既存知識を活かせる
87
87
  - 判別共用体とパターンマッチングが FP の核心を教えてくれる
88
88
  - パイプライン演算子がデータフローの思考法を身につけさせる
89
89
 
90
90
  **Haskell を最後に学ぶ理由**:
91
91
 
92
-
92
+
93
93
  - 純粋関数型の概念(モナド、型クラス)は他の FP 言語の基礎があると理解しやすい
94
94
  - 他の言語で「なぜ FP が有用か」を体感した後に、最も厳密な FP を学ぶ
95
95
 
@@ -193,21 +193,21 @@ PHP と C# は上記のフェーズに含まれていませんが、以下のタ
193
193
 
194
194
  **フェーズ 1**:
195
195
 
196
-
196
+
197
197
  - TDD の Red-Green-Refactor サイクルを体に染み込ませる
198
198
  - テストを「先に」書く習慣を確立する
199
199
  - 静的型付けと動的型付けの違いを体感する
200
200
 
201
201
  **フェーズ 2**:
202
202
 
203
-
203
+
204
204
  - 同じ FizzBuzz 仕様を異なる言語で実装し、「何が同じで何が違うか」を意識する
205
205
  - 各言語のイディオムを尊重する(Go のシンプルさ、Ruby の表現力)
206
206
  - リンターの指摘を通じて「その言語らしいコード」を学ぶ
207
207
 
208
208
  **フェーズ 3**:
209
209
 
210
-
210
+
211
211
  - 「なぜ不変データが有用か」を自分の言葉で説明できるようになる
212
212
  - パターンマッチングの威力を体感する
213
213
  - モナドを「怖いもの」ではなく「便利な道具」として理解する
@@ -20,7 +20,7 @@ end
20
20
 
21
21
  `dup.freeze` のパターンにより:
22
22
 
23
-
23
+
24
24
  - `dup` で元の配列を変更しない
25
25
  - `freeze` で内部配列の変更を禁止
26
26
 
@@ -173,7 +173,7 @@ end
173
173
 
174
174
  `then` を使うことで、処理の流れが上から下へ自然に読めます:
175
175
 
176
-
176
+
177
177
  1. `(1..@count)` — 1 から count の Range を作成
178
178
  2. `.map { ... }` — 各数値を FizzBuzzValue に変換
179
179
  3. `.then { ... }` — 結果の配列を FizzBuzzList でラップ
@@ -980,15 +980,15 @@ rectangle "Level 4: 慣習的" #LightCoral {
980
980
 
981
981
  1. **take/drop 系**: Haskell, Clojure, Elixir, Scala, Java (Vavr), Ruby
982
982
 
983
-
983
+
984
984
  - 関数型言語の伝統的なスタイル。意図が明確
985
985
  2. **インデックス記法系**: Python `[:]`, Rust `[..]`
986
986
 
987
-
987
+
988
988
  - 最も簡潔。Python のスライス記法は特に強力
989
989
  3. **メソッドチェーン系**: TypeScript `.slice()`, C# `.Skip().Take()`
990
990
 
991
-
991
+
992
992
  - OOP スタイルとの親和性が高い
993
993
 
994
994
  ### 発見 3: replan パターンの共通構造
@@ -624,19 +624,19 @@ rectangle "Level 4: nil ベース + 言語機能" #LightCoral {
624
624
 
625
625
  1. **内包表記系**: Scala (for), Haskell (do), C# (LINQ), Clojure (when-let)
626
626
 
627
-
627
+
628
628
  - ネストが平坦化され、最も可読性が高い
629
629
  2. **演算子系**: Rust (`?`)
630
630
 
631
-
631
+
632
632
  - 最も簡潔で、通常のコードに自然に溶け込む
633
633
  3. **パイプ系**: F# (`|>`), Elixir (`with`), TypeScript (`pipe`)
634
634
 
635
-
635
+
636
636
  - データの流れが明確
637
637
  4. **flatMap チェーン系**: Java, Python, Ruby
638
638
 
639
-
639
+
640
640
  - 糖衣構文がなく、ネストが深くなりやすい
641
641
 
642
642
  ### 発見 3: Option は Part II の flatMap の延長線上にある
@@ -178,7 +178,7 @@
178
178
  1. 全 11 言語の part-2.md の第 3 章部分を読み込む
179
179
  2. 不変データ構造の実現方法を 4 カテゴリに分類
180
180
 
181
-
181
+
182
182
  - 言語組み込み(Haskell, Clojure, Elixir, F#)
183
183
  - デフォルト不変(Rust)
184
184
  - case class / record(Scala, Java 16+, C# 9+)
@@ -220,7 +220,7 @@
220
220
  2. map/filter/fold の共通概念を解説
221
221
  3. パイプライン記法の違いを比較
222
222
 
223
-
223
+
224
224
  - Elixir/F# パイプ演算子 `|>`
225
225
  - Haskell 関数合成 `.` / `$`
226
226
  - Clojure スレッディングマクロ `->` / `->>`
@@ -263,7 +263,7 @@
263
263
  2. flatMap/bind の共通概念(コンテキスト付き計算の連鎖)を解説
264
264
  3. 糖衣構文の比較
265
265
 
266
-
266
+
267
267
  - Scala for 内包表記
268
268
  - Haskell do 記法
269
269
  - C# LINQ クエリ式
@@ -324,7 +324,7 @@
324
324
  2. Option/Maybe の共通概念(null の型安全な代替)を解説
325
325
  3. 実装方式を 3 カテゴリに分類
326
326
 
327
-
327
+
328
328
  - 言語組み込み: Haskell Maybe, Rust Option, F# Option
329
329
  - 標準ライブラリ: Scala Option, Java Optional
330
330
  - サードパーティ: fp-ts Option, returns Maybe, dry-monads Maybe, LanguageExt Option, Vavr Option
@@ -399,7 +399,7 @@
399
399
  1. 全 11 言語の part-4.md の第 8 章部分を読み込む
400
400
  2. IO の抽象化を 4 レベルに分類
401
401
 
402
-
402
+
403
403
  - Level 4: 言語組み込み IO モナド(Haskell)
404
404
  - Level 3: ライブラリ IO 型(Scala cats-effect, C# LanguageExt Eff)
405
405
  - Level 2: 軽量 IO コンテナ(Python returns IO, TypeScript fp-ts Task, Ruby dry Task)
@@ -441,7 +441,7 @@
441
441
  2. 遅延評価とストリームの共通概念を解説
442
442
  3. ストリーム処理の実装アプローチを比較
443
443
 
444
-
444
+
445
445
  - 専用ライブラリ: Scala fs2, Haskell conduit
446
446
  - 言語組み込み: Elixir Stream, Rust Iterator, Python ジェネレータ, Ruby Enumerator::Lazy
447
447
  - ライブラリ拡張: TypeScript AsyncIterable, Java Vavr Stream, C# StreamT, F# Seq
@@ -492,7 +492,7 @@
492
492
  1. 全 11 言語の part-5.md を読み込む(最大ボリューム)
493
493
  2. 並行処理モデルを 5 カテゴリに分類
494
494
 
495
-
495
+
496
496
  - Actor モデル: Elixir OTP/GenServer
497
497
  - STM(Software Transactional Memory): Haskell STM, Clojure ref
498
498
  - Fiber / 軽量スレッド: Scala Fiber, Java Virtual Thread
@@ -536,7 +536,7 @@
536
536
  2. TravelGuide アプリの共通アーキテクチャを抽出
537
537
  3. DI(依存性注入)の関数型アプローチを比較
538
538
 
539
-
539
+
540
540
  - Reader モナド: Scala, TypeScript
541
541
  - 型クラス / trait: Haskell, Rust
542
542
  - Protocol / ビヘイビア: Python, Elixir
@@ -423,7 +423,7 @@ end
423
423
 
424
424
  この関数は:
425
425
 
426
-
426
+
427
427
  - 6人以上のグループ → 20% のチップ
428
428
  - 1-5人のグループ → 10% のチップ
429
429
  - 0人(空リスト) → 0% のチップ
@@ -480,7 +480,7 @@ time < 200_000 # true(200ms未満)
480
480
 
481
481
  主なコンポーネント:
482
482
 
483
-
483
+
484
484
  - **GenServer**: 汎用サーバープロセス
485
485
  - **Supervisor**: プロセスの監視と再起動
486
486
  - **Application**: アプリケーションの管理
@@ -859,7 +859,7 @@ p5 --> p6
859
859
 
860
860
  以下の要件で `DataAccess` を拡張してください:
861
861
 
862
-
862
+
863
863
  - 新しいコールバック `find_restaurants_near_location` を追加
864
864
  - 戻り値は `{:ok, [Restaurant.t()]} | {:error, String.t()}`
865
865
 
@@ -759,7 +759,7 @@ p5 --> p6
759
759
 
760
760
  以下の要件で `IDataAccess` を拡張してください:
761
761
 
762
-
762
+
763
763
  - 新しいメソッド `FindHotelsNearLocation` を追加
764
764
  - 戻り値は `Async<Result<Hotel list, string>>`
765
765
 
@@ -89,7 +89,7 @@ castTheDie = randomRIO (1, 6)
89
89
 
90
90
  Scala との違い:
91
91
 
92
-
92
+
93
93
  - Scala: `IO.delay(random.nextInt(6) + 1)` で副作用をラップ
94
94
  - Haskell: `randomRIO` 自体が `IO Int` を返す
95
95
 
@@ -660,7 +660,7 @@ p5 --> p6
660
660
 
661
661
  以下の要件で `DataAccess` を拡張してください:
662
662
 
663
-
663
+
664
664
  - 新しいフィールド `findHotelsNearLocation` を追加
665
665
  - 戻り値は `IO (Either String [Hotel])`
666
666
 
@@ -343,7 +343,7 @@ public class TipCalculator {
343
343
 
344
344
  この関数は:
345
345
 
346
-
346
+
347
347
  - 6人以上のグループ → 20% のチップ
348
348
  - 1-5人のグループ → 10% のチップ
349
349
  - 0人(空リスト) → 0% のチップ
@@ -629,14 +629,14 @@ List<String> inside = radiuses.flatMap(r ->
629
629
 
630
630
  1. **イミュータブルなデータ操作**
631
631
 
632
-
632
+
633
633
  - Vavr の `List` は不変
634
634
  - `take`, `drop`, `append`, `appendAll` で新しいリストを作成
635
635
  - 元のデータは変更されない
636
636
 
637
637
  2. **高階関数**
638
638
 
639
-
639
+
640
640
  - `map`: 各要素を変換
641
641
  - `filter`: 条件に合う要素を抽出
642
642
  - `foldLeft`: 畳み込み
@@ -644,13 +644,13 @@ List<String> inside = radiuses.flatMap(r ->
644
644
 
645
645
  3. **関数を返す関数**
646
646
 
647
-
647
+
648
648
  - `Predicate<T>` を返すことで再利用可能なフィルタを作成
649
649
  - 部分適用のような効果を得られる
650
650
 
651
651
  4. **flatMap**
652
652
 
653
-
653
+
654
654
  - ネストしたリストを平坦化
655
655
  - `map` + `flatten` の組み合わせ
656
656
  - リストサイズが増減する変換に対応
@@ -417,7 +417,7 @@ public static int guideScore(Guide guide) {
417
417
 
418
418
  重要なポイント:
419
419
 
420
-
420
+
421
421
  - **オーバーフロー防止**: `long` を使用して大きな数値の合計を安全に計算
422
422
  - **上限値の設定**: 各スコア成分に最大値を設定してスコアを 0-100 の範囲に
423
423
 
@@ -1168,7 +1168,7 @@ p5 --> p6
1168
1168
 
1169
1169
  以下の要件で `DataAccess` を拡張してください:
1170
1170
 
1171
-
1171
+
1172
1172
  - 新しいメソッド `findHotelsNearLocation` を追加
1173
1173
  - 戻り値は `IO<List<Hotel>>`
1174
1174
 
@@ -147,7 +147,7 @@ class ShoppingCartBad:
147
147
 
148
148
  このコードの問題:
149
149
 
150
-
150
+
151
151
  1. `get_items()` が内部リストへの参照を返すため、外部から変更可能
152
152
  2. `_book_added` フラグと実際のアイテムの整合性が崩れる可能性がある
153
153
 
@@ -165,7 +165,7 @@ discount = get_discount_percentage(items) # 5
165
165
 
166
166
  この純粋関数版の利点:
167
167
 
168
-
168
+
169
169
  - 状態を持たない
170
170
  - 同じ入力には常に同じ出力
171
171
  - テストが容易
@@ -186,7 +186,7 @@ def get_tip_percentage(names: list[str]) -> int:
186
186
 
187
187
  この関数は:
188
188
 
189
-
189
+
190
190
  - 6人以上のグループ → 20% のチップ
191
191
  - 1-5人のグループ → 10% のチップ
192
192
  - 0人(空リスト) → 0% のチップ
@@ -351,7 +351,7 @@ end
351
351
 
352
352
  この関数は:
353
353
 
354
-
354
+
355
355
  - 6人以上のグループ → 20% のチップ
356
356
  - 1-5人のグループ → 10% のチップ
357
357
  - 0人(空リスト) → 0% のチップ
@@ -1207,7 +1207,7 @@ p5 --> p6
1207
1207
 
1208
1208
  以下の要件で `DataAccess` を拡張してください:
1209
1209
 
1210
-
1210
+
1211
1211
  - 新しいメソッド `find_restaurants_near_location` を追加
1212
1212
  - 戻り値は `IO[{ success: Boolean, value/error: ... }]`
1213
1213
 
@@ -87,7 +87,7 @@ pub fn possible_meetings(
87
87
 
88
88
  純粋関数は:
89
89
 
90
-
90
+
91
91
  - テストが容易
92
92
  - 並列実行が安全
93
93
  - 結果を予測可能
@@ -297,7 +297,7 @@ object TipCalculator {
297
297
 
298
298
  この関数は:
299
299
 
300
-
300
+
301
301
  - 6人以上のグループ → 20% のチップ
302
302
  - 1-5人のグループ → 10% のチップ
303
303
  - 0人(空リスト) → 0% のチップ
@@ -522,7 +522,7 @@ case class Artist(
522
522
 
523
523
  この設計には問題があります:
524
524
 
525
-
525
+
526
526
  - `isActive` が `true` の場合、`yearsActiveEnd` は何を入れるべき?
527
527
  - 無効な状態(`isActive = true` かつ `yearsActiveEnd = 2020`)を作れてしまう
528
528
 
@@ -709,7 +709,7 @@ p5 --> p6
709
709
 
710
710
  以下の要件で `DataAccess` を拡張してください:
711
711
 
712
-
712
+
713
713
  - 新しいメソッド `findHotelsNearLocation` を追加
714
714
  - 戻り値は `IO[Either[String, List[Hotel]]]`
715
715
 
@@ -274,7 +274,7 @@ const getTipPercentage = (names: readonly string[]): number => {
274
274
 
275
275
  この関数は:
276
276
 
277
-
277
+
278
278
  - 6人以上のグループ → 20% のチップ
279
279
  - 1-5人のグループ → 10% のチップ
280
280
  - 0人(空リスト) → 0% のチップ
@@ -48,7 +48,7 @@ end note
48
48
 
49
49
  fp-ts では:
50
50
 
51
-
51
+
52
52
  - `IO<A>` は「実行すると `A` 型の値を返す同期的な副作用のある計算」
53
53
  - `Task<A>` は「実行すると `Promise<A>` を返す非同期的な副作用のある計算」
54
54
  - IO/Task 値を作成しただけでは副作用は発生しない
@@ -763,7 +763,7 @@ p5 --> p6
763
763
 
764
764
  以下の要件で `DataAccess` を拡張してください:
765
765
 
766
-
766
+
767
767
  - 新しいメソッド `findRestaurantsNearLocation` を追加
768
768
  - 戻り値は `Task<Either<string, readonly Restaurant[]>>`
769
769
 
@@ -1,39 +1,39 @@
1
- # 記事
2
-
3
- 学習用の記事シリーズ一覧です。
4
-
5
- 複数言語を横断して比較しながら、TDD、関数型プログラミング、並行処理、設計パターン、データベース設計を段階的に学べます。
6
-
7
- ## 記事シリーズ
8
-
9
- | シリーズ | テーマ | 言語数 | 特徴 |
10
- |------|------|------|------|
11
- | [テスト駆動開発から始めるプログラミング入門](getting-start-tdd/index.md) | TDD を軸にした言語入門 | 14 | 共通題材で Red-Green-Refactor を体験し、言語ごとの設計思想を比較できます。 |
12
- | [Grokking Functional Programming](grokkingfp/index.md) | 関数型プログラミング | 11 | 純粋関数、イミュータブルデータ、Option/Either、IO、並行処理まで体系的に学べます。 |
13
- | [Grokking Concurrency](grokking-concurrency/index.md) | 並行処理プログラミング | 8 | スレッド、同期、非同期、ノンブロッキング I/O、分散並列処理を多言語で比較できます。 |
14
- | [関数型デザイン - 原則、パターン、実践](functional-desgin-ppp/index.md) | 関数型デザインパターン | 6 | OOP のデザインパターンを関数型パラダイムでどう表現するかを実践的に学べます。 |
15
- | [実践データベース設計:基幹業務システム編](practical-database-design/index.md) | データベース設計 | - | 販売管理・財務会計・生産管理の基幹業務システムを題材に、業務フローとデータモデルを体系的に学べます。 |
16
-
17
- ## 学び方のガイド
18
-
19
- - TDD を起点に言語の基礎を学ぶ場合は、[テスト駆動開発から始めるプログラミング入門](getting-start-tdd/index.md) から読み始めてください。
20
- - 関数型プログラミングを体系的に学ぶ場合は、[Grokking Functional Programming](grokkingfp/index.md) を参照してください。
21
- - 並行処理を重点的に学ぶ場合は、[Grokking Concurrency](grokking-concurrency/index.md) を参照してください。
22
- - 設計原則やパターンを深く学ぶ場合は、[関数型デザイン - 原則、パターン、実践](functional-desgin-ppp/index.md) を参照してください。
23
- - データベース設計を実践的に学ぶ場合は、[実践データベース設計:基幹業務システム編](practical-database-design/index.md) を参照してください。
24
-
25
- ## 多言語統合解説
26
-
27
- シリーズ横断で比較しながら読みたい場合は、以下の統合記事が入口になります。
28
-
29
- - [Grokking Functional Programming 多言語統合解説](grokkingfp/all/index.md)
30
- - [Grokking Concurrency 多言語統合解説](grokking-concurrency/all/index.md)
31
- - [関数型デザイン 多言語統合解説](functional-desgin-ppp/all/index.md)
32
-
33
- ## 参考元
34
-
35
- - [getting-started-tdd](https://github.com/k2works/getting-started-tdd)
36
- - [functional-desgin-ppp](https://github.com/k2works/functional-desgin-ppp)
37
- - [grokking-concurrency-exercise](https://github.com/k2works/grokking-concurrency-exercise)
38
- - [grokkingfp-excersice](https://github.com/k2works/grokkingfp-excersice)
39
- - [practical-database-design](https://github.com/k2works/practical-database-design)
1
+ # 記事
2
+
3
+ 学習用の記事シリーズ一覧です。
4
+
5
+ 複数言語を横断して比較しながら、TDD、関数型プログラミング、並行処理、設計パターン、データベース設計を段階的に学べます。
6
+
7
+ ## 記事シリーズ
8
+
9
+ | シリーズ | テーマ | 言語数 | 特徴 |
10
+ |------|------|------|------|
11
+ | [テスト駆動開発から始めるプログラミング入門](getting-start-tdd/index.md) | TDD を軸にした言語入門 | 14 | 共通題材で Red-Green-Refactor を体験し、言語ごとの設計思想を比較できます。 |
12
+ | [Grokking Functional Programming](grokkingfp/index.md) | 関数型プログラミング | 11 | 純粋関数、イミュータブルデータ、Option/Either、IO、並行処理まで体系的に学べます。 |
13
+ | [Grokking Concurrency](grokking-concurrency/index.md) | 並行処理プログラミング | 8 | スレッド、同期、非同期、ノンブロッキング I/O、分散並列処理を多言語で比較できます。 |
14
+ | [関数型デザイン - 原則、パターン、実践](functional-desgin-ppp/index.md) | 関数型デザインパターン | 6 | OOP のデザインパターンを関数型パラダイムでどう表現するかを実践的に学べます。 |
15
+ | [実践データベース設計:基幹業務システム編](practical-database-design/index.md) | データベース設計 | - | 販売管理・財務会計・生産管理の基幹業務システムを題材に、業務フローとデータモデルを体系的に学べます。 |
16
+
17
+ ## 学び方のガイド
18
+
19
+ - TDD を起点に言語の基礎を学ぶ場合は、[テスト駆動開発から始めるプログラミング入門](getting-start-tdd/index.md) から読み始めてください。
20
+ - 関数型プログラミングを体系的に学ぶ場合は、[Grokking Functional Programming](grokkingfp/index.md) を参照してください。
21
+ - 並行処理を重点的に学ぶ場合は、[Grokking Concurrency](grokking-concurrency/index.md) を参照してください。
22
+ - 設計原則やパターンを深く学ぶ場合は、[関数型デザイン - 原則、パターン、実践](functional-desgin-ppp/index.md) を参照してください。
23
+ - データベース設計を実践的に学ぶ場合は、[実践データベース設計:基幹業務システム編](practical-database-design/index.md) を参照してください。
24
+
25
+ ## 多言語統合解説
26
+
27
+ シリーズ横断で比較しながら読みたい場合は、以下の統合記事が入口になります。
28
+
29
+ - [Grokking Functional Programming 多言語統合解説](grokkingfp/all/index.md)
30
+ - [Grokking Concurrency 多言語統合解説](grokking-concurrency/all/index.md)
31
+ - [関数型デザイン 多言語統合解説](functional-desgin-ppp/all/index.md)
32
+
33
+ ## 参考元
34
+
35
+ - [getting-started-tdd](https://github.com/k2works/getting-started-tdd)
36
+ - [functional-desgin-ppp](https://github.com/k2works/functional-desgin-ppp)
37
+ - [grokking-concurrency-exercise](https://github.com/k2works/grokking-concurrency-exercise)
38
+ - [grokkingfp-excersice](https://github.com/k2works/grokkingfp-excersice)
39
+ - [practical-database-design](https://github.com/k2works/practical-database-design)
@@ -1,44 +1,44 @@
1
- # 設計
2
-
3
- 設計ドキュメントです。要件定義に基づき、バックエンド・フロントエンド・インフラのアーキテクチャから、データモデル、ドメインモデル、UI、テスト戦略、非機能要件、運用要件まで包括的に設計しています。
4
-
5
- ## ドキュメント一覧
6
-
7
- ### アーキテクチャ
8
-
9
- | ドキュメント | 概要 | 状況 |
10
- | :--- | :--- | :--- |
11
- | バックエンドアーキテクチャ | バックエンドの責務分割、レイヤ、連携方式を整理 | 未作成 |
12
- | フロントエンドアーキテクチャ | UI 構成、状態管理、画面遷移を整理 | 未作成 |
13
- | インフラストラクチャ | 実行環境、ネットワーク、デプロイ構成を整理 | 未作成 |
14
-
15
- ### モデル設計
16
-
17
- | ドキュメント | 概要 | 状況 |
18
- | :--- | :--- | :--- |
19
- | データモデル設計 | 概念・論理データモデル、テーブル定義、ER 図を整理 | 未作成 |
20
- | ドメインモデル設計 | コンテキスト、集約、エンティティ、値オブジェクトを整理 | 未作成 |
21
-
22
- ### UI/UX設計
23
-
24
- | ドキュメント | 概要 | 状況 |
25
- | :--- | :--- | :--- |
26
- | UI 設計 | 画面設計、画面遷移図、コンポーネント設計を整理 | 未作成 |
27
-
28
- ### 品質・運用
29
-
30
- | ドキュメント | 概要 | 状況 |
31
- | :--- | :--- | :--- |
32
- | テスト戦略 | テストピラミッド、ツール、品質ゲートを整理 | 未作成 |
33
- | 非機能要件 | 性能、可用性、セキュリティ、保守性、拡張性を整理 | 未作成 |
34
- | 運用要件 | 監視、バックアップ、デプロイ、障害対応を整理 | 未作成 |
35
-
36
- ### その他
37
-
38
- | ドキュメント | 概要 | 状況 |
39
- | :--- | :--- | :--- |
40
- | 技術スタック選定 | 技術スタック一覧とバージョン管理方針を整理 | 未作成 |
41
-
42
- ## 補足
43
-
44
- - 実ドキュメントを追加したら、この一覧と `docs/index.md` を更新します。
1
+ # 設計
2
+
3
+ 設計ドキュメントです。要件定義に基づき、バックエンド・フロントエンド・インフラのアーキテクチャから、データモデル、ドメインモデル、UI、テスト戦略、非機能要件、運用要件まで包括的に設計しています。
4
+
5
+ ## ドキュメント一覧
6
+
7
+ ### アーキテクチャ
8
+
9
+ | ドキュメント | 概要 | 状況 |
10
+ | :--- | :--- | :--- |
11
+ | バックエンドアーキテクチャ | バックエンドの責務分割、レイヤ、連携方式を整理 | 未作成 |
12
+ | フロントエンドアーキテクチャ | UI 構成、状態管理、画面遷移を整理 | 未作成 |
13
+ | インフラストラクチャ | 実行環境、ネットワーク、デプロイ構成を整理 | 未作成 |
14
+
15
+ ### モデル設計
16
+
17
+ | ドキュメント | 概要 | 状況 |
18
+ | :--- | :--- | :--- |
19
+ | データモデル設計 | 概念・論理データモデル、テーブル定義、ER 図を整理 | 未作成 |
20
+ | ドメインモデル設計 | コンテキスト、集約、エンティティ、値オブジェクトを整理 | 未作成 |
21
+
22
+ ### UI/UX設計
23
+
24
+ | ドキュメント | 概要 | 状況 |
25
+ | :--- | :--- | :--- |
26
+ | UI 設計 | 画面設計、画面遷移図、コンポーネント設計を整理 | 未作成 |
27
+
28
+ ### 品質・運用
29
+
30
+ | ドキュメント | 概要 | 状況 |
31
+ | :--- | :--- | :--- |
32
+ | テスト戦略 | テストピラミッド、ツール、品質ゲートを整理 | 未作成 |
33
+ | 非機能要件 | 性能、可用性、セキュリティ、保守性、拡張性を整理 | 未作成 |
34
+ | 運用要件 | 監視、バックアップ、デプロイ、障害対応を整理 | 未作成 |
35
+
36
+ ### その他
37
+
38
+ | ドキュメント | 概要 | 状況 |
39
+ | :--- | :--- | :--- |
40
+ | 技術スタック選定 | 技術スタック一覧とバージョン管理方針を整理 | 未作成 |
41
+
42
+ ## 補足
43
+
44
+ - 実ドキュメントを追加したら、この一覧と `docs/index.md` を更新します。