@k2works/claude-code-booster 4.17.0 → 5.0.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 (755) hide show
  1. package/lib/assets/.claude/skills/apply-okf/SKILL.md +88 -0
  2. package/lib/assets/.claude/skills/apply-okf/evals/evals.json +8 -0
  3. package/lib/assets/.claude/skills/apply-okf/scripts/__pycache__/okf_apply.cpython-314.pyc +0 -0
  4. package/lib/assets/.claude/skills/apply-okf/scripts/okf_apply.py +397 -0
  5. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.json +20 -0
  6. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.md +13 -0
  7. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/eval_metadata.json +14 -0
  8. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/grading.json +39 -0
  9. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/001-db.md +12 -0
  10. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/002-cache-strategy.md +20 -0
  11. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/index.md +4 -0
  12. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/design/data-model.md +12 -0
  13. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/design/index.md +3 -0
  14. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/index.md +10 -0
  15. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/log.md +7 -0
  16. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/deploy-old.md +12 -0
  17. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/deploy.md +12 -0
  18. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/index.md +4 -0
  19. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +965 -0
  20. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/report.md +76 -0
  21. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/grading.json +39 -0
  22. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/001-db.md +12 -0
  23. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/002-cache-strategy.md +20 -0
  24. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/index.md +4 -0
  25. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/design/data-model.md +12 -0
  26. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/design/index.md +3 -0
  27. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/index.md +10 -0
  28. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/log.md +7 -0
  29. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/deploy-old.md +12 -0
  30. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/deploy.md +12 -0
  31. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/index.md +4 -0
  32. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +965 -0
  33. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/report.md +22 -0
  34. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/eval_metadata.json +13 -0
  35. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/grading.json +34 -0
  36. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/001-db.md +12 -0
  37. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/002-cache-strategy.md +11 -0
  38. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/index.md +3 -0
  39. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/design/data-model.md +14 -0
  40. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/design/index.md +3 -0
  41. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/index.md +10 -0
  42. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/log.md +7 -0
  43. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/deploy-old.md +12 -0
  44. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/deploy.md +12 -0
  45. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/index.md +4 -0
  46. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +965 -0
  47. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/report.md +61 -0
  48. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/grading.json +34 -0
  49. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/001-db.md +12 -0
  50. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/002-cache-strategy.md +11 -0
  51. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/index.md +3 -0
  52. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/design/data-model.md +13 -0
  53. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/design/index.md +3 -0
  54. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/index.md +10 -0
  55. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/log.md +7 -0
  56. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/deploy-old.md +12 -0
  57. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/deploy.md +12 -0
  58. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/index.md +4 -0
  59. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +965 -0
  60. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/report.md +18 -0
  61. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/eval_metadata.json +13 -0
  62. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/grading.json +34 -0
  63. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/001-db.md +12 -0
  64. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/002-cache-strategy.md +11 -0
  65. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/index.md +3 -0
  66. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/design/data-model.md +12 -0
  67. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/design/index.md +3 -0
  68. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/index.md +10 -0
  69. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/log.md +7 -0
  70. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/deploy-old.md +13 -0
  71. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/deploy.md +12 -0
  72. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/index.md +7 -0
  73. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +965 -0
  74. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/report.md +83 -0
  75. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/grading.json +34 -0
  76. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/001-db.md +12 -0
  77. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/002-cache-strategy.md +11 -0
  78. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/index.md +3 -0
  79. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/design/data-model.md +12 -0
  80. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/design/index.md +3 -0
  81. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/index.md +10 -0
  82. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/log.md +7 -0
  83. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/deploy-old.md +14 -0
  84. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/deploy.md +12 -0
  85. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/index.md +4 -0
  86. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +965 -0
  87. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/report.md +15 -0
  88. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/review.html +1325 -0
  89. package/lib/assets/.claude/skills/closing-iteration/SKILL.md +16 -0
  90. package/lib/assets/.claude/skills/creating-adr/SKILL.md +4 -0
  91. package/lib/assets/.claude/skills/creating-journal/SKILL.md +12 -1
  92. package/lib/assets/.claude/skills/migrating-okf/SKILL.md +149 -0
  93. package/lib/assets/.claude/skills/migrating-okf/evals/evals.json +23 -0
  94. package/lib/assets/.claude/skills/migrating-okf/scripts/__pycache__/okf_check.cpython-314.pyc +0 -0
  95. package/lib/assets/.claude/skills/migrating-okf/scripts/okf_check.py +468 -0
  96. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.json +20 -0
  97. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.md +13 -0
  98. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/eval_metadata.json +15 -0
  99. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/grading.json +44 -0
  100. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/adr/index.md +10 -0
  101. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/index.md +15 -0
  102. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/log.md +5 -0
  103. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +966 -0
  104. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference/index.md +6 -0
  105. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +261 -0
  106. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +480 -0
  107. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +681 -0
  108. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/report.md +85 -0
  109. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/grading.json +44 -0
  110. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/adr/index.md +8 -0
  111. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/index.md +11 -0
  112. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/log.md +7 -0
  113. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +964 -0
  114. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference/index.md +9 -0
  115. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +250 -0
  116. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +469 -0
  117. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +677 -0
  118. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/report.md +49 -0
  119. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/eval_metadata.json +13 -0
  120. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/grading.json +34 -0
  121. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/index.md +7 -0
  122. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/log.md +7 -0
  123. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/metrics/churn.md +9 -0
  124. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/metrics/income-statement.md +15 -0
  125. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/report.md +147 -0
  126. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/review.html +1325 -0
  127. package/lib/assets/.claude/skills/opening-iteration/SKILL.md +15 -0
  128. package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +4 -1
  129. package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +2 -0
  130. package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +3 -1
  131. package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +4 -1
  132. package/lib/assets/.claude/skills/planning-releases/SKILL.md +2 -0
  133. package/lib/assets/.env.example +9 -0
  134. package/lib/assets/CLAUDE.md +218 -216
  135. package/lib/assets/docs/article/functional-desgin-ppp/all/01-immutability-and-data-transformation.md +9 -0
  136. package/lib/assets/docs/article/functional-desgin-ppp/all/02-function-composition.md +9 -0
  137. package/lib/assets/docs/article/functional-desgin-ppp/all/03-polymorphism.md +9 -0
  138. package/lib/assets/docs/article/functional-desgin-ppp/all/04-data-validation.md +9 -0
  139. package/lib/assets/docs/article/functional-desgin-ppp/all/05-property-based-testing.md +9 -0
  140. package/lib/assets/docs/article/functional-desgin-ppp/all/06-tdd-and-functional.md +9 -0
  141. package/lib/assets/docs/article/functional-desgin-ppp/all/07-composite-pattern.md +9 -0
  142. package/lib/assets/docs/article/functional-desgin-ppp/all/08-decorator-pattern.md +10 -1
  143. package/lib/assets/docs/article/functional-desgin-ppp/all/09-adapter-pattern.md +9 -0
  144. package/lib/assets/docs/article/functional-desgin-ppp/all/10-strategy-pattern.md +9 -0
  145. package/lib/assets/docs/article/functional-desgin-ppp/all/11-command-pattern.md +9 -0
  146. package/lib/assets/docs/article/functional-desgin-ppp/all/12-visitor-pattern.md +9 -0
  147. package/lib/assets/docs/article/functional-desgin-ppp/all/13-abstract-factory-pattern.md +9 -0
  148. package/lib/assets/docs/article/functional-desgin-ppp/all/14-abstract-server-pattern.md +9 -0
  149. package/lib/assets/docs/article/functional-desgin-ppp/all/15-gossiping-bus-drivers.md +9 -0
  150. package/lib/assets/docs/article/functional-desgin-ppp/all/16-payroll-system.md +9 -0
  151. package/lib/assets/docs/article/functional-desgin-ppp/all/17-video-rental-system.md +9 -0
  152. package/lib/assets/docs/article/functional-desgin-ppp/all/18-concurrency-system.md +9 -0
  153. package/lib/assets/docs/article/functional-desgin-ppp/all/19-wa-tor-simulation.md +10 -1
  154. package/lib/assets/docs/article/functional-desgin-ppp/all/20-pattern-interactions.md +9 -0
  155. package/lib/assets/docs/article/functional-desgin-ppp/all/21-best-practices.md +9 -0
  156. package/lib/assets/docs/article/functional-desgin-ppp/all/22-oo-to-fp-migration.md +9 -0
  157. package/lib/assets/docs/article/functional-desgin-ppp/clojure/01-immutability-and-data-transformation.md +9 -0
  158. package/lib/assets/docs/article/functional-desgin-ppp/clojure/02-function-composition.md +9 -0
  159. package/lib/assets/docs/article/functional-desgin-ppp/clojure/03-polymorphism.md +9 -0
  160. package/lib/assets/docs/article/functional-desgin-ppp/clojure/04-clojure-spec.md +9 -0
  161. package/lib/assets/docs/article/functional-desgin-ppp/clojure/05-property-based-testing.md +9 -0
  162. package/lib/assets/docs/article/functional-desgin-ppp/clojure/06-tdd-in-functional.md +9 -0
  163. package/lib/assets/docs/article/functional-desgin-ppp/clojure/07-composite-pattern.md +9 -0
  164. package/lib/assets/docs/article/functional-desgin-ppp/clojure/08-decorator-pattern.md +9 -0
  165. package/lib/assets/docs/article/functional-desgin-ppp/clojure/09-adapter-pattern.md +9 -0
  166. package/lib/assets/docs/article/functional-desgin-ppp/clojure/10-strategy-pattern.md +9 -0
  167. package/lib/assets/docs/article/functional-desgin-ppp/clojure/11-command-pattern.md +9 -0
  168. package/lib/assets/docs/article/functional-desgin-ppp/clojure/12-visitor-pattern.md +9 -0
  169. package/lib/assets/docs/article/functional-desgin-ppp/clojure/13-abstract-factory-pattern.md +9 -0
  170. package/lib/assets/docs/article/functional-desgin-ppp/clojure/14-abstract-server-pattern.md +9 -0
  171. package/lib/assets/docs/article/functional-desgin-ppp/clojure/15-gossiping-bus-drivers.md +9 -0
  172. package/lib/assets/docs/article/functional-desgin-ppp/clojure/16-payroll-system.md +9 -0
  173. package/lib/assets/docs/article/functional-desgin-ppp/clojure/17-video-rental-system.md +9 -0
  174. package/lib/assets/docs/article/functional-desgin-ppp/clojure/18-concurrency-system.md +9 -0
  175. package/lib/assets/docs/article/functional-desgin-ppp/clojure/19-wator-simulation.md +9 -0
  176. package/lib/assets/docs/article/functional-desgin-ppp/clojure/20-pattern-interactions.md +9 -0
  177. package/lib/assets/docs/article/functional-desgin-ppp/clojure/21-best-practices.md +9 -0
  178. package/lib/assets/docs/article/functional-desgin-ppp/clojure/22-oo-to-fp-migration.md +9 -0
  179. package/lib/assets/docs/article/functional-desgin-ppp/clojure/index.md +3 -3
  180. package/lib/assets/docs/article/functional-desgin-ppp/elixir/01-immutability-and-data-transformation.md +9 -0
  181. package/lib/assets/docs/article/functional-desgin-ppp/elixir/02-function-composition.md +9 -0
  182. package/lib/assets/docs/article/functional-desgin-ppp/elixir/03-polymorphism.md +9 -0
  183. package/lib/assets/docs/article/functional-desgin-ppp/elixir/04-data-validation.md +9 -0
  184. package/lib/assets/docs/article/functional-desgin-ppp/elixir/05-property-based-testing.md +9 -0
  185. package/lib/assets/docs/article/functional-desgin-ppp/elixir/06-tdd-and-fp.md +9 -0
  186. package/lib/assets/docs/article/functional-desgin-ppp/elixir/07-effects-and-pure-functions.md +9 -0
  187. package/lib/assets/docs/article/functional-desgin-ppp/elixir/08-error-handling-strategies.md +9 -0
  188. package/lib/assets/docs/article/functional-desgin-ppp/elixir/09-io-and-external-systems.md +9 -0
  189. package/lib/assets/docs/article/functional-desgin-ppp/elixir/10-concurrency-patterns.md +9 -0
  190. package/lib/assets/docs/article/functional-desgin-ppp/elixir/11-command-pattern.md +9 -0
  191. package/lib/assets/docs/article/functional-desgin-ppp/elixir/12-visitor-pattern.md +9 -0
  192. package/lib/assets/docs/article/functional-desgin-ppp/elixir/13-abstract-factory-pattern.md +9 -0
  193. package/lib/assets/docs/article/functional-desgin-ppp/elixir/14-abstract-server-pattern.md +9 -0
  194. package/lib/assets/docs/article/functional-desgin-ppp/elixir/15-gossiping-bus-drivers.md +9 -0
  195. package/lib/assets/docs/article/functional-desgin-ppp/elixir/16-payroll-system.md +9 -0
  196. package/lib/assets/docs/article/functional-desgin-ppp/elixir/17-video-rental-system.md +9 -0
  197. package/lib/assets/docs/article/functional-desgin-ppp/elixir/18-concurrency-system.md +9 -0
  198. package/lib/assets/docs/article/functional-desgin-ppp/elixir/19-wator-simulation.md +9 -0
  199. package/lib/assets/docs/article/functional-desgin-ppp/elixir/20-pattern-interactions.md +9 -0
  200. package/lib/assets/docs/article/functional-desgin-ppp/elixir/21-best-practices.md +9 -0
  201. package/lib/assets/docs/article/functional-desgin-ppp/elixir/22-oo-to-fp-migration.md +9 -0
  202. package/lib/assets/docs/article/functional-desgin-ppp/elixir/index.md +22 -22
  203. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/01-immutability-and-data-transformation.md +9 -0
  204. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/02-function-composition.md +9 -0
  205. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/03-polymorphism.md +9 -0
  206. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/04-data-validation.md +9 -0
  207. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/05-property-based-testing.md +9 -0
  208. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/06-tdd-functional.md +9 -0
  209. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/07-composite-pattern.md +9 -0
  210. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/08-decorator-pattern.md +9 -0
  211. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/09-adapter-pattern.md +9 -0
  212. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/10-strategy-pattern.md +9 -0
  213. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/11-command-pattern.md +9 -0
  214. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/12-visitor-pattern.md +9 -0
  215. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/13-abstract-factory-pattern.md +9 -0
  216. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/14-abstract-server-pattern.md +9 -0
  217. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/15-gossiping-bus-drivers.md +9 -0
  218. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/16-payroll-system.md +9 -0
  219. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/17-video-rental-system.md +9 -0
  220. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/18-concurrency-system.md +9 -0
  221. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/19-wator-simulation.md +9 -0
  222. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/20-pattern-interactions.md +9 -0
  223. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/21-best-practices.md +9 -0
  224. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/22-oo-to-fp-migration.md +9 -0
  225. package/lib/assets/docs/article/functional-desgin-ppp/haskell/01-immutability-and-data-transformation.md +9 -0
  226. package/lib/assets/docs/article/functional-desgin-ppp/haskell/02-function-composition.md +9 -0
  227. package/lib/assets/docs/article/functional-desgin-ppp/haskell/03-polymorphism.md +9 -0
  228. package/lib/assets/docs/article/functional-desgin-ppp/haskell/04-data-validation.md +9 -0
  229. package/lib/assets/docs/article/functional-desgin-ppp/haskell/05-property-based-testing.md +9 -0
  230. package/lib/assets/docs/article/functional-desgin-ppp/haskell/06-tdd-functional.md +9 -0
  231. package/lib/assets/docs/article/functional-desgin-ppp/haskell/07-composite-pattern.md +9 -0
  232. package/lib/assets/docs/article/functional-desgin-ppp/haskell/08-decorator-pattern.md +9 -0
  233. package/lib/assets/docs/article/functional-desgin-ppp/haskell/09-adapter-pattern.md +9 -0
  234. package/lib/assets/docs/article/functional-desgin-ppp/haskell/10-strategy-pattern.md +9 -0
  235. package/lib/assets/docs/article/functional-desgin-ppp/haskell/11-command-pattern.md +9 -0
  236. package/lib/assets/docs/article/functional-desgin-ppp/haskell/12-visitor-pattern.md +9 -0
  237. package/lib/assets/docs/article/functional-desgin-ppp/haskell/13-abstract-factory-pattern.md +9 -0
  238. package/lib/assets/docs/article/functional-desgin-ppp/haskell/14-abstract-server-pattern.md +9 -0
  239. package/lib/assets/docs/article/functional-desgin-ppp/haskell/15-gossiping-bus-drivers.md +9 -0
  240. package/lib/assets/docs/article/functional-desgin-ppp/haskell/16-payroll-system.md +9 -0
  241. package/lib/assets/docs/article/functional-desgin-ppp/haskell/17-video-rental-system.md +9 -0
  242. package/lib/assets/docs/article/functional-desgin-ppp/haskell/18-concurrency-system.md +9 -0
  243. package/lib/assets/docs/article/functional-desgin-ppp/haskell/19-wator-simulation.md +9 -0
  244. package/lib/assets/docs/article/functional-desgin-ppp/haskell/20-pattern-interactions.md +9 -0
  245. package/lib/assets/docs/article/functional-desgin-ppp/haskell/21-best-practices.md +9 -0
  246. package/lib/assets/docs/article/functional-desgin-ppp/haskell/22-oo-to-fp-migration.md +9 -0
  247. package/lib/assets/docs/article/functional-desgin-ppp/rust/01-immutability-and-data-transformation.md +9 -0
  248. package/lib/assets/docs/article/functional-desgin-ppp/rust/02-function-composition.md +9 -0
  249. package/lib/assets/docs/article/functional-desgin-ppp/rust/03-polymorphism.md +9 -0
  250. package/lib/assets/docs/article/functional-desgin-ppp/rust/04-data-validation.md +9 -0
  251. package/lib/assets/docs/article/functional-desgin-ppp/rust/05-property-based-testing.md +9 -0
  252. package/lib/assets/docs/article/functional-desgin-ppp/rust/06-tdd-and-functional.md +9 -0
  253. package/lib/assets/docs/article/functional-desgin-ppp/rust/07-composite-pattern.md +9 -0
  254. package/lib/assets/docs/article/functional-desgin-ppp/rust/08-decorator-pattern.md +9 -0
  255. package/lib/assets/docs/article/functional-desgin-ppp/rust/09-adapter-pattern.md +9 -0
  256. package/lib/assets/docs/article/functional-desgin-ppp/rust/10-strategy-pattern.md +9 -0
  257. package/lib/assets/docs/article/functional-desgin-ppp/rust/11-command-pattern.md +9 -0
  258. package/lib/assets/docs/article/functional-desgin-ppp/rust/12-visitor-pattern.md +9 -0
  259. package/lib/assets/docs/article/functional-desgin-ppp/rust/13-abstract-factory-pattern.md +9 -0
  260. package/lib/assets/docs/article/functional-desgin-ppp/rust/14-abstract-server-pattern.md +9 -0
  261. package/lib/assets/docs/article/functional-desgin-ppp/rust/15-gossiping-bus-drivers.md +9 -0
  262. package/lib/assets/docs/article/functional-desgin-ppp/rust/16-payroll-system.md +9 -0
  263. package/lib/assets/docs/article/functional-desgin-ppp/rust/17-video-rental-system.md +9 -0
  264. package/lib/assets/docs/article/functional-desgin-ppp/rust/18-concurrency-system.md +9 -0
  265. package/lib/assets/docs/article/functional-desgin-ppp/rust/19-wator-simulation.md +9 -0
  266. package/lib/assets/docs/article/functional-desgin-ppp/rust/20-pattern-interactions.md +9 -0
  267. package/lib/assets/docs/article/functional-desgin-ppp/rust/21-best-practices.md +9 -0
  268. package/lib/assets/docs/article/functional-desgin-ppp/rust/22-oo-to-fp-migration.md +9 -0
  269. package/lib/assets/docs/article/functional-desgin-ppp/scala/01-immutability-and-data-transformation.md +9 -0
  270. package/lib/assets/docs/article/functional-desgin-ppp/scala/02-function-composition.md +9 -0
  271. package/lib/assets/docs/article/functional-desgin-ppp/scala/03-polymorphism.md +9 -0
  272. package/lib/assets/docs/article/functional-desgin-ppp/scala/04-data-validation.md +9 -0
  273. package/lib/assets/docs/article/functional-desgin-ppp/scala/05-property-based-testing.md +9 -0
  274. package/lib/assets/docs/article/functional-desgin-ppp/scala/06-tdd-functional.md +9 -0
  275. package/lib/assets/docs/article/functional-desgin-ppp/scala/07-composite-pattern.md +9 -0
  276. package/lib/assets/docs/article/functional-desgin-ppp/scala/08-decorator-pattern.md +9 -0
  277. package/lib/assets/docs/article/functional-desgin-ppp/scala/09-adapter-pattern.md +9 -0
  278. package/lib/assets/docs/article/functional-desgin-ppp/scala/10-strategy-pattern.md +9 -0
  279. package/lib/assets/docs/article/functional-desgin-ppp/scala/11-command-pattern.md +9 -0
  280. package/lib/assets/docs/article/functional-desgin-ppp/scala/12-visitor-pattern.md +9 -0
  281. package/lib/assets/docs/article/functional-desgin-ppp/scala/13-abstract-factory-pattern.md +9 -0
  282. package/lib/assets/docs/article/functional-desgin-ppp/scala/14-abstract-server-pattern.md +9 -0
  283. package/lib/assets/docs/article/functional-desgin-ppp/scala/15-gossiping-bus-drivers.md +9 -0
  284. package/lib/assets/docs/article/functional-desgin-ppp/scala/16-payroll-system.md +9 -0
  285. package/lib/assets/docs/article/functional-desgin-ppp/scala/17-video-rental-system.md +9 -0
  286. package/lib/assets/docs/article/functional-desgin-ppp/scala/18-concurrency-system.md +9 -0
  287. package/lib/assets/docs/article/functional-desgin-ppp/scala/19-wator-simulation.md +9 -0
  288. package/lib/assets/docs/article/functional-desgin-ppp/scala/20-pattern-interactions.md +9 -0
  289. package/lib/assets/docs/article/functional-desgin-ppp/scala/21-best-practices.md +9 -0
  290. package/lib/assets/docs/article/functional-desgin-ppp/scala/22-oo-to-fp-migration.md +9 -0
  291. package/lib/assets/docs/article/getting-start-docker-kubernetes/01-container-and-docker-basics.md +341 -332
  292. package/lib/assets/docs/article/getting-start-docker-kubernetes/02-container-deployment.md +785 -776
  293. package/lib/assets/docs/article/getting-start-docker-kubernetes/03-practical-container-build-deploy.md +466 -457
  294. package/lib/assets/docs/article/getting-start-docker-kubernetes/04-multi-container-application.md +878 -869
  295. package/lib/assets/docs/article/getting-start-docker-kubernetes/05-kubernetes-introduction.md +585 -576
  296. package/lib/assets/docs/article/getting-start-docker-kubernetes/06-kubernetes-deploy-cluster.md +620 -611
  297. package/lib/assets/docs/article/getting-start-docker-kubernetes/07-kubernetes-advanced.md +621 -612
  298. package/lib/assets/docs/article/getting-start-docker-kubernetes/08-kubernetes-packaging.md +518 -509
  299. package/lib/assets/docs/article/getting-start-docker-kubernetes/09-container-operations.md +546 -537
  300. package/lib/assets/docs/article/getting-start-docker-kubernetes/10-optimal-container-image.md +640 -631
  301. package/lib/assets/docs/article/getting-start-docker-kubernetes/11-continuous-delivery.md +607 -598
  302. package/lib/assets/docs/article/getting-start-docker-kubernetes/12-container-use-cases.md +463 -454
  303. package/lib/assets/docs/article/getting-start-docker-kubernetes/13-case-monolith-compose-vs-kustomize.md +346 -337
  304. package/lib/assets/docs/article/getting-start-docker-kubernetes/14-case-event-driven-kustomize-vs-helm.md +324 -315
  305. package/lib/assets/docs/article/getting-start-docker-kubernetes/15-case-escqrs-axon-kustomize-vs-helm.md +297 -288
  306. package/lib/assets/docs/article/getting-start-docker-kubernetes/16-case-escqrs-kafka-kustomize-vs-helm.md +256 -247
  307. package/lib/assets/docs/article/getting-start-docker-kubernetes/17-case-comparison-summary.md +141 -132
  308. package/lib/assets/docs/article/getting-start-docker-kubernetes/18-case-load-testing.md +303 -294
  309. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-a-dev-tools-setup.md +274 -265
  310. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-b-orchestration-environments.md +530 -521
  311. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-c-tips.md +519 -510
  312. package/lib/assets/docs/article/getting-start-docker-kubernetes/outline.md +220 -211
  313. package/lib/assets/docs/article/getting-start-tdd/clojure/01-todo-list-and-first-test.md +9 -0
  314. package/lib/assets/docs/article/getting-start-tdd/clojure/02-fake-it-and-triangulation.md +9 -0
  315. package/lib/assets/docs/article/getting-start-tdd/clojure/03-obvious-implementation-and-refactoring.md +9 -0
  316. package/lib/assets/docs/article/getting-start-tdd/clojure/04-version-control-and-conventional-commits.md +9 -0
  317. package/lib/assets/docs/article/getting-start-tdd/clojure/05-package-management-and-static-analysis.md +9 -0
  318. package/lib/assets/docs/article/getting-start-tdd/clojure/06-task-runner-and-ci-cd.md +9 -0
  319. package/lib/assets/docs/article/getting-start-tdd/clojure/07-protocols-and-records.md +9 -0
  320. package/lib/assets/docs/article/getting-start-tdd/clojure/08-multimethods-and-design-patterns.md +9 -0
  321. package/lib/assets/docs/article/getting-start-tdd/clojure/09-namespaces-and-module-design.md +9 -0
  322. package/lib/assets/docs/article/getting-start-tdd/clojure/10-higher-order-functions-and-composition.md +9 -0
  323. package/lib/assets/docs/article/getting-start-tdd/clojure/11-persistent-data-and-pipeline.md +9 -0
  324. package/lib/assets/docs/article/getting-start-tdd/clojure/12-error-handling-and-spec.md +9 -0
  325. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter01.md +9 -0
  326. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter02.md +9 -0
  327. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter03.md +9 -0
  328. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter04.md +9 -0
  329. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter05.md +9 -0
  330. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter06.md +9 -0
  331. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter07.md +9 -0
  332. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter08.md +9 -0
  333. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter09.md +9 -0
  334. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter10.md +9 -0
  335. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter11.md +9 -0
  336. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter12.md +9 -0
  337. package/lib/assets/docs/article/getting-start-tdd/elixir/01-todo-list-and-first-test.md +9 -0
  338. package/lib/assets/docs/article/getting-start-tdd/elixir/02-fake-it-and-triangulation.md +9 -0
  339. package/lib/assets/docs/article/getting-start-tdd/elixir/03-obvious-implementation-and-refactoring.md +9 -0
  340. package/lib/assets/docs/article/getting-start-tdd/elixir/04-version-control-and-conventional-commits.md +9 -0
  341. package/lib/assets/docs/article/getting-start-tdd/elixir/05-package-management-and-static-analysis.md +9 -0
  342. package/lib/assets/docs/article/getting-start-tdd/elixir/06-task-runner-and-ci-cd.md +9 -0
  343. package/lib/assets/docs/article/getting-start-tdd/elixir/07-structs-and-protocols.md +9 -0
  344. package/lib/assets/docs/article/getting-start-tdd/elixir/08-pattern-matching-and-guards.md +9 -0
  345. package/lib/assets/docs/article/getting-start-tdd/elixir/09-module-design-and-behaviours.md +9 -0
  346. package/lib/assets/docs/article/getting-start-tdd/elixir/10-higher-order-functions-and-pipeline.md +9 -0
  347. package/lib/assets/docs/article/getting-start-tdd/elixir/11-stream-and-lazy-evaluation.md +9 -0
  348. package/lib/assets/docs/article/getting-start-tdd/elixir/12-error-handling-and-with.md +9 -0
  349. package/lib/assets/docs/article/getting-start-tdd/elixir/index.md +2 -2
  350. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter01.md +9 -0
  351. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter02.md +9 -0
  352. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter03.md +9 -0
  353. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter04.md +9 -0
  354. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter05.md +9 -0
  355. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter06.md +9 -0
  356. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter07.md +9 -0
  357. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter08.md +9 -0
  358. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter09.md +9 -0
  359. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter10.md +9 -0
  360. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter11.md +9 -0
  361. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter12.md +9 -0
  362. package/lib/assets/docs/article/getting-start-tdd/go/01-todo-list-and-first-test.md +9 -0
  363. package/lib/assets/docs/article/getting-start-tdd/go/02-fake-it-and-triangulation.md +9 -0
  364. package/lib/assets/docs/article/getting-start-tdd/go/03-obvious-implementation-and-refactoring.md +9 -0
  365. package/lib/assets/docs/article/getting-start-tdd/go/04-version-control-and-conventional-commits.md +9 -0
  366. package/lib/assets/docs/article/getting-start-tdd/go/05-package-management-and-static-analysis.md +9 -0
  367. package/lib/assets/docs/article/getting-start-tdd/go/06-task-runner-and-ci-cd.md +9 -0
  368. package/lib/assets/docs/article/getting-start-tdd/go/07-encapsulation-and-polymorphism.md +8 -0
  369. package/lib/assets/docs/article/getting-start-tdd/go/08-design-patterns.md +8 -0
  370. package/lib/assets/docs/article/getting-start-tdd/go/09-solid-principles-and-module-design.md +8 -0
  371. package/lib/assets/docs/article/getting-start-tdd/go/10-higher-order-functions-and-composition.md +8 -0
  372. package/lib/assets/docs/article/getting-start-tdd/go/11-immutable-data-and-pipeline.md +8 -0
  373. package/lib/assets/docs/article/getting-start-tdd/go/12-error-handling-and-type-safety.md +8 -0
  374. package/lib/assets/docs/article/getting-start-tdd/haskell/01-todo-list-and-first-test.md +9 -0
  375. package/lib/assets/docs/article/getting-start-tdd/haskell/02-fake-it-and-triangulation.md +9 -0
  376. package/lib/assets/docs/article/getting-start-tdd/haskell/03-obvious-implementation-and-refactoring.md +9 -0
  377. package/lib/assets/docs/article/getting-start-tdd/haskell/04-version-control-and-conventional-commits.md +9 -0
  378. package/lib/assets/docs/article/getting-start-tdd/haskell/05-package-management-and-static-analysis.md +9 -0
  379. package/lib/assets/docs/article/getting-start-tdd/haskell/06-task-runner-and-ci-cd.md +9 -0
  380. package/lib/assets/docs/article/getting-start-tdd/haskell/07-algebraic-data-types-and-type-classes.md +9 -0
  381. package/lib/assets/docs/article/getting-start-tdd/haskell/08-pattern-matching-and-guards.md +9 -0
  382. package/lib/assets/docs/article/getting-start-tdd/haskell/09-module-design-and-smart-constructors.md +9 -0
  383. package/lib/assets/docs/article/getting-start-tdd/haskell/10-higher-order-functions-and-currying.md +9 -0
  384. package/lib/assets/docs/article/getting-start-tdd/haskell/11-function-composition-and-point-free.md +9 -0
  385. package/lib/assets/docs/article/getting-start-tdd/haskell/12-monad-and-error-handling.md +9 -0
  386. package/lib/assets/docs/article/getting-start-tdd/integration/01-language-overview.md +9 -0
  387. package/lib/assets/docs/article/getting-start-tdd/integration/02-test-framework-comparison.md +9 -0
  388. package/lib/assets/docs/article/getting-start-tdd/integration/03-tdd-pattern-comparison.md +9 -0
  389. package/lib/assets/docs/article/getting-start-tdd/integration/04-type-system-comparison.md +9 -0
  390. package/lib/assets/docs/article/getting-start-tdd/integration/05-dev-environment-comparison.md +9 -0
  391. package/lib/assets/docs/article/getting-start-tdd/integration/06-learning-roadmap.md +9 -0
  392. package/lib/assets/docs/article/getting-start-tdd/java/01-todo-list-and-first-test.md +9 -0
  393. package/lib/assets/docs/article/getting-start-tdd/java/02-fake-it-and-triangulation.md +9 -0
  394. package/lib/assets/docs/article/getting-start-tdd/java/03-obvious-implementation-and-refactoring.md +9 -0
  395. package/lib/assets/docs/article/getting-start-tdd/java/04-version-control-and-conventional-commits.md +9 -0
  396. package/lib/assets/docs/article/getting-start-tdd/java/05-package-management-and-static-analysis.md +9 -0
  397. package/lib/assets/docs/article/getting-start-tdd/java/06-task-runner-and-ci-cd.md +9 -0
  398. package/lib/assets/docs/article/getting-start-tdd/java/07-encapsulation-and-polymorphism.md +9 -0
  399. package/lib/assets/docs/article/getting-start-tdd/java/08-design-patterns.md +9 -0
  400. package/lib/assets/docs/article/getting-start-tdd/java/09-solid-principles-and-module-design.md +9 -0
  401. package/lib/assets/docs/article/getting-start-tdd/java/10-higher-order-functions-and-composition.md +9 -0
  402. package/lib/assets/docs/article/getting-start-tdd/java/11-immutable-data-and-pipeline.md +9 -0
  403. package/lib/assets/docs/article/getting-start-tdd/java/12-error-handling-and-type-safety.md +9 -0
  404. package/lib/assets/docs/article/getting-start-tdd/node/01-todo-list-and-first-test.md +9 -0
  405. package/lib/assets/docs/article/getting-start-tdd/node/02-fake-it-and-triangulation.md +9 -0
  406. package/lib/assets/docs/article/getting-start-tdd/node/03-obvious-implementation-and-refactoring.md +9 -0
  407. package/lib/assets/docs/article/getting-start-tdd/node/04-version-control-and-conventional-commits.md +9 -0
  408. package/lib/assets/docs/article/getting-start-tdd/node/05-package-management-and-static-analysis.md +9 -0
  409. package/lib/assets/docs/article/getting-start-tdd/node/06-task-runner-and-ci-cd.md +9 -0
  410. package/lib/assets/docs/article/getting-start-tdd/node/07-encapsulation-and-polymorphism.md +9 -0
  411. package/lib/assets/docs/article/getting-start-tdd/node/08-design-patterns.md +9 -0
  412. package/lib/assets/docs/article/getting-start-tdd/node/09-solid-principles-and-module-design.md +9 -0
  413. package/lib/assets/docs/article/getting-start-tdd/node/10-higher-order-functions-and-composition.md +9 -0
  414. package/lib/assets/docs/article/getting-start-tdd/node/11-immutable-data-and-pipeline.md +9 -0
  415. package/lib/assets/docs/article/getting-start-tdd/node/12-error-handling-and-type-safety.md +9 -0
  416. package/lib/assets/docs/article/getting-start-tdd/php/01-todo-list-and-first-test.md +9 -0
  417. package/lib/assets/docs/article/getting-start-tdd/php/02-fake-it-and-triangulation.md +9 -0
  418. package/lib/assets/docs/article/getting-start-tdd/php/03-obvious-implementation-and-refactoring.md +9 -0
  419. package/lib/assets/docs/article/getting-start-tdd/php/04-version-control-and-conventional-commits.md +9 -0
  420. package/lib/assets/docs/article/getting-start-tdd/php/05-package-management-and-static-analysis.md +9 -0
  421. package/lib/assets/docs/article/getting-start-tdd/php/06-task-runner-and-ci-cd.md +9 -0
  422. package/lib/assets/docs/article/getting-start-tdd/php/07-encapsulation-and-polymorphism.md +8 -0
  423. package/lib/assets/docs/article/getting-start-tdd/php/08-design-patterns.md +8 -0
  424. package/lib/assets/docs/article/getting-start-tdd/php/09-solid-principles-and-module-design.md +8 -0
  425. package/lib/assets/docs/article/getting-start-tdd/php/10-higher-order-functions-and-composition.md +8 -0
  426. package/lib/assets/docs/article/getting-start-tdd/php/11-immutable-data-and-pipeline.md +8 -0
  427. package/lib/assets/docs/article/getting-start-tdd/php/12-error-handling-and-type-safety.md +8 -0
  428. package/lib/assets/docs/article/getting-start-tdd/python/01-todo-list-and-first-test.md +9 -0
  429. package/lib/assets/docs/article/getting-start-tdd/python/02-fake-it-and-triangulation.md +9 -0
  430. package/lib/assets/docs/article/getting-start-tdd/python/03-obvious-implementation-and-refactoring.md +9 -0
  431. package/lib/assets/docs/article/getting-start-tdd/python/04-version-control-and-conventional-commits.md +9 -0
  432. package/lib/assets/docs/article/getting-start-tdd/python/05-package-management-and-static-analysis.md +9 -0
  433. package/lib/assets/docs/article/getting-start-tdd/python/06-task-runner-and-ci-cd.md +9 -0
  434. package/lib/assets/docs/article/getting-start-tdd/python/07-encapsulation-and-polymorphism.md +9 -0
  435. package/lib/assets/docs/article/getting-start-tdd/python/08-design-patterns.md +9 -0
  436. package/lib/assets/docs/article/getting-start-tdd/python/09-solid-principles-and-module-design.md +9 -0
  437. package/lib/assets/docs/article/getting-start-tdd/python/10-higher-order-functions-and-composition.md +9 -0
  438. package/lib/assets/docs/article/getting-start-tdd/python/11-immutable-data-and-pipeline.md +9 -0
  439. package/lib/assets/docs/article/getting-start-tdd/python/12-error-handling-and-type-safety.md +9 -0
  440. package/lib/assets/docs/article/getting-start-tdd/ruby/01-todo-list-and-first-test.md +9 -0
  441. package/lib/assets/docs/article/getting-start-tdd/ruby/02-fake-it-and-triangulation.md +9 -0
  442. package/lib/assets/docs/article/getting-start-tdd/ruby/03-obvious-implementation-and-refactoring.md +9 -0
  443. package/lib/assets/docs/article/getting-start-tdd/ruby/04-version-control-and-conventional-commits.md +9 -0
  444. package/lib/assets/docs/article/getting-start-tdd/ruby/05-package-management-and-static-analysis.md +9 -0
  445. package/lib/assets/docs/article/getting-start-tdd/ruby/06-task-runner-and-ci-cd.md +9 -0
  446. package/lib/assets/docs/article/getting-start-tdd/ruby/07-encapsulation-and-polymorphism.md +9 -0
  447. package/lib/assets/docs/article/getting-start-tdd/ruby/08-design-patterns.md +9 -0
  448. package/lib/assets/docs/article/getting-start-tdd/ruby/09-solid-principles-and-module-design.md +9 -0
  449. package/lib/assets/docs/article/getting-start-tdd/ruby/10-higher-order-functions-and-composition.md +9 -0
  450. package/lib/assets/docs/article/getting-start-tdd/ruby/11-immutable-data-and-pipeline.md +9 -0
  451. package/lib/assets/docs/article/getting-start-tdd/ruby/12-error-handling-and-type-safety.md +9 -0
  452. package/lib/assets/docs/article/getting-start-tdd/rust/01-todo-list-and-first-test.md +9 -0
  453. package/lib/assets/docs/article/getting-start-tdd/rust/02-fake-it-and-triangulation.md +9 -0
  454. package/lib/assets/docs/article/getting-start-tdd/rust/03-obvious-implementation-and-refactoring.md +9 -0
  455. package/lib/assets/docs/article/getting-start-tdd/rust/04-version-control-and-conventional-commits.md +9 -0
  456. package/lib/assets/docs/article/getting-start-tdd/rust/05-package-management-and-static-analysis.md +9 -0
  457. package/lib/assets/docs/article/getting-start-tdd/rust/06-task-runner-and-ci-cd.md +9 -0
  458. package/lib/assets/docs/article/getting-start-tdd/rust/07-encapsulation-and-polymorphism.md +9 -0
  459. package/lib/assets/docs/article/getting-start-tdd/rust/08-design-patterns.md +9 -0
  460. package/lib/assets/docs/article/getting-start-tdd/rust/09-solid-principles-and-module-design.md +9 -0
  461. package/lib/assets/docs/article/getting-start-tdd/rust/10-higher-order-functions-and-composition.md +9 -0
  462. package/lib/assets/docs/article/getting-start-tdd/rust/11-immutable-data-and-pipeline.md +9 -0
  463. package/lib/assets/docs/article/getting-start-tdd/rust/12-error-handling-and-type-safety.md +9 -0
  464. package/lib/assets/docs/article/getting-start-tdd/scala/01-todo-list-and-first-test.md +9 -0
  465. package/lib/assets/docs/article/getting-start-tdd/scala/02-fake-it-and-triangulation.md +9 -0
  466. package/lib/assets/docs/article/getting-start-tdd/scala/03-obvious-implementation-and-refactoring.md +9 -0
  467. package/lib/assets/docs/article/getting-start-tdd/scala/04-version-control-and-conventional-commits.md +9 -0
  468. package/lib/assets/docs/article/getting-start-tdd/scala/05-package-management-and-static-analysis.md +9 -0
  469. package/lib/assets/docs/article/getting-start-tdd/scala/06-task-runner-and-ci-cd.md +9 -0
  470. package/lib/assets/docs/article/getting-start-tdd/scala/07-case-classes-and-traits.md +9 -0
  471. package/lib/assets/docs/article/getting-start-tdd/scala/08-pattern-matching-and-sealed-traits.md +9 -0
  472. package/lib/assets/docs/article/getting-start-tdd/scala/09-packages-and-module-design.md +9 -0
  473. package/lib/assets/docs/article/getting-start-tdd/scala/10-higher-order-functions-and-composition.md +9 -0
  474. package/lib/assets/docs/article/getting-start-tdd/scala/11-collections-and-lazy-evaluation.md +9 -0
  475. package/lib/assets/docs/article/getting-start-tdd/scala/12-error-handling-and-type-safety.md +9 -0
  476. package/lib/assets/docs/article/grokking-concurrency/all/index.md +0 -1
  477. package/lib/assets/docs/article/grokking-concurrency/all/part-1-ch02-sequential.md +9 -0
  478. package/lib/assets/docs/article/grokking-concurrency/all/part-2-ch04-05-threads.md +9 -0
  479. package/lib/assets/docs/article/grokking-concurrency/all/part-3-ch06-multitasking.md +9 -0
  480. package/lib/assets/docs/article/grokking-concurrency/all/part-4-ch07-parallel-patterns.md +9 -0
  481. package/lib/assets/docs/article/grokking-concurrency/all/part-5-ch08-09-synchronization.md +9 -0
  482. package/lib/assets/docs/article/grokking-concurrency/all/part-6-ch10-11-nonblocking-io.md +9 -0
  483. package/lib/assets/docs/article/grokking-concurrency/all/part-7-ch12-async.md +9 -0
  484. package/lib/assets/docs/article/grokking-concurrency/all/part-8-ch13-mapreduce.md +9 -0
  485. package/lib/assets/docs/article/grokking-concurrency/clojure/index.md +0 -10
  486. package/lib/assets/docs/article/grokking-concurrency/clojure/part-1.md +6 -7
  487. package/lib/assets/docs/article/grokking-concurrency/clojure/part-2.md +6 -7
  488. package/lib/assets/docs/article/grokking-concurrency/clojure/part-3.md +6 -7
  489. package/lib/assets/docs/article/grokking-concurrency/clojure/part-4.md +6 -7
  490. package/lib/assets/docs/article/grokking-concurrency/clojure/part-5.md +6 -7
  491. package/lib/assets/docs/article/grokking-concurrency/clojure/part-6.md +6 -7
  492. package/lib/assets/docs/article/grokking-concurrency/clojure/part-7.md +6 -7
  493. package/lib/assets/docs/article/grokking-concurrency/clojure/part-8.md +6 -7
  494. package/lib/assets/docs/article/grokking-concurrency/csharp/index.md +0 -10
  495. package/lib/assets/docs/article/grokking-concurrency/csharp/part-1.md +6 -7
  496. package/lib/assets/docs/article/grokking-concurrency/csharp/part-2.md +6 -7
  497. package/lib/assets/docs/article/grokking-concurrency/csharp/part-3.md +6 -7
  498. package/lib/assets/docs/article/grokking-concurrency/csharp/part-4.md +6 -7
  499. package/lib/assets/docs/article/grokking-concurrency/csharp/part-5.md +6 -7
  500. package/lib/assets/docs/article/grokking-concurrency/csharp/part-6.md +6 -7
  501. package/lib/assets/docs/article/grokking-concurrency/csharp/part-7.md +6 -7
  502. package/lib/assets/docs/article/grokking-concurrency/csharp/part-8.md +6 -7
  503. package/lib/assets/docs/article/grokking-concurrency/fsharp/index.md +0 -10
  504. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-1.md +6 -7
  505. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-2.md +6 -7
  506. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-3.md +6 -7
  507. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-4.md +6 -7
  508. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-5.md +6 -7
  509. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-6.md +6 -7
  510. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-7.md +6 -7
  511. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-8.md +6 -7
  512. package/lib/assets/docs/article/grokking-concurrency/haskell/index.md +0 -10
  513. package/lib/assets/docs/article/grokking-concurrency/haskell/part-1.md +6 -7
  514. package/lib/assets/docs/article/grokking-concurrency/haskell/part-2.md +6 -7
  515. package/lib/assets/docs/article/grokking-concurrency/haskell/part-3.md +6 -7
  516. package/lib/assets/docs/article/grokking-concurrency/haskell/part-4.md +6 -7
  517. package/lib/assets/docs/article/grokking-concurrency/haskell/part-5.md +6 -7
  518. package/lib/assets/docs/article/grokking-concurrency/haskell/part-6.md +6 -7
  519. package/lib/assets/docs/article/grokking-concurrency/haskell/part-7.md +6 -7
  520. package/lib/assets/docs/article/grokking-concurrency/haskell/part-8.md +6 -7
  521. package/lib/assets/docs/article/grokking-concurrency/java/index.md +0 -10
  522. package/lib/assets/docs/article/grokking-concurrency/java/part-1.md +8 -9
  523. package/lib/assets/docs/article/grokking-concurrency/java/part-2.md +8 -9
  524. package/lib/assets/docs/article/grokking-concurrency/java/part-3.md +7 -8
  525. package/lib/assets/docs/article/grokking-concurrency/java/part-4.md +8 -9
  526. package/lib/assets/docs/article/grokking-concurrency/java/part-5.md +7 -8
  527. package/lib/assets/docs/article/grokking-concurrency/java/part-6.md +6 -7
  528. package/lib/assets/docs/article/grokking-concurrency/java/part-7.md +6 -7
  529. package/lib/assets/docs/article/grokking-concurrency/java/part-8.md +6 -7
  530. package/lib/assets/docs/article/grokking-concurrency/python/index.md +0 -10
  531. package/lib/assets/docs/article/grokking-concurrency/python/part-1.md +7 -8
  532. package/lib/assets/docs/article/grokking-concurrency/python/part-2.md +10 -11
  533. package/lib/assets/docs/article/grokking-concurrency/python/part-3.md +8 -9
  534. package/lib/assets/docs/article/grokking-concurrency/python/part-4.md +8 -9
  535. package/lib/assets/docs/article/grokking-concurrency/python/part-5.md +9 -10
  536. package/lib/assets/docs/article/grokking-concurrency/python/part-6.md +9 -10
  537. package/lib/assets/docs/article/grokking-concurrency/python/part-7.md +9 -10
  538. package/lib/assets/docs/article/grokking-concurrency/python/part-8.md +8 -9
  539. package/lib/assets/docs/article/grokking-concurrency/rust/index.md +0 -10
  540. package/lib/assets/docs/article/grokking-concurrency/rust/part-1.md +6 -7
  541. package/lib/assets/docs/article/grokking-concurrency/rust/part-2.md +6 -7
  542. package/lib/assets/docs/article/grokking-concurrency/rust/part-3.md +6 -7
  543. package/lib/assets/docs/article/grokking-concurrency/rust/part-4.md +6 -7
  544. package/lib/assets/docs/article/grokking-concurrency/rust/part-5.md +6 -7
  545. package/lib/assets/docs/article/grokking-concurrency/rust/part-6.md +6 -7
  546. package/lib/assets/docs/article/grokking-concurrency/rust/part-7.md +6 -7
  547. package/lib/assets/docs/article/grokking-concurrency/rust/part-8.md +6 -7
  548. package/lib/assets/docs/article/grokking-concurrency/scala/index.md +0 -10
  549. package/lib/assets/docs/article/grokking-concurrency/scala/part-1.md +6 -7
  550. package/lib/assets/docs/article/grokking-concurrency/scala/part-2.md +6 -7
  551. package/lib/assets/docs/article/grokking-concurrency/scala/part-3.md +6 -7
  552. package/lib/assets/docs/article/grokking-concurrency/scala/part-4.md +6 -7
  553. package/lib/assets/docs/article/grokking-concurrency/scala/part-5.md +6 -7
  554. package/lib/assets/docs/article/grokking-concurrency/scala/part-6.md +6 -7
  555. package/lib/assets/docs/article/grokking-concurrency/scala/part-7.md +6 -7
  556. package/lib/assets/docs/article/grokking-concurrency/scala/part-8.md +6 -7
  557. package/lib/assets/docs/article/grokkingfp/all/part-1-ch01-fp-introduction.md +9 -0
  558. package/lib/assets/docs/article/grokkingfp/all/part-1-ch02-pure-functions.md +9 -0
  559. package/lib/assets/docs/article/grokkingfp/all/part-2-ch03-immutable-data.md +9 -0
  560. package/lib/assets/docs/article/grokkingfp/all/part-2-ch04-higher-order-functions.md +9 -0
  561. package/lib/assets/docs/article/grokkingfp/all/part-2-ch05-flatmap.md +9 -0
  562. package/lib/assets/docs/article/grokkingfp/all/part-3-ch06-option.md +9 -0
  563. package/lib/assets/docs/article/grokkingfp/all/part-3-ch07-either-adt.md +9 -0
  564. package/lib/assets/docs/article/grokkingfp/all/part-4-ch08-io-monad.md +9 -0
  565. package/lib/assets/docs/article/grokkingfp/all/part-4-ch09-streams.md +9 -0
  566. package/lib/assets/docs/article/grokkingfp/all/part-5-ch10-concurrency.md +9 -0
  567. package/lib/assets/docs/article/grokkingfp/all/part-6-ch11-application.md +9 -0
  568. package/lib/assets/docs/article/grokkingfp/all/part-6-ch12-testing.md +9 -0
  569. package/lib/assets/docs/article/grokkingfp/all/writing-plan.md +9 -0
  570. package/lib/assets/docs/article/grokkingfp/clojure/part-1.md +9 -0
  571. package/lib/assets/docs/article/grokkingfp/clojure/part-2.md +9 -0
  572. package/lib/assets/docs/article/grokkingfp/clojure/part-3.md +9 -0
  573. package/lib/assets/docs/article/grokkingfp/clojure/part-4.md +9 -0
  574. package/lib/assets/docs/article/grokkingfp/clojure/part-5.md +9 -0
  575. package/lib/assets/docs/article/grokkingfp/clojure/part-6.md +9 -0
  576. package/lib/assets/docs/article/grokkingfp/csharp/part-1.md +9 -0
  577. package/lib/assets/docs/article/grokkingfp/csharp/part-2.md +9 -0
  578. package/lib/assets/docs/article/grokkingfp/csharp/part-3.md +9 -0
  579. package/lib/assets/docs/article/grokkingfp/csharp/part-4.md +9 -0
  580. package/lib/assets/docs/article/grokkingfp/csharp/part-5.md +9 -0
  581. package/lib/assets/docs/article/grokkingfp/csharp/part-6.md +9 -0
  582. package/lib/assets/docs/article/grokkingfp/elixir/part-1.md +9 -0
  583. package/lib/assets/docs/article/grokkingfp/elixir/part-2.md +9 -0
  584. package/lib/assets/docs/article/grokkingfp/elixir/part-3.md +9 -0
  585. package/lib/assets/docs/article/grokkingfp/elixir/part-4.md +9 -0
  586. package/lib/assets/docs/article/grokkingfp/elixir/part-5.md +9 -0
  587. package/lib/assets/docs/article/grokkingfp/elixir/part-6.md +9 -0
  588. package/lib/assets/docs/article/grokkingfp/fsharp/part-1.md +9 -0
  589. package/lib/assets/docs/article/grokkingfp/fsharp/part-2.md +9 -0
  590. package/lib/assets/docs/article/grokkingfp/fsharp/part-3.md +9 -0
  591. package/lib/assets/docs/article/grokkingfp/fsharp/part-4.md +9 -0
  592. package/lib/assets/docs/article/grokkingfp/fsharp/part-5.md +9 -0
  593. package/lib/assets/docs/article/grokkingfp/fsharp/part-6.md +9 -0
  594. package/lib/assets/docs/article/grokkingfp/haskell/part-1.md +9 -0
  595. package/lib/assets/docs/article/grokkingfp/haskell/part-2.md +9 -0
  596. package/lib/assets/docs/article/grokkingfp/haskell/part-3.md +9 -0
  597. package/lib/assets/docs/article/grokkingfp/haskell/part-4.md +9 -0
  598. package/lib/assets/docs/article/grokkingfp/haskell/part-5.md +9 -0
  599. package/lib/assets/docs/article/grokkingfp/haskell/part-6.md +9 -0
  600. package/lib/assets/docs/article/grokkingfp/java/part-1.md +9 -0
  601. package/lib/assets/docs/article/grokkingfp/java/part-2.md +9 -0
  602. package/lib/assets/docs/article/grokkingfp/java/part-3.md +9 -0
  603. package/lib/assets/docs/article/grokkingfp/java/part-4.md +9 -0
  604. package/lib/assets/docs/article/grokkingfp/java/part-5.md +9 -0
  605. package/lib/assets/docs/article/grokkingfp/java/part-6.md +9 -0
  606. package/lib/assets/docs/article/grokkingfp/python/part-1.md +9 -0
  607. package/lib/assets/docs/article/grokkingfp/python/part-2.md +9 -0
  608. package/lib/assets/docs/article/grokkingfp/python/part-3.md +9 -0
  609. package/lib/assets/docs/article/grokkingfp/python/part-4.md +9 -0
  610. package/lib/assets/docs/article/grokkingfp/python/part-5.md +9 -0
  611. package/lib/assets/docs/article/grokkingfp/python/part-6.md +9 -0
  612. package/lib/assets/docs/article/grokkingfp/ruby/part-1.md +9 -0
  613. package/lib/assets/docs/article/grokkingfp/ruby/part-2.md +9 -0
  614. package/lib/assets/docs/article/grokkingfp/ruby/part-3.md +9 -0
  615. package/lib/assets/docs/article/grokkingfp/ruby/part-4.md +9 -0
  616. package/lib/assets/docs/article/grokkingfp/ruby/part-5.md +9 -0
  617. package/lib/assets/docs/article/grokkingfp/ruby/part-6.md +9 -0
  618. package/lib/assets/docs/article/grokkingfp/rust/part-1.md +9 -0
  619. package/lib/assets/docs/article/grokkingfp/rust/part-2.md +9 -0
  620. package/lib/assets/docs/article/grokkingfp/rust/part-3.md +9 -0
  621. package/lib/assets/docs/article/grokkingfp/rust/part-4.md +9 -0
  622. package/lib/assets/docs/article/grokkingfp/rust/part-5.md +9 -0
  623. package/lib/assets/docs/article/grokkingfp/rust/part-6.md +9 -0
  624. package/lib/assets/docs/article/grokkingfp/scala/part-1.md +9 -0
  625. package/lib/assets/docs/article/grokkingfp/scala/part-2.md +9 -0
  626. package/lib/assets/docs/article/grokkingfp/scala/part-3.md +9 -0
  627. package/lib/assets/docs/article/grokkingfp/scala/part-4.md +9 -0
  628. package/lib/assets/docs/article/grokkingfp/scala/part-5.md +9 -0
  629. package/lib/assets/docs/article/grokkingfp/scala/part-6.md +9 -0
  630. package/lib/assets/docs/article/grokkingfp/typescript/part-1.md +9 -0
  631. package/lib/assets/docs/article/grokkingfp/typescript/part-2.md +9 -0
  632. package/lib/assets/docs/article/grokkingfp/typescript/part-3.md +9 -0
  633. package/lib/assets/docs/article/grokkingfp/typescript/part-4.md +9 -0
  634. package/lib/assets/docs/article/grokkingfp/typescript/part-5.md +9 -0
  635. package/lib/assets/docs/article/grokkingfp/typescript/part-6.md +9 -0
  636. package/lib/assets/docs/article/practical-database-design/part1/chapter01.md +9 -0
  637. package/lib/assets/docs/article/practical-database-design/part1/chapter02.md +9 -0
  638. package/lib/assets/docs/article/practical-database-design/part1/chapter03.md +9 -0
  639. package/lib/assets/docs/article/practical-database-design/part2/chapter04.md +9 -0
  640. package/lib/assets/docs/article/practical-database-design/part2/chapter05.md +9 -0
  641. package/lib/assets/docs/article/practical-database-design/part2/chapter06.md +9 -0
  642. package/lib/assets/docs/article/practical-database-design/part2/chapter07.md +9 -0
  643. package/lib/assets/docs/article/practical-database-design/part2/chapter08.md +9 -0
  644. package/lib/assets/docs/article/practical-database-design/part2/chapter09.md +9 -0
  645. package/lib/assets/docs/article/practical-database-design/part2/chapter10.md +9 -0
  646. package/lib/assets/docs/article/practical-database-design/part2/chapter11.md +9 -0
  647. package/lib/assets/docs/article/practical-database-design/part2/chapter12.md +9 -0
  648. package/lib/assets/docs/article/practical-database-design/part2/chapter13.md +9 -0
  649. package/lib/assets/docs/article/practical-database-design/part3/chapter14.md +9 -0
  650. package/lib/assets/docs/article/practical-database-design/part3/chapter15.md +9 -0
  651. package/lib/assets/docs/article/practical-database-design/part3/chapter16.md +9 -0
  652. package/lib/assets/docs/article/practical-database-design/part3/chapter17.md +9 -0
  653. package/lib/assets/docs/article/practical-database-design/part3/chapter18.md +9 -0
  654. package/lib/assets/docs/article/practical-database-design/part3/chapter19.md +9 -0
  655. package/lib/assets/docs/article/practical-database-design/part3/chapter20.md +9 -0
  656. package/lib/assets/docs/article/practical-database-design/part3/chapter21.md +9 -0
  657. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter14-orm.md +9 -0
  658. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter15-orm.md +9 -0
  659. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter16-orm.md +9 -0
  660. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter17-orm.md +9 -0
  661. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter18-orm.md +9 -0
  662. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter19-orm.md +9 -0
  663. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter20-orm.md +9 -0
  664. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter21-orm.md +9 -0
  665. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter22-orm.md +9 -0
  666. package/lib/assets/docs/article/practical-database-design/part4/chapter22.md +9 -0
  667. package/lib/assets/docs/article/practical-database-design/part4/chapter23.md +9 -0
  668. package/lib/assets/docs/article/practical-database-design/part4/chapter24.md +9 -0
  669. package/lib/assets/docs/article/practical-database-design/part4/chapter25.md +9 -0
  670. package/lib/assets/docs/article/practical-database-design/part4/chapter26.md +9 -0
  671. package/lib/assets/docs/article/practical-database-design/part4/chapter27.md +9 -0
  672. package/lib/assets/docs/article/practical-database-design/part4/chapter28.md +9 -0
  673. package/lib/assets/docs/article/practical-database-design/part4/chapter29.md +8 -0
  674. package/lib/assets/docs/article/practical-database-design/part4/chapter30.md +8 -0
  675. package/lib/assets/docs/article/practical-database-design/part4/chapter31.md +8 -0
  676. package/lib/assets/docs/article/practical-database-design/part4/chapter32.md +8 -0
  677. package/lib/assets/docs/article/practical-database-design/part5/chapter33.md +9 -0
  678. package/lib/assets/docs/article/practical-database-design/part5/chapter34.md +9 -0
  679. package/lib/assets/docs/article/practical-database-design/part5/chapter35.md +9 -0
  680. package/lib/assets/docs/article/practical-database-design/part5/chapter36.md +9 -0
  681. package/lib/assets/docs/article/practical-database-design/part5/chapter37.md +9 -0
  682. package/lib/assets/docs/article/practical-database-design/part5/chapter38.md +9 -0
  683. package/lib/assets/docs/article/practical-database-design/part5/chapter39.md +9 -0
  684. package/lib/assets/docs/article/practical-database-design/study/study2-1.md +9 -0
  685. package/lib/assets/docs/article/practical-database-design/study/study2-2.md +9 -0
  686. package/lib/assets/docs/article/practical-database-design/study/study2-3.md +9 -0
  687. package/lib/assets/docs/article/practical-database-design/study/study2-4.md +9 -0
  688. package/lib/assets/docs/article/practical-database-design/study/study2-5.md +9 -0
  689. package/lib/assets/docs/article/practical-database-design/study/study3-1.md +9 -0
  690. package/lib/assets/docs/article/practical-database-design/study/study3-2.md +9 -0
  691. package/lib/assets/docs/article/practical-database-design/study/study3-3.md +9 -0
  692. package/lib/assets/docs/article/practical-database-design/study/study3-4.md +9 -0
  693. package/lib/assets/docs/article/practical-database-design/study/study3-5.md +9 -0
  694. package/lib/assets/docs/article/practical-database-design/study/study4-1.md +9 -0
  695. package/lib/assets/docs/article/practical-database-design/study/study4-2.md +9 -0
  696. package/lib/assets/docs/article/practical-database-design/study/study4-3.md +9 -0
  697. package/lib/assets/docs/article/practical-database-design/study/study4-4.md +9 -0
  698. package/lib/assets/docs/article/practical-database-design/study/study4-5.md +9 -0
  699. package/lib/assets/docs/index.md +4 -0
  700. package/lib/assets/docs/log.md +5 -0
  701. package/lib/assets/docs/operation/index.md +15 -1
  702. 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 +13 -4
  703. package/lib/assets/docs/reference/CodexCLIMCP/343/202/265/343/203/274/343/203/220/343/203/274/350/250/255/345/256/232/346/211/213/351/240/206.md +10 -0
  704. package/lib/assets/docs/reference/Java/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +11 -1
  705. package/lib/assets/docs/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +965 -0
  706. 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 +10 -0
  707. package/lib/assets/docs/reference/TypeScript/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +11 -1
  708. package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +10 -1
  709. 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 +177 -168
  710. package/lib/assets/docs/reference/index.md +54 -53
  711. package/lib/assets/docs/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +7 -8
  712. package/lib/assets/docs/reference//343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +10 -1
  713. package/lib/assets/docs/reference//343/202/244/343/203/263/343/203/225/343/203/251/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +10 -1
  714. package/lib/assets/docs/reference//343/202/250/343/202/257/343/202/271/343/203/210/343/203/252/343/203/274/343/203/240/343/203/227/343/203/255/343/202/260/343/203/251/343/203/237/343/203/263/343/202/260.md +6 -7
  715. package/lib/assets/docs/reference//343/202/263/343/203/274/343/203/207/343/202/243/343/203/263/343/202/260/343/201/250/343/203/206/343/202/271/343/203/210/343/202/254/343/202/244/343/203/211.md +10 -1
  716. package/lib/assets/docs/reference//343/203/206/343/202/271/343/203/210/346/210/246/347/225/245/343/202/254/343/202/244/343/203/211.md +10 -1
  717. package/lib/assets/docs/reference//343/203/207/343/203/274/343/202/277/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +10 -1
  718. package/lib/assets/docs/reference//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +10 -1
  719. package/lib/assets/docs/reference//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +9 -0
  720. package/lib/assets/docs/reference//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +10 -1
  721. package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +9 -0
  722. package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/203/273/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/343/202/254/343/202/244/343/203/211.md +7 -8
  723. package/lib/assets/docs/reference//343/203/255/343/202/270/343/202/253/343/203/253/343/202/267/343/203/263/343/202/255/343/203/263/343/202/260.md +9 -0
  724. package/lib/assets/docs/reference//344/274/201/346/245/255/347/265/214/345/226/266/350/253/226.md +10 -1
  725. package/lib/assets/docs/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +10 -0
  726. 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 +9 -0
  727. package/lib/assets/docs/reference//350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +10 -1
  728. package/lib/assets/docs/reference//350/250/200/350/252/236/345/210/245/351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +9 -0
  729. package/lib/assets/docs/reference//351/201/213/345/226/266/347/256/241/347/220/206.md +10 -1
  730. package/lib/assets/docs/reference//351/201/213/347/224/250/343/202/271/343/202/257/343/203/252/343/203/227/343/203/210/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +9 -0
  731. package/lib/assets/docs/reference//351/201/213/347/224/250/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +10 -1
  732. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +9 -0
  733. package/lib/assets/docs/reference//351/235/236/346/251/237/350/203/275/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +10 -1
  734. package/lib/assets/docs/template/ADR.md +9 -0
  735. package/lib/assets/docs/template/AWS/343/202/271/343/203/206/343/203/274/343/202/270/343/203/263/343/202/260/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 +9 -0
  736. package/lib/assets/docs/template/AWS/343/203/227/343/203/255/343/203/200/343/202/257/343/202/267/343/203/247/343/203/263/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 +9 -0
  737. package/lib/assets/docs/template/README.md +9 -0
  738. package/lib/assets/docs/template//343/201/276/343/201/232/343/201/223/343/202/214/343/202/222/350/252/255/343/202/202/343/201/206/343/203/252/343/202/271/343/203/210.md +9 -0
  739. package/lib/assets/docs/template//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/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 +9 -0
  740. 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/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +10 -1
  741. 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 +11 -2
  742. package/lib/assets/docs/template//343/202/244/343/203/263/343/202/273/343/203/227/343/202/267/343/203/247/343/203/263/343/203/207/343/203/203/343/202/255.md +9 -0
  743. package/lib/assets/docs/template//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243.md +9 -0
  744. 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 +9 -0
  745. package/lib/assets/docs/template//343/203/252/343/203/252/343/203/274/343/202/271/350/250/210/347/224/273.md +289 -280
  746. package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +9 -0
  747. package/lib/assets/docs/template//344/274/201/346/245/255/345/210/206/346/236/220.md +9 -0
  748. package/lib/assets/docs/template//345/256/214/345/205/250/345/275/242/345/274/217/343/201/256/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271.md +7 -8
  749. package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +7 -8
  750. package/lib/assets/docs/template//350/250/255/350/250/210.md +10 -1
  751. package/lib/assets/docs/template//351/226/213/347/231/272/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 +9 -0
  752. package/lib/assets/gulpfile.js +4 -2
  753. package/lib/assets/ops/scripts/okf.js +272 -0
  754. package/lib/assets/package.json +2 -0
  755. package/package.json +1 -1
@@ -1,132 +1,141 @@
1
- # 第 17 章 ケーススタディ実装比較まとめ
2
-
3
- ## はじめに
4
-
5
- 第 13〜16 章では、同一ドメイン(国際貨物輸送システム = Cargo Tracker)を 4 つの異なるアーキテクチャで実装し、それぞれを Docker Compose・Kustomize・Helm でデプロイして比較しました。この章では 4 ケースを横断し、**アーキテクチャの複雑さとデプロイ手段の選択がどう関係するか**を総括します。
6
-
7
- 実装はすべて [`apps/case-studies/`](https://github.com/k2works/getting-started-docker-kubernetes/tree/main/apps/case-studies) にあり、ローカル Kubernetes(Docker Desktop)で実際に動作検証しています。
8
-
9
- ---
10
-
11
- ## 1. 4 ケースの概観
12
-
13
- | 章 | ケース | アーキテクチャ | 構成要素 | 比較した手段 |
14
- |----|--------|--------------|---------|------------|
15
- | 13 | case-1 | モノリス | アプリ 1 + PostgreSQL | Compose 対 Kustomize |
16
- | 14 | case-2 | イベント駆動 MS | 8 アプリ + PostgreSQL + RabbitMQ | Kustomize 対 Helm |
17
- | 15 | case-3 | ES/CQRS(Axon) | 8 アプリ + PostgreSQL + Axon Server | Kustomize 対 Helm |
18
- | 16 | case-4 | ES/CQRS(Kafka) | 8 アプリ + PostgreSQL + Kafka + ZooKeeper | Kustomize 対 Helm |
19
-
20
- ワークロード数(Pod 種別)は、モノリスの 2 個から、マイクロサービスの 10〜11 個へと大きく増えます。
21
-
22
- | ケース | デプロイされる Pod(種別) |
23
- |--------|--------------------------|
24
- | case-1 | 2(app, postgres) |
25
- | case-2 | 10(gateway, 6 サービス, frontend, postgres, rabbitmq) |
26
- | case-3 | 10(gateway, 6 サービス, frontend, postgres, axonserver) |
27
- | case-4 | 11(gateway, 6 サービス, frontendms, postgres, kafka, zookeeper) |
28
-
29
- ---
30
-
31
- ## 2. 動作検証結果のまとめ
32
-
33
- すべてのケースで、実際にデプロイして疎通を確認しました。
34
-
35
- | ケース | 手段 | 結果 |
36
- |--------|------|------|
37
- | case-1 | Docker Compose | app + postgres healthy、`/actuator/health` UP、Flyway で 12 テーブル作成 |
38
- | case-1 | Kustomize | app/postgres 1/1 Running、health UP |
39
- | case-2 | Kustomize / Helm | 10 Pod すべて 1/1 Running、gateway 経由で全 6 サービス疎通(401)、frontend 200 |
40
- | case-3 | Kustomize / Helm | 10 Pod すべて 1/1 Running、Axon Server ヘルス 200、gateway 疎通、frontend 200 |
41
- | case-4 | Kustomize / Helm | 11 Pod すべて 1/1 Running、read エンドポイント 200、Kafka started、frontend 200 |
42
-
43
- マイクロサービスの 3 ケース(case-2/3/4)は、Kustomize と Helm の**両方**で同一システムをデプロイし、同じ疎通結果が得られることを確認しています。
44
-
45
- ---
46
-
47
- ## 3. デプロイ手段の比較軸まとめ
48
-
49
- ### Docker Compose 対 Kustomize(第 13 章の知見)
50
-
51
- | 観点 | Docker Compose | Kustomize |
52
- |------|----------------|-----------|
53
- | 対象 | 単一ホスト | Kubernetes クラスタ |
54
- | 機密 | 環境変数 / `.env` | Secret |
55
- | 永続化 | named volume | PVC |
56
- | 公開 | ポート公開 | Service + Ingress |
57
- | 自己修復・スケール | 限定的 | Deployment が標準提供 |
58
-
59
- Compose は「ローカルで素早く全体を起動する」用途に最適で、Kustomize(Kubernetes)は「本番でスケール・自己修復・公開を宣言的に管理する」用途に向きます。
60
-
61
- ### Kustomize 対 Helm(第 14〜16 章の知見)
62
-
63
- | 観点 | Kustomize | Helm |
64
- |------|-----------|------|
65
- | 同型サービスの繰り返し | サービスごとにファイル | `values` のリスト + ループ |
66
- | サービスの性質差(DB/Axon/JWT) | env を書く / 書かない | フラグ + `{{- if }}` |
67
- | 環境差分 | base + overlay の `patches` | `values-<env>.yaml` / `--set` |
68
- | 命名・ラベル共通化 | `commonLabels` | `_helpers.tpl` |
69
- | 単発インフラ(Kafka/Axon Server) | 専用ファイル | テンプレートに固定記述 |
70
- | リリース管理 | なし(kubectl apply) | リビジョン・ロールバック |
71
- | 透明性 | 生 YAML に近い | `helm template` で展開して確認 |
72
-
73
- ---
74
-
75
- ## 4. 横断的な考察 — 複雑さとデプロイ手段
76
-
77
- 4 ケースを並べると、一貫した傾向が見えます。
78
-
79
- ### (1) 構成要素が増えるほどテンプレート化(Helm)の価値が高まる
80
-
81
- モノリス(case-1)では、デプロイ対象が少なく、Compose の簡潔さと Kustomize の明示性のどちらも十分でした。手段の差は「好みと運用要件」の範囲です。
82
-
83
- マイクロサービス(case-2/3/4)になると、6〜7 個の**同型サービス**が現れます。Kustomize ではこれを個別ファイルに書き下すため重複が増え、Helm では `values` のリスト + ループ 1 つに集約できます。**同型コンポーネントが多いほど、Helm のテンプレート化が記述量と保守性で有利**になります。
84
-
85
- ### (2) サービスの「性質の差」はデータとして表現できる
86
-
87
- case-3 では「Axon を使う / 使わない」「JWT を持つ / 持たない」、case-4 では「追加 Secret 環境変数の有無」といったサービスごとの差がありました。Kustomize はファイルの書き分けで、Helm は `axon: true` のようなフラグ + 条件分岐で表現します。**性質をデータ化してテンプレートに構造を生成させる**Helm のアプローチは、サービスが増えるほど効きます。
88
-
89
- ### (3) 単発の「特別なインフラ」では差が縮まる
90
-
91
- Axon Server(case-3)や Kafka + ZooKeeper(case-4)のような単発のステートフル基盤は、ループの恩恵がないため、Kustomize と Helm で記述量はほぼ同じです。繊細で固有な設定(Axon の standalone/DCB、Kafka のリスナー設定など)は、生 YAML に近い Kustomize のほうが意図を追いやすいという見方もできます。
92
-
93
- ### (4) 環境差分は overlay(Kustomize)と values(Helm)で思想が異なる
94
-
95
- case-4 で見たように、Kustomize は「base を変えずに overlay でパッチを重ねる」、Helm は「1 つのテンプレートを values で変化させる」という異なる思想で環境差分を扱います。構成自体が環境で変わるなら overlay、値だけが変わるなら values が簡潔です。
96
-
97
- ### (5) 二者択一とは限らない
98
-
99
- case-4 は Kustomize と Helm の**両方**を保守していました。GitOps で環境別に宣言的管理したいなら Kustomize の overlay、チャートとしてバージョン管理・配布したいなら Helm、と**併用して使い分ける**のも現実的な選択です。
100
-
101
- ---
102
-
103
- ## 5. 選択の指針
104
-
105
- これまでの検証を踏まえた、実務的な選択の目安です。
106
-
107
- | 状況 | 推奨 |
108
- |------|------|
109
- | ローカル開発で全体を素早く起動したい | Docker Compose |
110
- | 少数のコンポーネントを Kubernetes へ | Kustomize(base のみ) |
111
- | 同型サービスが多いマイクロサービス | Helm(ループ + フラグ) |
112
- | 環境ごとに構成が変わる | Kustomize(overlay)または併用 |
113
- | チャートとして配布・バージョン管理したい | Helm |
114
- | GitOps で宣言的に環境別管理 | Kustomize の overlay(+ Helm 併用も可) |
115
-
116
- アーキテクチャが複雑になるほど、デプロイ手段は「動けばよい」から「重複を抑え、環境差分を安全に管理し、リリースを追跡できる」ことが重要になります。本ケーススタディは、その移行を 1 つのドメインの 4 実装で具体的に示しました。
117
-
118
- ---
119
-
120
- ## まとめ
121
-
122
- - 同一ドメインの 4 アーキテクチャ(モノリス / イベント駆動 / ES・CQRS Axon / ES・CQRS Kafka)を、Compose・Kustomize・Helm で実装・デプロイ・検証しました
123
- - 構成要素が増えるほど、同型サービスのテンプレート化(Helm)と環境差分の宣言的管理(Kustomize overlay)の価値が高まります
124
- - 単発インフラでは両手段の差は縮まり、繊細な設定はむしろ Kustomize の透明性が活きます
125
- - 「Kustomize か Helm か」は二者択一ではなく、GitOps と配布で併用する選択も現実的です
126
- - これでシリーズ全体(基礎 12 章 + ケーススタディ 5 章 + 付録 3)を通じ、コンテナの基礎から実システムのデプロイ手段の選択までを一貫して学べます
127
-
128
- ---
129
-
130
- - 前の章: [第 16 章 ES/CQRS マイクロサービス(Kafka)のデプロイ — Kustomize 対 Helm](16-case-escqrs-kafka-kustomize-vs-helm.md)
131
- - 次の章: [第 18 章 ケーススタディの負荷テスト](18-case-load-testing.md)
132
- - シリーズ目次: [Docker/Kubernetes 実践コンテナ解説](index.md)
1
+ ---
2
+ type: Article
3
+ title: "第 17 章 ケーススタディ実装比較まとめ"
4
+ description: "第 13〜16 章では、同一ドメイン(国際貨物輸送システム = Cargo Tracker)を 4 つの異なるアーキテクチャで実装し、それぞれを Docker Compose・Kustomize・Helm でデプロイして比較しました。"
5
+ tags: [article, getting-start-docker-kubernetes]
6
+ status: stable
7
+ generated: { by: human:kakimomokuri, at: 2026-06-26T00:29:42Z }
8
+ ---
9
+
10
+ # 第 17 章 ケーススタディ実装比較まとめ
11
+
12
+ ## はじめに
13
+
14
+ 第 13〜16 章では、同一ドメイン(国際貨物輸送システム = Cargo Tracker)を 4 つの異なるアーキテクチャで実装し、それぞれを Docker Compose・Kustomize・Helm でデプロイして比較しました。この章では 4 ケースを横断し、**アーキテクチャの複雑さとデプロイ手段の選択がどう関係するか**を総括します。
15
+
16
+ 実装はすべて [`apps/case-studies/`](https://github.com/k2works/getting-started-docker-kubernetes/tree/main/apps/case-studies) にあり、ローカル Kubernetes(Docker Desktop)で実際に動作検証しています。
17
+
18
+ ---
19
+
20
+ ## 1. 4 ケースの概観
21
+
22
+ | 章 | ケース | アーキテクチャ | 構成要素 | 比較した手段 |
23
+ |----|--------|--------------|---------|------------|
24
+ | 13 | case-1 | モノリス | アプリ 1 + PostgreSQL | Compose 対 Kustomize |
25
+ | 14 | case-2 | イベント駆動 MS | 8 アプリ + PostgreSQL + RabbitMQ | Kustomize 対 Helm |
26
+ | 15 | case-3 | ES/CQRS(Axon) | 8 アプリ + PostgreSQL + Axon Server | Kustomize 対 Helm |
27
+ | 16 | case-4 | ES/CQRS(Kafka) | 8 アプリ + PostgreSQL + Kafka + ZooKeeper | Kustomize 対 Helm |
28
+
29
+ ワークロード数(Pod 種別)は、モノリスの 2 個から、マイクロサービスの 10〜11 個へと大きく増えます。
30
+
31
+ | ケース | デプロイされる Pod(種別) |
32
+ |--------|--------------------------|
33
+ | case-1 | 2(app, postgres) |
34
+ | case-2 | 10(gateway, 6 サービス, frontend, postgres, rabbitmq) |
35
+ | case-3 | 10(gateway, 6 サービス, frontend, postgres, axonserver) |
36
+ | case-4 | 11(gateway, 6 サービス, frontendms, postgres, kafka, zookeeper) |
37
+
38
+ ---
39
+
40
+ ## 2. 動作検証結果のまとめ
41
+
42
+ すべてのケースで、実際にデプロイして疎通を確認しました。
43
+
44
+ | ケース | 手段 | 結果 |
45
+ |--------|------|------|
46
+ | case-1 | Docker Compose | app + postgres healthy、`/actuator/health` UP、Flyway で 12 テーブル作成 |
47
+ | case-1 | Kustomize | app/postgres 1/1 Running、health UP |
48
+ | case-2 | Kustomize / Helm | 10 Pod すべて 1/1 Running、gateway 経由で全 6 サービス疎通(401)、frontend 200 |
49
+ | case-3 | Kustomize / Helm | 10 Pod すべて 1/1 Running、Axon Server ヘルス 200、gateway 疎通、frontend 200 |
50
+ | case-4 | Kustomize / Helm | 11 Pod すべて 1/1 Running、read エンドポイント 200、Kafka started、frontend 200 |
51
+
52
+ マイクロサービスの 3 ケース(case-2/3/4)は、Kustomize と Helm の**両方**で同一システムをデプロイし、同じ疎通結果が得られることを確認しています。
53
+
54
+ ---
55
+
56
+ ## 3. デプロイ手段の比較軸まとめ
57
+
58
+ ### Docker Compose 対 Kustomize(第 13 章の知見)
59
+
60
+ | 観点 | Docker Compose | Kustomize |
61
+ |------|----------------|-----------|
62
+ | 対象 | 単一ホスト | Kubernetes クラスタ |
63
+ | 機密 | 環境変数 / `.env` | Secret |
64
+ | 永続化 | named volume | PVC |
65
+ | 公開 | ポート公開 | Service + Ingress |
66
+ | 自己修復・スケール | 限定的 | Deployment が標準提供 |
67
+
68
+ Compose は「ローカルで素早く全体を起動する」用途に最適で、Kustomize(Kubernetes)は「本番でスケール・自己修復・公開を宣言的に管理する」用途に向きます。
69
+
70
+ ### Kustomize 対 Helm(第 14〜16 章の知見)
71
+
72
+ | 観点 | Kustomize | Helm |
73
+ |------|-----------|------|
74
+ | 同型サービスの繰り返し | サービスごとにファイル | `values` のリスト + ループ |
75
+ | サービスの性質差(DB/Axon/JWT) | env を書く / 書かない | フラグ + `{{- if }}` |
76
+ | 環境差分 | base + overlay の `patches` | `values-<env>.yaml` / `--set` |
77
+ | 命名・ラベル共通化 | `commonLabels` | `_helpers.tpl` |
78
+ | 単発インフラ(Kafka/Axon Server) | 専用ファイル | テンプレートに固定記述 |
79
+ | リリース管理 | なし(kubectl apply) | リビジョン・ロールバック |
80
+ | 透明性 | 生 YAML に近い | `helm template` で展開して確認 |
81
+
82
+ ---
83
+
84
+ ## 4. 横断的な考察 — 複雑さとデプロイ手段
85
+
86
+ 4 ケースを並べると、一貫した傾向が見えます。
87
+
88
+ ### (1) 構成要素が増えるほどテンプレート化(Helm)の価値が高まる
89
+
90
+ モノリス(case-1)では、デプロイ対象が少なく、Compose の簡潔さと Kustomize の明示性のどちらも十分でした。手段の差は「好みと運用要件」の範囲です。
91
+
92
+ マイクロサービス(case-2/3/4)になると、6〜7 個の**同型サービス**が現れます。Kustomize ではこれを個別ファイルに書き下すため重複が増え、Helm では `values` のリスト + ループ 1 つに集約できます。**同型コンポーネントが多いほど、Helm のテンプレート化が記述量と保守性で有利**になります。
93
+
94
+ ### (2) サービスの「性質の差」はデータとして表現できる
95
+
96
+ case-3 では「Axon を使う / 使わない」「JWT を持つ / 持たない」、case-4 では「追加 Secret 環境変数の有無」といったサービスごとの差がありました。Kustomize はファイルの書き分けで、Helm は `axon: true` のようなフラグ + 条件分岐で表現します。**性質をデータ化してテンプレートに構造を生成させる**Helm のアプローチは、サービスが増えるほど効きます。
97
+
98
+ ### (3) 単発の「特別なインフラ」では差が縮まる
99
+
100
+ Axon Server(case-3)や Kafka + ZooKeeper(case-4)のような単発のステートフル基盤は、ループの恩恵がないため、Kustomize と Helm で記述量はほぼ同じです。繊細で固有な設定(Axon の standalone/DCB、Kafka のリスナー設定など)は、生 YAML に近い Kustomize のほうが意図を追いやすいという見方もできます。
101
+
102
+ ### (4) 環境差分は overlay(Kustomize)と values(Helm)で思想が異なる
103
+
104
+ case-4 で見たように、Kustomize は「base を変えずに overlay でパッチを重ねる」、Helm は「1 つのテンプレートを values で変化させる」という異なる思想で環境差分を扱います。構成自体が環境で変わるなら overlay、値だけが変わるなら values が簡潔です。
105
+
106
+ ### (5) 二者択一とは限らない
107
+
108
+ case-4 は Kustomize と Helm の**両方**を保守していました。GitOps で環境別に宣言的管理したいなら Kustomize の overlay、チャートとしてバージョン管理・配布したいなら Helm、と**併用して使い分ける**のも現実的な選択です。
109
+
110
+ ---
111
+
112
+ ## 5. 選択の指針
113
+
114
+ これまでの検証を踏まえた、実務的な選択の目安です。
115
+
116
+ | 状況 | 推奨 |
117
+ |------|------|
118
+ | ローカル開発で全体を素早く起動したい | Docker Compose |
119
+ | 少数のコンポーネントを Kubernetes へ | Kustomize(base のみ) |
120
+ | 同型サービスが多いマイクロサービス | Helm(ループ + フラグ) |
121
+ | 環境ごとに構成が変わる | Kustomize(overlay)または併用 |
122
+ | チャートとして配布・バージョン管理したい | Helm |
123
+ | GitOps で宣言的に環境別管理 | Kustomize の overlay(+ Helm 併用も可) |
124
+
125
+ アーキテクチャが複雑になるほど、デプロイ手段は「動けばよい」から「重複を抑え、環境差分を安全に管理し、リリースを追跡できる」ことが重要になります。本ケーススタディは、その移行を 1 つのドメインの 4 実装で具体的に示しました。
126
+
127
+ ---
128
+
129
+ ## まとめ
130
+
131
+ - 同一ドメインの 4 アーキテクチャ(モノリス / イベント駆動 / ES・CQRS Axon / ES・CQRS Kafka)を、Compose・Kustomize・Helm で実装・デプロイ・検証しました
132
+ - 構成要素が増えるほど、同型サービスのテンプレート化(Helm)と環境差分の宣言的管理(Kustomize overlay)の価値が高まります
133
+ - 単発インフラでは両手段の差は縮まり、繊細な設定はむしろ Kustomize の透明性が活きます
134
+ - 「Kustomize か Helm か」は二者択一ではなく、GitOps と配布で併用する選択も現実的です
135
+ - これでシリーズ全体(基礎 12 章 + ケーススタディ 5 章 + 付録 3)を通じ、コンテナの基礎から実システムのデプロイ手段の選択までを一貫して学べます
136
+
137
+ ---
138
+
139
+ - 前の章: [第 16 章 ES/CQRS マイクロサービス(Kafka)のデプロイ — Kustomize 対 Helm](16-case-escqrs-kafka-kustomize-vs-helm.md)
140
+ - 次の章: [第 18 章 ケーススタディの負荷テスト](18-case-load-testing.md)
141
+ - シリーズ目次: [Docker/Kubernetes 実践コンテナ解説](index.md)