@k2works/claude-code-booster 6.2.0 → 6.3.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 (618) hide show
  1. package/lib/assets/.claude/skills/practicing-getting-start-tdd/SKILL.md +3 -7
  2. package/lib/assets/docs/article/index.md +16 -41
  3. package/lib/assets/docs/index.md +1 -1
  4. package/lib/assets/mkdocs.yml +0 -6
  5. package/package.json +1 -1
  6. package/lib/assets/docs/article/functional-desgin-ppp/all/01-immutability-and-data-transformation.md +0 -484
  7. package/lib/assets/docs/article/functional-desgin-ppp/all/02-function-composition.md +0 -528
  8. package/lib/assets/docs/article/functional-desgin-ppp/all/03-polymorphism.md +0 -546
  9. package/lib/assets/docs/article/functional-desgin-ppp/all/04-data-validation.md +0 -309
  10. package/lib/assets/docs/article/functional-desgin-ppp/all/05-property-based-testing.md +0 -329
  11. package/lib/assets/docs/article/functional-desgin-ppp/all/06-tdd-and-functional.md +0 -507
  12. package/lib/assets/docs/article/functional-desgin-ppp/all/07-composite-pattern.md +0 -307
  13. package/lib/assets/docs/article/functional-desgin-ppp/all/08-decorator-pattern.md +0 -300
  14. package/lib/assets/docs/article/functional-desgin-ppp/all/09-adapter-pattern.md +0 -345
  15. package/lib/assets/docs/article/functional-desgin-ppp/all/10-strategy-pattern.md +0 -312
  16. package/lib/assets/docs/article/functional-desgin-ppp/all/11-command-pattern.md +0 -295
  17. package/lib/assets/docs/article/functional-desgin-ppp/all/12-visitor-pattern.md +0 -331
  18. package/lib/assets/docs/article/functional-desgin-ppp/all/13-abstract-factory-pattern.md +0 -328
  19. package/lib/assets/docs/article/functional-desgin-ppp/all/14-abstract-server-pattern.md +0 -374
  20. package/lib/assets/docs/article/functional-desgin-ppp/all/15-gossiping-bus-drivers.md +0 -165
  21. package/lib/assets/docs/article/functional-desgin-ppp/all/16-payroll-system.md +0 -187
  22. package/lib/assets/docs/article/functional-desgin-ppp/all/17-video-rental-system.md +0 -321
  23. package/lib/assets/docs/article/functional-desgin-ppp/all/18-concurrency-system.md +0 -296
  24. package/lib/assets/docs/article/functional-desgin-ppp/all/19-wa-tor-simulation.md +0 -295
  25. package/lib/assets/docs/article/functional-desgin-ppp/all/20-pattern-interactions.md +0 -283
  26. package/lib/assets/docs/article/functional-desgin-ppp/all/21-best-practices.md +0 -303
  27. package/lib/assets/docs/article/functional-desgin-ppp/all/22-oo-to-fp-migration.md +0 -346
  28. package/lib/assets/docs/article/functional-desgin-ppp/all/index.md +0 -388
  29. package/lib/assets/docs/article/functional-desgin-ppp/clojure/01-immutability-and-data-transformation.md +0 -282
  30. package/lib/assets/docs/article/functional-desgin-ppp/clojure/02-function-composition.md +0 -389
  31. package/lib/assets/docs/article/functional-desgin-ppp/clojure/03-polymorphism.md +0 -393
  32. package/lib/assets/docs/article/functional-desgin-ppp/clojure/04-clojure-spec.md +0 -359
  33. package/lib/assets/docs/article/functional-desgin-ppp/clojure/05-property-based-testing.md +0 -361
  34. package/lib/assets/docs/article/functional-desgin-ppp/clojure/06-tdd-in-functional.md +0 -392
  35. package/lib/assets/docs/article/functional-desgin-ppp/clojure/07-composite-pattern.md +0 -538
  36. package/lib/assets/docs/article/functional-desgin-ppp/clojure/08-decorator-pattern.md +0 -404
  37. package/lib/assets/docs/article/functional-desgin-ppp/clojure/09-adapter-pattern.md +0 -408
  38. package/lib/assets/docs/article/functional-desgin-ppp/clojure/10-strategy-pattern.md +0 -494
  39. package/lib/assets/docs/article/functional-desgin-ppp/clojure/11-command-pattern.md +0 -575
  40. package/lib/assets/docs/article/functional-desgin-ppp/clojure/12-visitor-pattern.md +0 -576
  41. package/lib/assets/docs/article/functional-desgin-ppp/clojure/13-abstract-factory-pattern.md +0 -484
  42. package/lib/assets/docs/article/functional-desgin-ppp/clojure/14-abstract-server-pattern.md +0 -471
  43. package/lib/assets/docs/article/functional-desgin-ppp/clojure/15-gossiping-bus-drivers.md +0 -334
  44. package/lib/assets/docs/article/functional-desgin-ppp/clojure/16-payroll-system.md +0 -410
  45. package/lib/assets/docs/article/functional-desgin-ppp/clojure/17-video-rental-system.md +0 -459
  46. package/lib/assets/docs/article/functional-desgin-ppp/clojure/18-concurrency-system.md +0 -484
  47. package/lib/assets/docs/article/functional-desgin-ppp/clojure/19-wator-simulation.md +0 -748
  48. package/lib/assets/docs/article/functional-desgin-ppp/clojure/20-pattern-interactions.md +0 -576
  49. package/lib/assets/docs/article/functional-desgin-ppp/clojure/21-best-practices.md +0 -527
  50. package/lib/assets/docs/article/functional-desgin-ppp/clojure/22-oo-to-fp-migration.md +0 -541
  51. package/lib/assets/docs/article/functional-desgin-ppp/clojure/index.md +0 -241
  52. package/lib/assets/docs/article/functional-desgin-ppp/elixir/01-immutability-and-data-transformation.md +0 -392
  53. package/lib/assets/docs/article/functional-desgin-ppp/elixir/02-function-composition.md +0 -383
  54. package/lib/assets/docs/article/functional-desgin-ppp/elixir/03-polymorphism.md +0 -384
  55. package/lib/assets/docs/article/functional-desgin-ppp/elixir/04-data-validation.md +0 -204
  56. package/lib/assets/docs/article/functional-desgin-ppp/elixir/05-property-based-testing.md +0 -277
  57. package/lib/assets/docs/article/functional-desgin-ppp/elixir/06-tdd-and-fp.md +0 -303
  58. package/lib/assets/docs/article/functional-desgin-ppp/elixir/07-effects-and-pure-functions.md +0 -173
  59. package/lib/assets/docs/article/functional-desgin-ppp/elixir/08-error-handling-strategies.md +0 -177
  60. package/lib/assets/docs/article/functional-desgin-ppp/elixir/09-io-and-external-systems.md +0 -263
  61. package/lib/assets/docs/article/functional-desgin-ppp/elixir/10-concurrency-patterns.md +0 -278
  62. package/lib/assets/docs/article/functional-desgin-ppp/elixir/11-command-pattern.md +0 -157
  63. package/lib/assets/docs/article/functional-desgin-ppp/elixir/12-visitor-pattern.md +0 -185
  64. package/lib/assets/docs/article/functional-desgin-ppp/elixir/13-abstract-factory-pattern.md +0 -613
  65. package/lib/assets/docs/article/functional-desgin-ppp/elixir/14-abstract-server-pattern.md +0 -738
  66. package/lib/assets/docs/article/functional-desgin-ppp/elixir/15-gossiping-bus-drivers.md +0 -300
  67. package/lib/assets/docs/article/functional-desgin-ppp/elixir/16-payroll-system.md +0 -429
  68. package/lib/assets/docs/article/functional-desgin-ppp/elixir/17-video-rental-system.md +0 -328
  69. package/lib/assets/docs/article/functional-desgin-ppp/elixir/18-concurrency-system.md +0 -475
  70. package/lib/assets/docs/article/functional-desgin-ppp/elixir/19-wator-simulation.md +0 -532
  71. package/lib/assets/docs/article/functional-desgin-ppp/elixir/20-pattern-interactions.md +0 -296
  72. package/lib/assets/docs/article/functional-desgin-ppp/elixir/21-best-practices.md +0 -349
  73. package/lib/assets/docs/article/functional-desgin-ppp/elixir/22-oo-to-fp-migration.md +0 -404
  74. package/lib/assets/docs/article/functional-desgin-ppp/elixir/index.md +0 -248
  75. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/01-immutability-and-data-transformation.md +0 -393
  76. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/02-function-composition.md +0 -461
  77. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/03-polymorphism.md +0 -504
  78. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/04-data-validation.md +0 -425
  79. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/05-property-based-testing.md +0 -391
  80. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/06-tdd-functional.md +0 -696
  81. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/07-composite-pattern.md +0 -451
  82. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/08-decorator-pattern.md +0 -488
  83. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/09-adapter-pattern.md +0 -488
  84. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/10-strategy-pattern.md +0 -436
  85. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/11-command-pattern.md +0 -437
  86. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/12-visitor-pattern.md +0 -348
  87. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/13-abstract-factory-pattern.md +0 -318
  88. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/14-abstract-server-pattern.md +0 -605
  89. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/15-gossiping-bus-drivers.md +0 -364
  90. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/16-payroll-system.md +0 -359
  91. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/17-video-rental-system.md +0 -423
  92. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/18-concurrency-system.md +0 -376
  93. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/19-wator-simulation.md +0 -412
  94. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/20-pattern-interactions.md +0 -300
  95. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/21-best-practices.md +0 -333
  96. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/22-oo-to-fp-migration.md +0 -341
  97. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/index.md +0 -274
  98. package/lib/assets/docs/article/functional-desgin-ppp/haskell/01-immutability-and-data-transformation.md +0 -307
  99. package/lib/assets/docs/article/functional-desgin-ppp/haskell/02-function-composition.md +0 -313
  100. package/lib/assets/docs/article/functional-desgin-ppp/haskell/03-polymorphism.md +0 -371
  101. package/lib/assets/docs/article/functional-desgin-ppp/haskell/04-data-validation.md +0 -266
  102. package/lib/assets/docs/article/functional-desgin-ppp/haskell/05-property-based-testing.md +0 -263
  103. package/lib/assets/docs/article/functional-desgin-ppp/haskell/06-tdd-functional.md +0 -292
  104. package/lib/assets/docs/article/functional-desgin-ppp/haskell/07-composite-pattern.md +0 -404
  105. package/lib/assets/docs/article/functional-desgin-ppp/haskell/08-decorator-pattern.md +0 -328
  106. package/lib/assets/docs/article/functional-desgin-ppp/haskell/09-adapter-pattern.md +0 -391
  107. package/lib/assets/docs/article/functional-desgin-ppp/haskell/10-strategy-pattern.md +0 -296
  108. package/lib/assets/docs/article/functional-desgin-ppp/haskell/11-command-pattern.md +0 -312
  109. package/lib/assets/docs/article/functional-desgin-ppp/haskell/12-visitor-pattern.md +0 -335
  110. package/lib/assets/docs/article/functional-desgin-ppp/haskell/13-abstract-factory-pattern.md +0 -341
  111. package/lib/assets/docs/article/functional-desgin-ppp/haskell/14-abstract-server-pattern.md +0 -388
  112. package/lib/assets/docs/article/functional-desgin-ppp/haskell/15-gossiping-bus-drivers.md +0 -186
  113. package/lib/assets/docs/article/functional-desgin-ppp/haskell/16-payroll-system.md +0 -228
  114. package/lib/assets/docs/article/functional-desgin-ppp/haskell/17-video-rental-system.md +0 -253
  115. package/lib/assets/docs/article/functional-desgin-ppp/haskell/18-concurrency-system.md +0 -372
  116. package/lib/assets/docs/article/functional-desgin-ppp/haskell/19-wator-simulation.md +0 -447
  117. package/lib/assets/docs/article/functional-desgin-ppp/haskell/20-pattern-interactions.md +0 -334
  118. package/lib/assets/docs/article/functional-desgin-ppp/haskell/21-best-practices.md +0 -412
  119. package/lib/assets/docs/article/functional-desgin-ppp/haskell/22-oo-to-fp-migration.md +0 -478
  120. package/lib/assets/docs/article/functional-desgin-ppp/haskell/index.md +0 -174
  121. package/lib/assets/docs/article/functional-desgin-ppp/index.md +0 -90
  122. package/lib/assets/docs/article/functional-desgin-ppp/rust/01-immutability-and-data-transformation.md +0 -459
  123. package/lib/assets/docs/article/functional-desgin-ppp/rust/02-function-composition.md +0 -472
  124. package/lib/assets/docs/article/functional-desgin-ppp/rust/03-polymorphism.md +0 -434
  125. package/lib/assets/docs/article/functional-desgin-ppp/rust/04-data-validation.md +0 -282
  126. package/lib/assets/docs/article/functional-desgin-ppp/rust/05-property-based-testing.md +0 -256
  127. package/lib/assets/docs/article/functional-desgin-ppp/rust/06-tdd-and-functional.md +0 -850
  128. package/lib/assets/docs/article/functional-desgin-ppp/rust/07-composite-pattern.md +0 -393
  129. package/lib/assets/docs/article/functional-desgin-ppp/rust/08-decorator-pattern.md +0 -392
  130. package/lib/assets/docs/article/functional-desgin-ppp/rust/09-adapter-pattern.md +0 -348
  131. package/lib/assets/docs/article/functional-desgin-ppp/rust/10-strategy-pattern.md +0 -340
  132. package/lib/assets/docs/article/functional-desgin-ppp/rust/11-command-pattern.md +0 -365
  133. package/lib/assets/docs/article/functional-desgin-ppp/rust/12-visitor-pattern.md +0 -388
  134. package/lib/assets/docs/article/functional-desgin-ppp/rust/13-abstract-factory-pattern.md +0 -370
  135. package/lib/assets/docs/article/functional-desgin-ppp/rust/14-abstract-server-pattern.md +0 -401
  136. package/lib/assets/docs/article/functional-desgin-ppp/rust/15-gossiping-bus-drivers.md +0 -309
  137. package/lib/assets/docs/article/functional-desgin-ppp/rust/16-payroll-system.md +0 -306
  138. package/lib/assets/docs/article/functional-desgin-ppp/rust/17-video-rental-system.md +0 -313
  139. package/lib/assets/docs/article/functional-desgin-ppp/rust/18-concurrency-system.md +0 -324
  140. package/lib/assets/docs/article/functional-desgin-ppp/rust/19-wator-simulation.md +0 -320
  141. package/lib/assets/docs/article/functional-desgin-ppp/rust/20-pattern-interactions.md +0 -313
  142. package/lib/assets/docs/article/functional-desgin-ppp/rust/21-best-practices.md +0 -345
  143. package/lib/assets/docs/article/functional-desgin-ppp/rust/22-oo-to-fp-migration.md +0 -358
  144. package/lib/assets/docs/article/functional-desgin-ppp/rust/index.md +0 -243
  145. package/lib/assets/docs/article/functional-desgin-ppp/scala/01-immutability-and-data-transformation.md +0 -337
  146. package/lib/assets/docs/article/functional-desgin-ppp/scala/02-function-composition.md +0 -357
  147. package/lib/assets/docs/article/functional-desgin-ppp/scala/03-polymorphism.md +0 -366
  148. package/lib/assets/docs/article/functional-desgin-ppp/scala/04-data-validation.md +0 -373
  149. package/lib/assets/docs/article/functional-desgin-ppp/scala/05-property-based-testing.md +0 -524
  150. package/lib/assets/docs/article/functional-desgin-ppp/scala/06-tdd-functional.md +0 -566
  151. package/lib/assets/docs/article/functional-desgin-ppp/scala/07-composite-pattern.md +0 -372
  152. package/lib/assets/docs/article/functional-desgin-ppp/scala/08-decorator-pattern.md +0 -336
  153. package/lib/assets/docs/article/functional-desgin-ppp/scala/09-adapter-pattern.md +0 -526
  154. package/lib/assets/docs/article/functional-desgin-ppp/scala/10-strategy-pattern.md +0 -450
  155. package/lib/assets/docs/article/functional-desgin-ppp/scala/11-command-pattern.md +0 -416
  156. package/lib/assets/docs/article/functional-desgin-ppp/scala/12-visitor-pattern.md +0 -388
  157. package/lib/assets/docs/article/functional-desgin-ppp/scala/13-abstract-factory-pattern.md +0 -407
  158. package/lib/assets/docs/article/functional-desgin-ppp/scala/14-abstract-server-pattern.md +0 -485
  159. package/lib/assets/docs/article/functional-desgin-ppp/scala/15-gossiping-bus-drivers.md +0 -400
  160. package/lib/assets/docs/article/functional-desgin-ppp/scala/16-payroll-system.md +0 -351
  161. package/lib/assets/docs/article/functional-desgin-ppp/scala/17-video-rental-system.md +0 -333
  162. package/lib/assets/docs/article/functional-desgin-ppp/scala/18-concurrency-system.md +0 -739
  163. package/lib/assets/docs/article/functional-desgin-ppp/scala/19-wator-simulation.md +0 -633
  164. package/lib/assets/docs/article/functional-desgin-ppp/scala/20-pattern-interactions.md +0 -521
  165. package/lib/assets/docs/article/functional-desgin-ppp/scala/21-best-practices.md +0 -442
  166. package/lib/assets/docs/article/functional-desgin-ppp/scala/22-oo-to-fp-migration.md +0 -697
  167. package/lib/assets/docs/article/functional-desgin-ppp/scala/index.md +0 -243
  168. package/lib/assets/docs/article/getting-start-docker-kubernetes/01-container-and-docker-basics.md +0 -341
  169. package/lib/assets/docs/article/getting-start-docker-kubernetes/02-container-deployment.md +0 -785
  170. package/lib/assets/docs/article/getting-start-docker-kubernetes/03-practical-container-build-deploy.md +0 -466
  171. package/lib/assets/docs/article/getting-start-docker-kubernetes/04-multi-container-application.md +0 -878
  172. package/lib/assets/docs/article/getting-start-docker-kubernetes/05-kubernetes-introduction.md +0 -585
  173. package/lib/assets/docs/article/getting-start-docker-kubernetes/06-kubernetes-deploy-cluster.md +0 -620
  174. package/lib/assets/docs/article/getting-start-docker-kubernetes/07-kubernetes-advanced.md +0 -621
  175. package/lib/assets/docs/article/getting-start-docker-kubernetes/08-kubernetes-packaging.md +0 -518
  176. package/lib/assets/docs/article/getting-start-docker-kubernetes/09-container-operations.md +0 -546
  177. package/lib/assets/docs/article/getting-start-docker-kubernetes/10-optimal-container-image.md +0 -640
  178. package/lib/assets/docs/article/getting-start-docker-kubernetes/11-continuous-delivery.md +0 -607
  179. package/lib/assets/docs/article/getting-start-docker-kubernetes/12-container-use-cases.md +0 -463
  180. package/lib/assets/docs/article/getting-start-docker-kubernetes/13-case-monolith-compose-vs-kustomize.md +0 -346
  181. package/lib/assets/docs/article/getting-start-docker-kubernetes/14-case-event-driven-kustomize-vs-helm.md +0 -324
  182. package/lib/assets/docs/article/getting-start-docker-kubernetes/15-case-escqrs-axon-kustomize-vs-helm.md +0 -297
  183. package/lib/assets/docs/article/getting-start-docker-kubernetes/16-case-escqrs-kafka-kustomize-vs-helm.md +0 -256
  184. package/lib/assets/docs/article/getting-start-docker-kubernetes/17-case-comparison-summary.md +0 -141
  185. package/lib/assets/docs/article/getting-start-docker-kubernetes/18-case-load-testing.md +0 -303
  186. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-a-dev-tools-setup.md +0 -274
  187. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-b-orchestration-environments.md +0 -530
  188. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-c-tips.md +0 -519
  189. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-01-comic.png +0 -0
  190. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-02-comic.png +0 -0
  191. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-03-comic.png +0 -0
  192. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-04-comic.png +0 -0
  193. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-05-comic.png +0 -0
  194. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-06-comic.png +0 -0
  195. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-07-comic.png +0 -0
  196. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-08-comic.png +0 -0
  197. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-09-comic.png +0 -0
  198. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-10-comic.png +0 -0
  199. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-11-comic.png +0 -0
  200. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/chapter-12-comic.png +0 -0
  201. package/lib/assets/docs/article/getting-start-docker-kubernetes/images/overview-comic.png +0 -0
  202. package/lib/assets/docs/article/getting-start-docker-kubernetes/index.md +0 -82
  203. package/lib/assets/docs/article/getting-start-docker-kubernetes/outline.md +0 -220
  204. package/lib/assets/docs/article/getting-start-tdd/clojure/01-todo-list-and-first-test.md +0 -175
  205. package/lib/assets/docs/article/getting-start-tdd/clojure/02-fake-it-and-triangulation.md +0 -171
  206. package/lib/assets/docs/article/getting-start-tdd/clojure/03-obvious-implementation-and-refactoring.md +0 -144
  207. package/lib/assets/docs/article/getting-start-tdd/clojure/04-version-control-and-conventional-commits.md +0 -97
  208. package/lib/assets/docs/article/getting-start-tdd/clojure/05-package-management-and-static-analysis.md +0 -308
  209. package/lib/assets/docs/article/getting-start-tdd/clojure/06-task-runner-and-ci-cd.md +0 -250
  210. package/lib/assets/docs/article/getting-start-tdd/clojure/07-protocols-and-records.md +0 -140
  211. package/lib/assets/docs/article/getting-start-tdd/clojure/08-multimethods-and-design-patterns.md +0 -139
  212. package/lib/assets/docs/article/getting-start-tdd/clojure/09-namespaces-and-module-design.md +0 -136
  213. package/lib/assets/docs/article/getting-start-tdd/clojure/10-higher-order-functions-and-composition.md +0 -123
  214. package/lib/assets/docs/article/getting-start-tdd/clojure/11-persistent-data-and-pipeline.md +0 -147
  215. package/lib/assets/docs/article/getting-start-tdd/clojure/12-error-handling-and-spec.md +0 -170
  216. package/lib/assets/docs/article/getting-start-tdd/clojure/index.md +0 -65
  217. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter01.md +0 -241
  218. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter02.md +0 -253
  219. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter03.md +0 -211
  220. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter04.md +0 -101
  221. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter05.md +0 -265
  222. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter06.md +0 -204
  223. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter07.md +0 -223
  224. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter08.md +0 -258
  225. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter09.md +0 -183
  226. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter10.md +0 -175
  227. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter11.md +0 -201
  228. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter12.md +0 -220
  229. package/lib/assets/docs/article/getting-start-tdd/csharp/index.md +0 -83
  230. package/lib/assets/docs/article/getting-start-tdd/elixir/01-todo-list-and-first-test.md +0 -96
  231. package/lib/assets/docs/article/getting-start-tdd/elixir/02-fake-it-and-triangulation.md +0 -104
  232. package/lib/assets/docs/article/getting-start-tdd/elixir/03-obvious-implementation-and-refactoring.md +0 -118
  233. package/lib/assets/docs/article/getting-start-tdd/elixir/04-version-control-and-conventional-commits.md +0 -105
  234. package/lib/assets/docs/article/getting-start-tdd/elixir/05-package-management-and-static-analysis.md +0 -97
  235. package/lib/assets/docs/article/getting-start-tdd/elixir/06-task-runner-and-ci-cd.md +0 -80
  236. package/lib/assets/docs/article/getting-start-tdd/elixir/07-structs-and-protocols.md +0 -119
  237. package/lib/assets/docs/article/getting-start-tdd/elixir/08-pattern-matching-and-guards.md +0 -117
  238. package/lib/assets/docs/article/getting-start-tdd/elixir/09-module-design-and-behaviours.md +0 -113
  239. package/lib/assets/docs/article/getting-start-tdd/elixir/10-higher-order-functions-and-pipeline.md +0 -187
  240. package/lib/assets/docs/article/getting-start-tdd/elixir/11-stream-and-lazy-evaluation.md +0 -151
  241. package/lib/assets/docs/article/getting-start-tdd/elixir/12-error-handling-and-with.md +0 -154
  242. package/lib/assets/docs/article/getting-start-tdd/elixir/index.md +0 -35
  243. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter01.md +0 -211
  244. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter02.md +0 -255
  245. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter03.md +0 -227
  246. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter04.md +0 -188
  247. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter05.md +0 -276
  248. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter06.md +0 -199
  249. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter07.md +0 -170
  250. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter08.md +0 -184
  251. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter09.md +0 -231
  252. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter10.md +0 -198
  253. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter11.md +0 -221
  254. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter12.md +0 -224
  255. package/lib/assets/docs/article/getting-start-tdd/fsharp/index.md +0 -71
  256. package/lib/assets/docs/article/getting-start-tdd/go/01-todo-list-and-first-test.md +0 -222
  257. package/lib/assets/docs/article/getting-start-tdd/go/02-fake-it-and-triangulation.md +0 -311
  258. package/lib/assets/docs/article/getting-start-tdd/go/03-obvious-implementation-and-refactoring.md +0 -348
  259. package/lib/assets/docs/article/getting-start-tdd/go/04-version-control-and-conventional-commits.md +0 -121
  260. package/lib/assets/docs/article/getting-start-tdd/go/05-package-management-and-static-analysis.md +0 -281
  261. package/lib/assets/docs/article/getting-start-tdd/go/06-task-runner-and-ci-cd.md +0 -242
  262. package/lib/assets/docs/article/getting-start-tdd/go/07-encapsulation-and-polymorphism.md +0 -402
  263. package/lib/assets/docs/article/getting-start-tdd/go/08-design-patterns.md +0 -430
  264. package/lib/assets/docs/article/getting-start-tdd/go/09-solid-principles-and-module-design.md +0 -408
  265. package/lib/assets/docs/article/getting-start-tdd/go/10-higher-order-functions-and-composition.md +0 -234
  266. package/lib/assets/docs/article/getting-start-tdd/go/11-immutable-data-and-pipeline.md +0 -304
  267. package/lib/assets/docs/article/getting-start-tdd/go/12-error-handling-and-type-safety.md +0 -419
  268. package/lib/assets/docs/article/getting-start-tdd/go/index.md +0 -83
  269. package/lib/assets/docs/article/getting-start-tdd/haskell/01-todo-list-and-first-test.md +0 -288
  270. package/lib/assets/docs/article/getting-start-tdd/haskell/02-fake-it-and-triangulation.md +0 -346
  271. package/lib/assets/docs/article/getting-start-tdd/haskell/03-obvious-implementation-and-refactoring.md +0 -266
  272. package/lib/assets/docs/article/getting-start-tdd/haskell/04-version-control-and-conventional-commits.md +0 -191
  273. package/lib/assets/docs/article/getting-start-tdd/haskell/05-package-management-and-static-analysis.md +0 -322
  274. package/lib/assets/docs/article/getting-start-tdd/haskell/06-task-runner-and-ci-cd.md +0 -318
  275. package/lib/assets/docs/article/getting-start-tdd/haskell/07-algebraic-data-types-and-type-classes.md +0 -421
  276. package/lib/assets/docs/article/getting-start-tdd/haskell/08-pattern-matching-and-guards.md +0 -399
  277. package/lib/assets/docs/article/getting-start-tdd/haskell/09-module-design-and-smart-constructors.md +0 -470
  278. package/lib/assets/docs/article/getting-start-tdd/haskell/10-higher-order-functions-and-currying.md +0 -443
  279. package/lib/assets/docs/article/getting-start-tdd/haskell/11-function-composition-and-point-free.md +0 -401
  280. package/lib/assets/docs/article/getting-start-tdd/haskell/12-monad-and-error-handling.md +0 -640
  281. package/lib/assets/docs/article/getting-start-tdd/haskell/index.md +0 -49
  282. package/lib/assets/docs/article/getting-start-tdd/index.md +0 -93
  283. package/lib/assets/docs/article/getting-start-tdd/integration/01-language-overview.md +0 -384
  284. package/lib/assets/docs/article/getting-start-tdd/integration/02-test-framework-comparison.md +0 -358
  285. package/lib/assets/docs/article/getting-start-tdd/integration/03-tdd-pattern-comparison.md +0 -454
  286. package/lib/assets/docs/article/getting-start-tdd/integration/04-type-system-comparison.md +0 -418
  287. package/lib/assets/docs/article/getting-start-tdd/integration/05-dev-environment-comparison.md +0 -339
  288. package/lib/assets/docs/article/getting-start-tdd/integration/06-learning-roadmap.md +0 -299
  289. package/lib/assets/docs/article/getting-start-tdd/integration/index.md +0 -69
  290. package/lib/assets/docs/article/getting-start-tdd/java/01-todo-list-and-first-test.md +0 -243
  291. package/lib/assets/docs/article/getting-start-tdd/java/02-fake-it-and-triangulation.md +0 -270
  292. package/lib/assets/docs/article/getting-start-tdd/java/03-obvious-implementation-and-refactoring.md +0 -194
  293. package/lib/assets/docs/article/getting-start-tdd/java/04-version-control-and-conventional-commits.md +0 -124
  294. package/lib/assets/docs/article/getting-start-tdd/java/05-package-management-and-static-analysis.md +0 -391
  295. package/lib/assets/docs/article/getting-start-tdd/java/06-task-runner-and-ci-cd.md +0 -281
  296. package/lib/assets/docs/article/getting-start-tdd/java/07-encapsulation-and-polymorphism.md +0 -635
  297. package/lib/assets/docs/article/getting-start-tdd/java/08-design-patterns.md +0 -402
  298. package/lib/assets/docs/article/getting-start-tdd/java/09-solid-principles-and-module-design.md +0 -319
  299. package/lib/assets/docs/article/getting-start-tdd/java/10-higher-order-functions-and-composition.md +0 -197
  300. package/lib/assets/docs/article/getting-start-tdd/java/11-immutable-data-and-pipeline.md +0 -176
  301. package/lib/assets/docs/article/getting-start-tdd/java/12-error-handling-and-type-safety.md +0 -214
  302. package/lib/assets/docs/article/getting-start-tdd/java/index.md +0 -61
  303. package/lib/assets/docs/article/getting-start-tdd/node/01-todo-list-and-first-test.md +0 -253
  304. package/lib/assets/docs/article/getting-start-tdd/node/02-fake-it-and-triangulation.md +0 -271
  305. package/lib/assets/docs/article/getting-start-tdd/node/03-obvious-implementation-and-refactoring.md +0 -178
  306. package/lib/assets/docs/article/getting-start-tdd/node/04-version-control-and-conventional-commits.md +0 -121
  307. package/lib/assets/docs/article/getting-start-tdd/node/05-package-management-and-static-analysis.md +0 -323
  308. package/lib/assets/docs/article/getting-start-tdd/node/06-task-runner-and-ci-cd.md +0 -244
  309. package/lib/assets/docs/article/getting-start-tdd/node/07-encapsulation-and-polymorphism.md +0 -336
  310. package/lib/assets/docs/article/getting-start-tdd/node/08-design-patterns.md +0 -331
  311. package/lib/assets/docs/article/getting-start-tdd/node/09-solid-principles-and-module-design.md +0 -294
  312. package/lib/assets/docs/article/getting-start-tdd/node/10-higher-order-functions-and-composition.md +0 -208
  313. package/lib/assets/docs/article/getting-start-tdd/node/11-immutable-data-and-pipeline.md +0 -216
  314. package/lib/assets/docs/article/getting-start-tdd/node/12-error-handling-and-type-safety.md +0 -304
  315. package/lib/assets/docs/article/getting-start-tdd/node/index.md +0 -56
  316. package/lib/assets/docs/article/getting-start-tdd/php/01-todo-list-and-first-test.md +0 -268
  317. package/lib/assets/docs/article/getting-start-tdd/php/02-fake-it-and-triangulation.md +0 -209
  318. package/lib/assets/docs/article/getting-start-tdd/php/03-obvious-implementation-and-refactoring.md +0 -257
  319. package/lib/assets/docs/article/getting-start-tdd/php/04-version-control-and-conventional-commits.md +0 -150
  320. package/lib/assets/docs/article/getting-start-tdd/php/05-package-management-and-static-analysis.md +0 -419
  321. package/lib/assets/docs/article/getting-start-tdd/php/06-task-runner-and-ci-cd.md +0 -330
  322. package/lib/assets/docs/article/getting-start-tdd/php/07-encapsulation-and-polymorphism.md +0 -380
  323. package/lib/assets/docs/article/getting-start-tdd/php/08-design-patterns.md +0 -461
  324. package/lib/assets/docs/article/getting-start-tdd/php/09-solid-principles-and-module-design.md +0 -468
  325. package/lib/assets/docs/article/getting-start-tdd/php/10-higher-order-functions-and-composition.md +0 -190
  326. package/lib/assets/docs/article/getting-start-tdd/php/11-immutable-data-and-pipeline.md +0 -274
  327. package/lib/assets/docs/article/getting-start-tdd/php/12-error-handling-and-type-safety.md +0 -316
  328. package/lib/assets/docs/article/getting-start-tdd/php/index.md +0 -84
  329. package/lib/assets/docs/article/getting-start-tdd/python/01-todo-list-and-first-test.md +0 -210
  330. package/lib/assets/docs/article/getting-start-tdd/python/02-fake-it-and-triangulation.md +0 -256
  331. package/lib/assets/docs/article/getting-start-tdd/python/03-obvious-implementation-and-refactoring.md +0 -208
  332. package/lib/assets/docs/article/getting-start-tdd/python/04-version-control-and-conventional-commits.md +0 -96
  333. package/lib/assets/docs/article/getting-start-tdd/python/05-package-management-and-static-analysis.md +0 -283
  334. package/lib/assets/docs/article/getting-start-tdd/python/06-task-runner-and-ci-cd.md +0 -199
  335. package/lib/assets/docs/article/getting-start-tdd/python/07-encapsulation-and-polymorphism.md +0 -217
  336. package/lib/assets/docs/article/getting-start-tdd/python/08-design-patterns.md +0 -181
  337. package/lib/assets/docs/article/getting-start-tdd/python/09-solid-principles-and-module-design.md +0 -139
  338. package/lib/assets/docs/article/getting-start-tdd/python/10-higher-order-functions-and-composition.md +0 -131
  339. package/lib/assets/docs/article/getting-start-tdd/python/11-immutable-data-and-pipeline.md +0 -125
  340. package/lib/assets/docs/article/getting-start-tdd/python/12-error-handling-and-type-safety.md +0 -135
  341. package/lib/assets/docs/article/getting-start-tdd/python/index.md +0 -55
  342. package/lib/assets/docs/article/getting-start-tdd/ruby/01-todo-list-and-first-test.md +0 -240
  343. package/lib/assets/docs/article/getting-start-tdd/ruby/02-fake-it-and-triangulation.md +0 -247
  344. package/lib/assets/docs/article/getting-start-tdd/ruby/03-obvious-implementation-and-refactoring.md +0 -237
  345. package/lib/assets/docs/article/getting-start-tdd/ruby/04-version-control-and-conventional-commits.md +0 -121
  346. package/lib/assets/docs/article/getting-start-tdd/ruby/05-package-management-and-static-analysis.md +0 -296
  347. package/lib/assets/docs/article/getting-start-tdd/ruby/06-task-runner-and-ci-cd.md +0 -257
  348. package/lib/assets/docs/article/getting-start-tdd/ruby/07-encapsulation-and-polymorphism.md +0 -288
  349. package/lib/assets/docs/article/getting-start-tdd/ruby/08-design-patterns.md +0 -338
  350. package/lib/assets/docs/article/getting-start-tdd/ruby/09-solid-principles-and-module-design.md +0 -205
  351. package/lib/assets/docs/article/getting-start-tdd/ruby/10-higher-order-functions-and-composition.md +0 -184
  352. package/lib/assets/docs/article/getting-start-tdd/ruby/11-immutable-data-and-pipeline.md +0 -246
  353. package/lib/assets/docs/article/getting-start-tdd/ruby/12-error-handling-and-type-safety.md +0 -407
  354. package/lib/assets/docs/article/getting-start-tdd/ruby/index.md +0 -83
  355. package/lib/assets/docs/article/getting-start-tdd/rust/01-todo-list-and-first-test.md +0 -220
  356. package/lib/assets/docs/article/getting-start-tdd/rust/02-fake-it-and-triangulation.md +0 -273
  357. package/lib/assets/docs/article/getting-start-tdd/rust/03-obvious-implementation-and-refactoring.md +0 -242
  358. package/lib/assets/docs/article/getting-start-tdd/rust/04-version-control-and-conventional-commits.md +0 -101
  359. package/lib/assets/docs/article/getting-start-tdd/rust/05-package-management-and-static-analysis.md +0 -221
  360. package/lib/assets/docs/article/getting-start-tdd/rust/06-task-runner-and-ci-cd.md +0 -173
  361. package/lib/assets/docs/article/getting-start-tdd/rust/07-encapsulation-and-polymorphism.md +0 -151
  362. package/lib/assets/docs/article/getting-start-tdd/rust/08-design-patterns.md +0 -154
  363. package/lib/assets/docs/article/getting-start-tdd/rust/09-solid-principles-and-module-design.md +0 -119
  364. package/lib/assets/docs/article/getting-start-tdd/rust/10-higher-order-functions-and-composition.md +0 -103
  365. package/lib/assets/docs/article/getting-start-tdd/rust/11-immutable-data-and-pipeline.md +0 -114
  366. package/lib/assets/docs/article/getting-start-tdd/rust/12-error-handling-and-type-safety.md +0 -121
  367. package/lib/assets/docs/article/getting-start-tdd/rust/index.md +0 -83
  368. package/lib/assets/docs/article/getting-start-tdd/scala/01-todo-list-and-first-test.md +0 -120
  369. package/lib/assets/docs/article/getting-start-tdd/scala/02-fake-it-and-triangulation.md +0 -116
  370. package/lib/assets/docs/article/getting-start-tdd/scala/03-obvious-implementation-and-refactoring.md +0 -108
  371. package/lib/assets/docs/article/getting-start-tdd/scala/04-version-control-and-conventional-commits.md +0 -132
  372. package/lib/assets/docs/article/getting-start-tdd/scala/05-package-management-and-static-analysis.md +0 -205
  373. package/lib/assets/docs/article/getting-start-tdd/scala/06-task-runner-and-ci-cd.md +0 -195
  374. package/lib/assets/docs/article/getting-start-tdd/scala/07-case-classes-and-traits.md +0 -148
  375. package/lib/assets/docs/article/getting-start-tdd/scala/08-pattern-matching-and-sealed-traits.md +0 -115
  376. package/lib/assets/docs/article/getting-start-tdd/scala/09-packages-and-module-design.md +0 -84
  377. package/lib/assets/docs/article/getting-start-tdd/scala/10-higher-order-functions-and-composition.md +0 -113
  378. package/lib/assets/docs/article/getting-start-tdd/scala/11-collections-and-lazy-evaluation.md +0 -103
  379. package/lib/assets/docs/article/getting-start-tdd/scala/12-error-handling-and-type-safety.md +0 -101
  380. package/lib/assets/docs/article/getting-start-tdd/scala/index.md +0 -65
  381. package/lib/assets/docs/article/grokking-concurrency/all/index.md +0 -403
  382. package/lib/assets/docs/article/grokking-concurrency/all/part-1-ch02-sequential.md +0 -563
  383. package/lib/assets/docs/article/grokking-concurrency/all/part-2-ch04-05-threads.md +0 -478
  384. package/lib/assets/docs/article/grokking-concurrency/all/part-3-ch06-multitasking.md +0 -529
  385. package/lib/assets/docs/article/grokking-concurrency/all/part-4-ch07-parallel-patterns.md +0 -429
  386. package/lib/assets/docs/article/grokking-concurrency/all/part-5-ch08-09-synchronization.md +0 -519
  387. package/lib/assets/docs/article/grokking-concurrency/all/part-6-ch10-11-nonblocking-io.md +0 -444
  388. package/lib/assets/docs/article/grokking-concurrency/all/part-7-ch12-async.md +0 -474
  389. package/lib/assets/docs/article/grokking-concurrency/all/part-8-ch13-mapreduce.md +0 -386
  390. package/lib/assets/docs/article/grokking-concurrency/clojure/index.md +0 -106
  391. package/lib/assets/docs/article/grokking-concurrency/clojure/part-1.md +0 -107
  392. package/lib/assets/docs/article/grokking-concurrency/clojure/part-2.md +0 -100
  393. package/lib/assets/docs/article/grokking-concurrency/clojure/part-3.md +0 -121
  394. package/lib/assets/docs/article/grokking-concurrency/clojure/part-4.md +0 -122
  395. package/lib/assets/docs/article/grokking-concurrency/clojure/part-5.md +0 -117
  396. package/lib/assets/docs/article/grokking-concurrency/clojure/part-6.md +0 -88
  397. package/lib/assets/docs/article/grokking-concurrency/clojure/part-7.md +0 -99
  398. package/lib/assets/docs/article/grokking-concurrency/clojure/part-8.md +0 -119
  399. package/lib/assets/docs/article/grokking-concurrency/csharp/index.md +0 -91
  400. package/lib/assets/docs/article/grokking-concurrency/csharp/part-1.md +0 -96
  401. package/lib/assets/docs/article/grokking-concurrency/csharp/part-2.md +0 -122
  402. package/lib/assets/docs/article/grokking-concurrency/csharp/part-3.md +0 -100
  403. package/lib/assets/docs/article/grokking-concurrency/csharp/part-4.md +0 -111
  404. package/lib/assets/docs/article/grokking-concurrency/csharp/part-5.md +0 -98
  405. package/lib/assets/docs/article/grokking-concurrency/csharp/part-6.md +0 -60
  406. package/lib/assets/docs/article/grokking-concurrency/csharp/part-7.md +0 -83
  407. package/lib/assets/docs/article/grokking-concurrency/csharp/part-8.md +0 -91
  408. package/lib/assets/docs/article/grokking-concurrency/fsharp/index.md +0 -55
  409. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-1.md +0 -79
  410. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-2.md +0 -102
  411. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-3.md +0 -93
  412. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-4.md +0 -109
  413. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-5.md +0 -103
  414. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-6.md +0 -92
  415. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-7.md +0 -120
  416. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-8.md +0 -106
  417. package/lib/assets/docs/article/grokking-concurrency/haskell/index.md +0 -238
  418. package/lib/assets/docs/article/grokking-concurrency/haskell/part-1.md +0 -95
  419. package/lib/assets/docs/article/grokking-concurrency/haskell/part-2.md +0 -95
  420. package/lib/assets/docs/article/grokking-concurrency/haskell/part-3.md +0 -90
  421. package/lib/assets/docs/article/grokking-concurrency/haskell/part-4.md +0 -105
  422. package/lib/assets/docs/article/grokking-concurrency/haskell/part-5.md +0 -98
  423. package/lib/assets/docs/article/grokking-concurrency/haskell/part-6.md +0 -94
  424. package/lib/assets/docs/article/grokking-concurrency/haskell/part-7.md +0 -110
  425. package/lib/assets/docs/article/grokking-concurrency/haskell/part-8.md +0 -117
  426. package/lib/assets/docs/article/grokking-concurrency/index.md +0 -66
  427. package/lib/assets/docs/article/grokking-concurrency/java/index.md +0 -92
  428. package/lib/assets/docs/article/grokking-concurrency/java/part-1.md +0 -307
  429. package/lib/assets/docs/article/grokking-concurrency/java/part-2.md +0 -333
  430. package/lib/assets/docs/article/grokking-concurrency/java/part-3.md +0 -220
  431. package/lib/assets/docs/article/grokking-concurrency/java/part-4.md +0 -212
  432. package/lib/assets/docs/article/grokking-concurrency/java/part-5.md +0 -111
  433. package/lib/assets/docs/article/grokking-concurrency/java/part-6.md +0 -68
  434. package/lib/assets/docs/article/grokking-concurrency/java/part-7.md +0 -100
  435. package/lib/assets/docs/article/grokking-concurrency/java/part-8.md +0 -100
  436. package/lib/assets/docs/article/grokking-concurrency/python/index.md +0 -303
  437. package/lib/assets/docs/article/grokking-concurrency/python/part-1.md +0 -238
  438. package/lib/assets/docs/article/grokking-concurrency/python/part-2.md +0 -417
  439. package/lib/assets/docs/article/grokking-concurrency/python/part-3.md +0 -226
  440. package/lib/assets/docs/article/grokking-concurrency/python/part-4.md +0 -298
  441. package/lib/assets/docs/article/grokking-concurrency/python/part-5.md +0 -314
  442. package/lib/assets/docs/article/grokking-concurrency/python/part-6.md +0 -296
  443. package/lib/assets/docs/article/grokking-concurrency/python/part-7.md +0 -313
  444. package/lib/assets/docs/article/grokking-concurrency/python/part-8.md +0 -359
  445. package/lib/assets/docs/article/grokking-concurrency/rust/index.md +0 -260
  446. package/lib/assets/docs/article/grokking-concurrency/rust/part-1.md +0 -107
  447. package/lib/assets/docs/article/grokking-concurrency/rust/part-2.md +0 -119
  448. package/lib/assets/docs/article/grokking-concurrency/rust/part-3.md +0 -125
  449. package/lib/assets/docs/article/grokking-concurrency/rust/part-4.md +0 -174
  450. package/lib/assets/docs/article/grokking-concurrency/rust/part-5.md +0 -157
  451. package/lib/assets/docs/article/grokking-concurrency/rust/part-6.md +0 -93
  452. package/lib/assets/docs/article/grokking-concurrency/rust/part-7.md +0 -132
  453. package/lib/assets/docs/article/grokking-concurrency/rust/part-8.md +0 -154
  454. package/lib/assets/docs/article/grokking-concurrency/scala/index.md +0 -59
  455. package/lib/assets/docs/article/grokking-concurrency/scala/part-1.md +0 -77
  456. package/lib/assets/docs/article/grokking-concurrency/scala/part-2.md +0 -111
  457. package/lib/assets/docs/article/grokking-concurrency/scala/part-3.md +0 -92
  458. package/lib/assets/docs/article/grokking-concurrency/scala/part-4.md +0 -109
  459. package/lib/assets/docs/article/grokking-concurrency/scala/part-5.md +0 -118
  460. package/lib/assets/docs/article/grokking-concurrency/scala/part-6.md +0 -82
  461. package/lib/assets/docs/article/grokking-concurrency/scala/part-7.md +0 -130
  462. package/lib/assets/docs/article/grokking-concurrency/scala/part-8.md +0 -128
  463. package/lib/assets/docs/article/grokkingfp/all/index.md +0 -368
  464. package/lib/assets/docs/article/grokkingfp/all/part-1-ch01-fp-introduction.md +0 -539
  465. package/lib/assets/docs/article/grokkingfp/all/part-1-ch02-pure-functions.md +0 -932
  466. package/lib/assets/docs/article/grokkingfp/all/part-2-ch03-immutable-data.md +0 -1137
  467. package/lib/assets/docs/article/grokkingfp/all/part-2-ch04-higher-order-functions.md +0 -1113
  468. package/lib/assets/docs/article/grokkingfp/all/part-2-ch05-flatmap.md +0 -1035
  469. package/lib/assets/docs/article/grokkingfp/all/part-3-ch06-option.md +0 -794
  470. package/lib/assets/docs/article/grokkingfp/all/part-3-ch07-either-adt.md +0 -880
  471. package/lib/assets/docs/article/grokkingfp/all/part-4-ch08-io-monad.md +0 -981
  472. package/lib/assets/docs/article/grokkingfp/all/part-4-ch09-streams.md +0 -935
  473. package/lib/assets/docs/article/grokkingfp/all/part-5-ch10-concurrency.md +0 -879
  474. package/lib/assets/docs/article/grokkingfp/all/part-6-ch11-application.md +0 -724
  475. package/lib/assets/docs/article/grokkingfp/all/part-6-ch12-testing.md +0 -635
  476. package/lib/assets/docs/article/grokkingfp/all/writing-plan.md +0 -721
  477. package/lib/assets/docs/article/grokkingfp/clojure/index.md +0 -276
  478. package/lib/assets/docs/article/grokkingfp/clojure/part-1.md +0 -676
  479. package/lib/assets/docs/article/grokkingfp/clojure/part-2.md +0 -652
  480. package/lib/assets/docs/article/grokkingfp/clojure/part-3.md +0 -629
  481. package/lib/assets/docs/article/grokkingfp/clojure/part-4.md +0 -706
  482. package/lib/assets/docs/article/grokkingfp/clojure/part-5.md +0 -760
  483. package/lib/assets/docs/article/grokkingfp/clojure/part-6.md +0 -730
  484. package/lib/assets/docs/article/grokkingfp/csharp/index.md +0 -246
  485. package/lib/assets/docs/article/grokkingfp/csharp/part-1.md +0 -820
  486. package/lib/assets/docs/article/grokkingfp/csharp/part-2.md +0 -980
  487. package/lib/assets/docs/article/grokkingfp/csharp/part-3.md +0 -990
  488. package/lib/assets/docs/article/grokkingfp/csharp/part-4.md +0 -958
  489. package/lib/assets/docs/article/grokkingfp/csharp/part-5.md +0 -956
  490. package/lib/assets/docs/article/grokkingfp/csharp/part-6.md +0 -748
  491. package/lib/assets/docs/article/grokkingfp/elixir/index.md +0 -203
  492. package/lib/assets/docs/article/grokkingfp/elixir/part-1.md +0 -721
  493. package/lib/assets/docs/article/grokkingfp/elixir/part-2.md +0 -847
  494. package/lib/assets/docs/article/grokkingfp/elixir/part-3.md +0 -994
  495. package/lib/assets/docs/article/grokkingfp/elixir/part-4.md +0 -983
  496. package/lib/assets/docs/article/grokkingfp/elixir/part-5.md +0 -1295
  497. package/lib/assets/docs/article/grokkingfp/elixir/part-6.md +0 -1058
  498. package/lib/assets/docs/article/grokkingfp/fsharp/index.md +0 -210
  499. package/lib/assets/docs/article/grokkingfp/fsharp/part-1.md +0 -723
  500. package/lib/assets/docs/article/grokkingfp/fsharp/part-2.md +0 -970
  501. package/lib/assets/docs/article/grokkingfp/fsharp/part-3.md +0 -981
  502. package/lib/assets/docs/article/grokkingfp/fsharp/part-4.md +0 -841
  503. package/lib/assets/docs/article/grokkingfp/fsharp/part-5.md +0 -920
  504. package/lib/assets/docs/article/grokkingfp/fsharp/part-6.md +0 -931
  505. package/lib/assets/docs/article/grokkingfp/haskell/index.md +0 -234
  506. package/lib/assets/docs/article/grokkingfp/haskell/part-1.md +0 -600
  507. package/lib/assets/docs/article/grokkingfp/haskell/part-2.md +0 -875
  508. package/lib/assets/docs/article/grokkingfp/haskell/part-3.md +0 -924
  509. package/lib/assets/docs/article/grokkingfp/haskell/part-4.md +0 -887
  510. package/lib/assets/docs/article/grokkingfp/haskell/part-5.md +0 -854
  511. package/lib/assets/docs/article/grokkingfp/haskell/part-6.md +0 -853
  512. package/lib/assets/docs/article/grokkingfp/index.md +0 -143
  513. package/lib/assets/docs/article/grokkingfp/java/index.md +0 -211
  514. package/lib/assets/docs/article/grokkingfp/java/part-1.md +0 -657
  515. package/lib/assets/docs/article/grokkingfp/java/part-2.md +0 -684
  516. package/lib/assets/docs/article/grokkingfp/java/part-3.md +0 -681
  517. package/lib/assets/docs/article/grokkingfp/java/part-4.md +0 -780
  518. package/lib/assets/docs/article/grokkingfp/java/part-5.md +0 -968
  519. package/lib/assets/docs/article/grokkingfp/java/part-6.md +0 -1337
  520. package/lib/assets/docs/article/grokkingfp/python/index.md +0 -258
  521. package/lib/assets/docs/article/grokkingfp/python/part-1.md +0 -452
  522. package/lib/assets/docs/article/grokkingfp/python/part-2.md +0 -967
  523. package/lib/assets/docs/article/grokkingfp/python/part-3.md +0 -1013
  524. package/lib/assets/docs/article/grokkingfp/python/part-4.md +0 -774
  525. package/lib/assets/docs/article/grokkingfp/python/part-5.md +0 -756
  526. package/lib/assets/docs/article/grokkingfp/python/part-6.md +0 -870
  527. package/lib/assets/docs/article/grokkingfp/ruby/index.md +0 -330
  528. package/lib/assets/docs/article/grokkingfp/ruby/part-1.md +0 -764
  529. package/lib/assets/docs/article/grokkingfp/ruby/part-2.md +0 -947
  530. package/lib/assets/docs/article/grokkingfp/ruby/part-3.md +0 -955
  531. package/lib/assets/docs/article/grokkingfp/ruby/part-4.md +0 -930
  532. package/lib/assets/docs/article/grokkingfp/ruby/part-5.md +0 -917
  533. package/lib/assets/docs/article/grokkingfp/ruby/part-6.md +0 -1421
  534. package/lib/assets/docs/article/grokkingfp/rust/index.md +0 -242
  535. package/lib/assets/docs/article/grokkingfp/rust/part-1.md +0 -643
  536. package/lib/assets/docs/article/grokkingfp/rust/part-2.md +0 -1069
  537. package/lib/assets/docs/article/grokkingfp/rust/part-3.md +0 -1003
  538. package/lib/assets/docs/article/grokkingfp/rust/part-4.md +0 -582
  539. package/lib/assets/docs/article/grokkingfp/rust/part-5.md +0 -714
  540. package/lib/assets/docs/article/grokkingfp/rust/part-6.md +0 -517
  541. package/lib/assets/docs/article/grokkingfp/scala/index.md +0 -171
  542. package/lib/assets/docs/article/grokkingfp/scala/part-1.md +0 -552
  543. package/lib/assets/docs/article/grokkingfp/scala/part-2.md +0 -955
  544. package/lib/assets/docs/article/grokkingfp/scala/part-3.md +0 -928
  545. package/lib/assets/docs/article/grokkingfp/scala/part-4.md +0 -751
  546. package/lib/assets/docs/article/grokkingfp/scala/part-5.md +0 -731
  547. package/lib/assets/docs/article/grokkingfp/scala/part-6.md +0 -876
  548. package/lib/assets/docs/article/grokkingfp/typescript/index.md +0 -273
  549. package/lib/assets/docs/article/grokkingfp/typescript/part-1.md +0 -570
  550. package/lib/assets/docs/article/grokkingfp/typescript/part-2.md +0 -1138
  551. package/lib/assets/docs/article/grokkingfp/typescript/part-3.md +0 -851
  552. package/lib/assets/docs/article/grokkingfp/typescript/part-4.md +0 -1096
  553. package/lib/assets/docs/article/grokkingfp/typescript/part-5.md +0 -726
  554. package/lib/assets/docs/article/grokkingfp/typescript/part-6.md +0 -991
  555. package/lib/assets/docs/article/practical-database-design/index.md +0 -121
  556. package/lib/assets/docs/article/practical-database-design/part1/chapter01.md +0 -297
  557. package/lib/assets/docs/article/practical-database-design/part1/chapter02.md +0 -527
  558. package/lib/assets/docs/article/practical-database-design/part1/chapter03.md +0 -566
  559. package/lib/assets/docs/article/practical-database-design/part2/chapter04.md +0 -933
  560. package/lib/assets/docs/article/practical-database-design/part2/chapter05.md +0 -1636
  561. package/lib/assets/docs/article/practical-database-design/part2/chapter06.md +0 -2725
  562. package/lib/assets/docs/article/practical-database-design/part2/chapter07.md +0 -2091
  563. package/lib/assets/docs/article/practical-database-design/part2/chapter08.md +0 -2114
  564. package/lib/assets/docs/article/practical-database-design/part2/chapter09.md +0 -2040
  565. package/lib/assets/docs/article/practical-database-design/part2/chapter10.md +0 -1396
  566. package/lib/assets/docs/article/practical-database-design/part2/chapter11.md +0 -1686
  567. package/lib/assets/docs/article/practical-database-design/part2/chapter12.md +0 -1426
  568. package/lib/assets/docs/article/practical-database-design/part2/chapter13.md +0 -1443
  569. package/lib/assets/docs/article/practical-database-design/part3/chapter14.md +0 -676
  570. package/lib/assets/docs/article/practical-database-design/part3/chapter15.md +0 -1634
  571. package/lib/assets/docs/article/practical-database-design/part3/chapter16.md +0 -1924
  572. package/lib/assets/docs/article/practical-database-design/part3/chapter17.md +0 -1717
  573. package/lib/assets/docs/article/practical-database-design/part3/chapter18.md +0 -2104
  574. package/lib/assets/docs/article/practical-database-design/part3/chapter19.md +0 -1132
  575. package/lib/assets/docs/article/practical-database-design/part3/chapter20.md +0 -1040
  576. package/lib/assets/docs/article/practical-database-design/part3/chapter21.md +0 -1391
  577. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter14-orm.md +0 -1000
  578. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter15-orm.md +0 -1309
  579. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter16-orm.md +0 -1175
  580. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter17-orm.md +0 -1593
  581. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter18-orm.md +0 -1192
  582. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter19-orm.md +0 -1025
  583. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter20-orm.md +0 -1762
  584. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter21-orm.md +0 -1456
  585. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter22-orm.md +0 -1887
  586. package/lib/assets/docs/article/practical-database-design/part4/chapter22.md +0 -974
  587. package/lib/assets/docs/article/practical-database-design/part4/chapter23.md +0 -2078
  588. package/lib/assets/docs/article/practical-database-design/part4/chapter24.md +0 -2448
  589. package/lib/assets/docs/article/practical-database-design/part4/chapter25.md +0 -3670
  590. package/lib/assets/docs/article/practical-database-design/part4/chapter26.md +0 -2925
  591. package/lib/assets/docs/article/practical-database-design/part4/chapter27.md +0 -3114
  592. package/lib/assets/docs/article/practical-database-design/part4/chapter28.md +0 -2706
  593. package/lib/assets/docs/article/practical-database-design/part4/chapter29.md +0 -2552
  594. package/lib/assets/docs/article/practical-database-design/part4/chapter30.md +0 -2188
  595. package/lib/assets/docs/article/practical-database-design/part4/chapter31.md +0 -1200
  596. package/lib/assets/docs/article/practical-database-design/part4/chapter32.md +0 -2109
  597. package/lib/assets/docs/article/practical-database-design/part5/chapter33.md +0 -1041
  598. package/lib/assets/docs/article/practical-database-design/part5/chapter34.md +0 -1618
  599. package/lib/assets/docs/article/practical-database-design/part5/chapter35.md +0 -1462
  600. package/lib/assets/docs/article/practical-database-design/part5/chapter36.md +0 -1301
  601. package/lib/assets/docs/article/practical-database-design/part5/chapter37.md +0 -1479
  602. package/lib/assets/docs/article/practical-database-design/part5/chapter38.md +0 -1707
  603. package/lib/assets/docs/article/practical-database-design/part5/chapter39.md +0 -2343
  604. package/lib/assets/docs/article/practical-database-design/study/study2-1.md +0 -1702
  605. package/lib/assets/docs/article/practical-database-design/study/study2-2.md +0 -1356
  606. package/lib/assets/docs/article/practical-database-design/study/study2-3.md +0 -2053
  607. package/lib/assets/docs/article/practical-database-design/study/study2-4.md +0 -2238
  608. package/lib/assets/docs/article/practical-database-design/study/study2-5.md +0 -2427
  609. package/lib/assets/docs/article/practical-database-design/study/study3-1.md +0 -2214
  610. package/lib/assets/docs/article/practical-database-design/study/study3-2.md +0 -2230
  611. package/lib/assets/docs/article/practical-database-design/study/study3-3.md +0 -2262
  612. package/lib/assets/docs/article/practical-database-design/study/study3-4.md +0 -2115
  613. package/lib/assets/docs/article/practical-database-design/study/study3-5.md +0 -2516
  614. package/lib/assets/docs/article/practical-database-design/study/study4-1.md +0 -2596
  615. package/lib/assets/docs/article/practical-database-design/study/study4-2.md +0 -2084
  616. package/lib/assets/docs/article/practical-database-design/study/study4-3.md +0 -1814
  617. package/lib/assets/docs/article/practical-database-design/study/study4-4.md +0 -1904
  618. package/lib/assets/docs/article/practical-database-design/study/study4-5.md +0 -2887
@@ -1,933 +0,0 @@
1
- ---
2
- type: Article
3
- title: "第4章:販売管理システムの全体像"
4
- description: "本章から第2部「販売管理システム」の解説に入ります。"
5
- tags: [article, practical-database-design, part2]
6
- status: stable
7
- generated: { by: human:kakimomokuri, at: 2026-03-30T08:34:28Z }
8
- ---
9
-
10
- # 第4章:販売管理システムの全体像
11
-
12
- 本章から第2部「販売管理システム」の解説に入ります。まず、販売管理システムのスコープと、関連する組織の役割分担について解説します。
13
-
14
- ---
15
-
16
- ## 4.1 販売管理システムのスコープ
17
-
18
- 販売管理システムは、企業の販売活動を支援するシステムです。得意先からの引き合いを起点として、見積・受注・出荷・売上までの一連の業務プロセスを管理します。
19
-
20
- ### システム全体像
21
-
22
- ```plantuml
23
- @startuml
24
-
25
- [*] -> 得意先
26
- 得意先 --> 営業部門
27
- 営業部門 -> 販売管理
28
- 販売管理 : 見積 \n受注 \n出荷 \n売上
29
- 販売管理 -> 調達管理
30
- 販売管理 --> 債権管理
31
- 債権管理 : 締請求 \n入金
32
- 調達管理 : 発注 \n入荷 \n仕入
33
- 調達管理 -> 仕入先
34
- 仕入先 -> 調達管理
35
- 販売管理 --> 在庫管理
36
- 在庫管理 --> 販売管理
37
- 在庫管理 : 在庫 \n受払 \n棚卸
38
- 調達管理 --> 在庫管理
39
- 調達管理 --> 債務管理
40
- 債務管理 : 支払締 \n支払
41
-
42
- 得意先 -> [*]
43
-
44
- @enduml
45
- ```
46
-
47
- ### 見積
48
-
49
- 見積は、得意先からの引き合いに対して、商品の価格・納期・数量等の条件を提示する業務です。
50
-
51
- ```plantuml
52
- @startuml
53
-
54
- state "見積業務" as Estimate {
55
- state "引き合い受付" as Inquiry
56
- state "見積作成" as Create
57
- state "見積承認" as Approve
58
- state "見積提出" as Submit
59
- state "見積回答" as Response
60
-
61
- [*] --> Inquiry
62
- Inquiry --> Create : 見積依頼
63
- Create --> Approve : 承認申請
64
- Approve --> Submit : 承認
65
- Approve --> Create : 差戻し
66
- Submit --> Response : 得意先回答
67
- Response --> [*] : 失注
68
- Response --> 受注 : 受注
69
- }
70
-
71
- @enduml
72
- ```
73
-
74
- | 項目 | 説明 |
75
- |---|---|
76
- | 目的 | 得意先に販売条件を提示し、受注につなげる |
77
- | 入力 | 引き合い情報(商品、数量、希望納期等) |
78
- | 出力 | 見積書 |
79
- | 主なデータ | 見積データ、見積明細データ |
80
-
81
- **見積データの主要項目**
82
-
83
- - 見積番号、見積日、有効期限
84
- - 得意先コード、得意先名
85
- - 担当者、担当部門
86
- - 見積金額(税抜)、消費税額、見積金額(税込)
87
-
88
- ### 受注
89
-
90
- 受注は、得意先からの注文を受け付け、社内で処理する業務です。
91
-
92
- ```plantuml
93
- @startuml
94
-
95
- state "受注業務" as Order {
96
- state "注文受付" as Receive
97
- state "受注登録" as Register
98
- state "在庫確認" as StockCheck
99
- state "納期回答" as DeliveryDate
100
- state "受注確定" as Confirm
101
-
102
- [*] --> Receive
103
- Receive --> Register : 注文情報
104
- Register --> StockCheck : 在庫照会
105
- StockCheck --> DeliveryDate : 在庫OK
106
- StockCheck --> 調達依頼 : 在庫不足
107
- DeliveryDate --> Confirm : 納期確定
108
- Confirm --> [*]
109
- }
110
-
111
- @enduml
112
- ```
113
-
114
- | 項目 | 説明 |
115
- |---|---|
116
- | 目的 | 得意先の注文を正確に記録し、出荷・売上の起点とする |
117
- | 入力 | 注文情報(商品、数量、希望納期、納品先等) |
118
- | 出力 | 注文請書、受注確認書 |
119
- | 主なデータ | 受注データ、受注明細データ |
120
-
121
- **受注データの主要項目**
122
-
123
- - 受注番号、受注日、希望納期
124
- - 得意先コード、納品先コード
125
- - 担当者、担当部門
126
- - 受注金額(税抜)、消費税額、受注金額(税込)
127
- - 受注ステータス(受付、確定、出荷中、完了、キャンセル)
128
-
129
- ### 出荷
130
-
131
- 出荷は、受注に基づいて商品を得意先に届ける業務です。
132
-
133
- ```plantuml
134
- @startuml
135
-
136
- state "出荷業務" as Shipment {
137
- state "出荷指示" as Instruction
138
- state "ピッキング" as Picking
139
- state "検品" as Inspection
140
- state "梱包" as Packing
141
- state "配送" as Delivery
142
- state "出荷完了" as Complete
143
-
144
- [*] --> Instruction
145
- Instruction --> Picking : ピッキングリスト
146
- Picking --> Inspection : 商品取出
147
- Inspection --> Packing : 検品OK
148
- Inspection --> Picking : 検品NG
149
- Packing --> Delivery : 配送手配
150
- Delivery --> Complete : 配送完了
151
- Complete --> [*]
152
- }
153
-
154
- @enduml
155
- ```
156
-
157
- | 項目 | 説明 |
158
- |---|---|
159
- | 目的 | 受注した商品を正確・迅速に得意先に届ける |
160
- | 入力 | 受注データ、出荷指示 |
161
- | 出力 | 出荷指示書、ピッキングリスト、納品書 |
162
- | 主なデータ | 出荷指示データ、出荷データ、出荷明細データ |
163
-
164
- **出荷データの主要項目**
165
-
166
- - 出荷番号、出荷日、出荷予定日
167
- - 受注番号(紐付け)
168
- - 納品先コード、配送先住所
169
- - 出荷ステータス(指示済、ピッキング中、出荷済、配送中、配送完了)
170
-
171
- ### 売上
172
-
173
- 売上は、商品の引渡しが完了した時点で収益を計上する業務です。
174
-
175
- ```plantuml
176
- @startuml
177
-
178
- state "売上業務" as Sales {
179
- state "売上計上" as Record
180
- state "売上確定" as Confirm
181
- state "請求データ作成" as Invoice
182
-
183
- [*] --> Record
184
- Record --> Confirm : 売上登録
185
- Confirm --> Invoice : 売上確定
186
- Invoice --> [*]
187
- }
188
-
189
- @enduml
190
- ```
191
-
192
- | 項目 | 説明 |
193
- |---|---|
194
- | 目的 | 収益を正確に計上し、請求・回収の起点とする |
195
- | 入力 | 出荷データ、納品確認 |
196
- | 出力 | 売上伝票、請求データ |
197
- | 主なデータ | 売上データ、売上明細データ |
198
-
199
- **売上データの主要項目**
200
-
201
- - 売上番号、売上日、計上月
202
- - 受注番号、出荷番号(紐付け)
203
- - 得意先コード、請求先コード
204
- - 売上金額(税抜)、消費税額、売上金額(税込)
205
-
206
- ### 業務間の関連
207
-
208
- 見積・受注・出荷・売上の各業務は、以下のように関連しています。
209
-
210
- ```plantuml
211
- @startuml
212
-
213
- rectangle "見積" as Estimate #LightBlue
214
- rectangle "受注" as Order #LightGreen
215
- rectangle "出荷" as Shipment #LightYellow
216
- rectangle "売上" as Sales #LightPink
217
-
218
- Estimate --> Order : 見積参照\n(任意)
219
- Order --> Shipment : 1:N
220
- Shipment --> Sales : 1:1 or N:1
221
-
222
- note right of Order
223
- 1件の受注に対して
224
- 複数回の出荷が可能
225
- (分納)
226
- end note
227
-
228
- note right of Sales
229
- 出荷単位で売上計上
230
- または
231
- 複数出荷をまとめて売上計上
232
- end note
233
-
234
- @enduml
235
- ```
236
-
237
- | 関連 | カーディナリティ | 説明 |
238
- |---|---|---|
239
- | 見積 → 受注 | 0..1 : 0..N | 見積なしで受注可能、1見積から複数受注も可能 |
240
- | 受注 → 出荷 | 1 : 1..N | 分納により1受注から複数出荷 |
241
- | 出荷 → 売上 | 1..N : 1 | 出荷単位または複数出荷まとめて売上計上 |
242
-
243
- ---
244
-
245
- ## 4.2 販売組織の役割分担
246
-
247
- 販売管理システムに関わる組織は複数あり、それぞれが異なる役割を担っています。
248
-
249
- ### 組織構成
250
-
251
- ```plantuml
252
- @startuml
253
-
254
- package "販売管理に関わる組織" {
255
- rectangle "営業部門" as Sales #LightBlue {
256
- Sales : ・見積作成
257
- Sales : ・受注登録
258
- Sales : ・出荷指示
259
- Sales : ・売上入力
260
- }
261
-
262
- rectangle "調達部門" as Procurement #LightGreen {
263
- Procurement : ・発注入力
264
- Procurement : ・仕入入力
265
- }
266
-
267
- rectangle "倉庫部門" as Warehouse #LightYellow {
268
- Warehouse : ・入荷入力
269
- Warehouse : ・ピッキング
270
- Warehouse : ・出荷入力
271
- Warehouse : ・在庫管理
272
- }
273
-
274
- rectangle "経理部門" as Accounting #LightPink {
275
- Accounting : ・締請求処理
276
- Accounting : ・支払締処理
277
- Accounting : ・仕訳処理
278
- }
279
-
280
- rectangle "財務部門" as Finance #LightCoral {
281
- Finance : ・入金入力
282
- Finance : ・支払入力
283
- Finance : ・資金管理
284
- }
285
- }
286
-
287
- @enduml
288
- ```
289
-
290
- ### 営業部門
291
-
292
- 営業部門は、得意先との接点を持ち、販売活動の中心的な役割を担います。
293
-
294
- | 業務 | 責務 | 主な操作 |
295
- |---|---|---|
296
- | 見積 | 得意先への価格・納期の提示 | 見積作成、見積書発行 |
297
- | 受注 | 得意先からの注文受付 | 受注登録、納期回答 |
298
- | 出荷指示 | 倉庫への出荷依頼 | 出荷指示登録 |
299
- | 売上 | 収益の計上 | 売上入力、売上確定 |
300
-
301
- ### 調達部門
302
-
303
- 調達部門は、商品・資材の仕入れを担当します。
304
-
305
- | 業務 | 責務 | 主な操作 |
306
- |---|---|---|
307
- | 発注 | 仕入先への注文 | 発注登録、注文書発行 |
308
- | 仕入 | 検収・仕入計上 | 仕入入力、仕入伝票発行 |
309
-
310
- ### 倉庫部門
311
-
312
- 倉庫部門は、商品・資材の物理的な管理を担当します。
313
-
314
- | 業務 | 責務 | 主な操作 |
315
- |---|---|---|
316
- | 入荷 | 仕入先からの商品受入 | 入荷入力、検品 |
317
- | ピッキング | 出荷商品の取り出し | ピッキング作業 |
318
- | 出荷 | 商品の発送 | 出荷入力、配送手配 |
319
- | 在庫管理 | 在庫数量の管理 | 棚卸、在庫調整 |
320
-
321
- ### 経理部門
322
-
323
- 経理部門は、取引の記帳・請求・支払の管理を担当します。
324
-
325
- | 業務 | 責務 | 主な操作 |
326
- |---|---|---|
327
- | 締請求 | 売上の請求処理 | 締処理、請求書発行 |
328
- | 支払締 | 仕入の支払処理 | 締処理、支払予定作成 |
329
- | 仕訳 | 会計処理 | 仕訳入力、自動仕訳 |
330
-
331
- ### 財務部門
332
-
333
- 財務部門は、資金の入出金管理を担当します。
334
-
335
- | 業務 | 責務 | 主な操作 |
336
- |---|---|---|
337
- | 入金 | 得意先からの入金処理 | 入金入力、消込処理 |
338
- | 支払 | 仕入先への支払処理 | 支払入力、振込処理 |
339
- | 資金管理 | 資金繰りの管理 | 資金計画、残高管理 |
340
-
341
- ### 業務フローと各部門の責務
342
-
343
- 各部門がどのタイミングで業務に関与するかを、全体フローで示します。
344
-
345
- ```plantuml
346
- @startuml
347
- title 販売管理システムの全体フロー
348
-
349
- |営業部門|
350
- start
351
- fork
352
- :見積入力;
353
- fork again
354
- :受注入力;
355
- fork end
356
-
357
- |システム|
358
- fork
359
- :見積データ;
360
- :見積書;
361
- fork again
362
- :受注データ;
363
- :注文請書;
364
- fork end
365
-
366
- |調達部門|
367
- :発注入力;
368
-
369
- |システム|
370
- :発注データ;
371
- :注文書;
372
-
373
- |倉庫部門|
374
- :入荷入力;
375
-
376
- |システム|
377
- fork
378
- :入荷データ;
379
- fork again
380
- :在庫データ;
381
- fork end
382
- :入荷伝票;
383
-
384
- |調達部門|
385
- :仕入入力;
386
-
387
- |システム|
388
- :仕入データ;
389
- :仕入伝票;
390
-
391
- |営業部門|
392
- :出荷指示;
393
-
394
- |システム|
395
- fork
396
- :出荷指示データ;
397
- fork again
398
- :在庫データ(引当);
399
- fork end
400
- :出荷指示書;
401
- :ピッキングリスト;
402
-
403
- |倉庫部門|
404
- :ピッキング;
405
- :出荷入力;
406
-
407
- |システム|
408
- fork
409
- :出荷データ;
410
- fork again
411
- :在庫データ(出庫);
412
- fork end
413
- :納品書;
414
-
415
- |営業部門|
416
- :売上入力;
417
-
418
- |システム|
419
- :売上データ;
420
- :売上伝票;
421
-
422
- |経理部門|
423
- :締請求処理;
424
-
425
- |システム|
426
- :債権データ;
427
- :請求書;
428
-
429
- |財務部門|
430
- :入金入力;
431
-
432
- |システム|
433
- :入金データ;
434
- :入金伝票;
435
-
436
- stop
437
-
438
- @enduml
439
- ```
440
-
441
- ### 部門間の連携ポイント
442
-
443
- ```plantuml
444
- @startuml
445
-
446
- rectangle "営業部門" as Sales
447
- rectangle "調達部門" as Procurement
448
- rectangle "倉庫部門" as Warehouse
449
- rectangle "経理部門" as Accounting
450
- rectangle "財務部門" as Finance
451
-
452
- Sales --> Procurement : 在庫不足時\n発注依頼
453
- Sales --> Warehouse : 出荷指示
454
- Sales --> Accounting : 売上データ
455
-
456
- Procurement --> Warehouse : 入荷予定
457
- Procurement --> Accounting : 仕入データ
458
-
459
- Warehouse --> Sales : 出荷完了報告
460
- Warehouse --> Procurement : 入荷報告
461
-
462
- Accounting --> Finance : 請求・支払データ
463
-
464
- Finance --> Accounting : 入金・出金データ
465
-
466
- @enduml
467
- ```
468
-
469
- | 連携元 | 連携先 | 連携内容 |
470
- |---|---|---|
471
- | 営業部門 | 調達部門 | 在庫不足時の発注依頼 |
472
- | 営業部門 | 倉庫部門 | 出荷指示 |
473
- | 営業部門 | 経理部門 | 売上データ |
474
- | 調達部門 | 倉庫部門 | 入荷予定情報 |
475
- | 調達部門 | 経理部門 | 仕入データ |
476
- | 倉庫部門 | 営業部門 | 出荷完了報告 |
477
- | 経理部門 | 財務部門 | 請求・支払データ |
478
- | 財務部門 | 経理部門 | 入金・出金データ |
479
-
480
- ---
481
-
482
- ## 4.3 販売管理システムのアーキテクチャ
483
-
484
- 本節では、販売管理システム(SMS: Sales Management System)のプロジェクト構成とアーキテクチャについて解説します。
485
-
486
- ### プロジェクト構成
487
-
488
- 販売管理システムは `apps/sms` ディレクトリ以下に構築します。
489
-
490
- ```
491
- apps/sms/
492
- ├── backend/
493
- │ ├── build.gradle.kts # Gradle ビルド設定(Kotlin DSL)
494
- │ ├── settings.gradle.kts # Gradle 設定
495
- │ ├── config/ # 品質管理ツール設定
496
- │ │ ├── checkstyle/
497
- │ │ │ └── checkstyle.xml
498
- │ │ ├── pmd/
499
- │ │ │ └── ruleset.xml
500
- │ │ └── spotbugs/
501
- │ │ └── exclude.xml
502
- │ │
503
- │ └── src/
504
- │ ├── main/
505
- │ │ ├── java/com/example/sms/
506
- │ │ │ │
507
- │ │ │ ├── domain/ # ドメイン層(純粋なビジネスロジック)
508
- │ │ │ │ ├── model/ # ドメインモデル(エンティティ、値オブジェクト)
509
- │ │ │ │ │ ├── master/ # マスタ関連
510
- │ │ │ │ │ └── transaction/ # トランザクション関連
511
- │ │ │ │ ├── type/ # 基本型(通貨、単位、数量等)
512
- │ │ │ │ └── exception/ # ドメイン例外
513
- │ │ │ │
514
- │ │ │ ├── application/ # アプリケーション層
515
- │ │ │ │ ├── port/
516
- │ │ │ │ │ ├── in/ # Input Port(ユースケースIF)
517
- │ │ │ │ │ └── out/ # Output Port(リポジトリIF)
518
- │ │ │ │ └── service/ # Application Service(ユースケース実装)
519
- │ │ │ │
520
- │ │ │ ├── infrastructure/ # インフラストラクチャ層
521
- │ │ │ │ ├── in/ # Input Adapter
522
- │ │ │ │ │ └── rest/ # REST API Controller
523
- │ │ │ │ ├── out/ # Output Adapter
524
- │ │ │ │ │ └── persistence/ # 永続化(MyBatis Mapper)
525
- │ │ │ │ └── config/ # 設定クラス
526
- │ │ │ │
527
- │ │ │ └── Application.java # メインクラス
528
- │ │ │
529
- │ │ └── resources/
530
- │ │ ├── application.yml # アプリケーション設定
531
- │ │ ├── db/migration/ # Flyway マイグレーション
532
- │ │ └── mapper/ # MyBatis XML マッパー
533
- │ │
534
- │ └── test/
535
- │ ├── java/com/example/sms/
536
- │ │ ├── testsetup/ # テスト基盤クラス
537
- │ │ │ └── BaseIntegrationTest.java
538
- │ │ ├── domain/ # ドメイン層テスト
539
- │ │ ├── application/ # アプリケーション層テスト
540
- │ │ └── infrastructure/ # インフラ層テスト
541
- │ │
542
- │ └── resources/
543
- │ └── application-test.yml
544
- │
545
- ├── frontend/ # フロントエンド
546
- │ └── src/
547
- │ ├── components/ # UI コンポーネント
548
- │ ├── pages/ # ページコンポーネント
549
- │ ├── hooks/ # カスタムフック
550
- │ ├── services/ # API クライアント
551
- │ └── types/ # 型定義
552
- │
553
- └── docker-compose.yml # Docker 構成
554
- ```
555
-
556
- **各レイヤーの責務:**
557
-
558
- | レイヤー | 責務 |
559
- |---|---|
560
- | Domain 層 | ビジネスルールとドメインモデル(外部技術に非依存) |
561
- | Application 層 | ユースケースの実装とオーケストレーション |
562
- | Infrastructure 層 | 外部技術との接続(DB、Web 等) |
563
-
564
- ### ヘキサゴナルアーキテクチャ(ポート&アダプター)
565
-
566
- 販売管理システムは、ヘキサゴナルアーキテクチャ(Ports and Adapters)を採用します。このアーキテクチャにより、ビジネスロジックを外部の技術的関心事から分離し、テスト容易性と保守性を高めます。
567
-
568
- ```plantuml
569
- @startuml
570
- !define HEXAGON(name) hexagon name
571
-
572
- skinparam hexagon {
573
- BackgroundColor<<domain>> LightBlue
574
- BackgroundColor<<port>> LightGreen
575
- BackgroundColor<<adapter>> LightYellow
576
- }
577
-
578
- package "販売管理システム" {
579
- ' ドメイン(中心)
580
- hexagon "ドメイン\n(Domain)" <<domain>> as Domain {
581
- }
582
- note bottom of Domain
583
- エンティティ
584
- 値オブジェクト
585
- 集約
586
- ドメインサービス
587
- end note
588
-
589
- ' 入力ポート
590
- rectangle "入力ポート\n(Input Ports)" <<port>> as InputPort {
591
- }
592
- note left of InputPort
593
- ユースケース
594
- インターフェース
595
- end note
596
-
597
- ' 出力ポート
598
- rectangle "出力ポート\n(Output Ports)" <<port>> as OutputPort {
599
- }
600
- note right of OutputPort
601
- リポジトリ
602
- インターフェース
603
- end note
604
-
605
- ' プライマリアダプター
606
- rectangle "プライマリアダプター\n(Primary Adapters)" <<adapter>> as PrimaryAdapter {
607
- }
608
- note top of PrimaryAdapter
609
- REST API
610
- GraphQL
611
- CLI
612
- end note
613
-
614
- ' セカンダリアダプター
615
- rectangle "セカンダリアダプター\n(Secondary Adapters)" <<adapter>> as SecondaryAdapter {
616
- }
617
- note bottom of SecondaryAdapter
618
- PostgreSQL
619
- Redis
620
- 外部 API
621
- end note
622
- }
623
-
624
- PrimaryAdapter --> InputPort
625
- InputPort --> Domain
626
- Domain --> OutputPort
627
- OutputPort --> SecondaryAdapter
628
-
629
- @enduml
630
- ```
631
-
632
- #### ドメイン(中心)
633
-
634
- ドメインはシステムの中心に位置し、ビジネスロジックを実装します。
635
-
636
- ```
637
- backend/src/domain/
638
- ├── model/ # ドメインモデル
639
- │ ├── master/ # マスタ関連
640
- │ │ ├── Product.ts # 商品
641
- │ │ ├── Customer.ts # 顧客
642
- │ │ └── Supplier.ts # 仕入先
643
- │ ├── sales/ # 販売関連
644
- │ │ ├── Order.ts # 受注
645
- │ │ ├── OrderItem.ts # 受注明細
646
- │ │ ├── Shipment.ts # 出荷
647
- │ │ └── Sales.ts # 売上
648
- │ ├── purchase/ # 仕入関連
649
- │ │ ├── Purchase.ts # 発注
650
- │ │ └── PurchaseReceipt.ts # 仕入
651
- │ ├── inventory/ # 在庫関連
652
- │ │ └── Inventory.ts # 在庫
653
- │ └── billing/ # 請求関連
654
- │ ├── Invoice.ts # 請求
655
- │ └── Receipt.ts # 入金
656
- ├── type/ # 基本型
657
- │ ├── Money.ts # 通貨
658
- │ ├── Quantity.ts # 数量
659
- │ └── Unit.ts # 単位
660
- └── exception/ # ドメイン例外
661
- └── DomainException.ts
662
- ```
663
-
664
- #### ポート(入力ポート・出力ポート)
665
-
666
- ポートは、ドメインと外部世界との境界を定義するインターフェースです。
667
-
668
- | ポート種別 | 役割 | 例 |
669
- |---|---|---|
670
- | 入力ポート | 外部からの要求を受け付ける | ユースケースインターフェース |
671
- | 出力ポート | 外部リソースへのアクセスを抽象化 | リポジトリインターフェース |
672
-
673
- ```typescript
674
- // 入力ポート(ユースケースインターフェース)
675
- interface CreateOrderUseCase {
676
- execute(command: CreateOrderCommand): Promise<OrderId>;
677
- }
678
-
679
- // 出力ポート(リポジトリインターフェース)
680
- interface OrderRepository {
681
- save(order: Order): Promise<void>;
682
- findById(id: OrderId): Promise<Order | null>;
683
- findByCustomerId(customerId: CustomerId): Promise<Order[]>;
684
- }
685
- ```
686
-
687
- #### アダプター(プライマリ・セカンダリ)
688
-
689
- アダプターは、ポートの実装を提供し、外部技術とドメインを接続します。
690
-
691
- | アダプター種別 | 役割 | 例 |
692
- |---|---|---|
693
- | プライマリアダプター | 外部からの入力を処理 | REST コントローラ、CLI |
694
- | セカンダリアダプター | 外部リソースへの出力を処理 | DB リポジトリ実装、外部 API クライアント |
695
-
696
- ```
697
- backend/src/infrastructure/
698
- ├── in/ # Input Adapter(プライマリアダプター)
699
- │ └── rest/ # REST API
700
- │ ├── controller/
701
- │ │ ├── OrderController.ts
702
- │ │ ├── ShipmentController.ts
703
- │ │ └── SalesController.ts
704
- │ ├── dto/
705
- │ │ ├── OrderRequest.ts
706
- │ │ └── OrderResponse.ts
707
- │ └── exception/
708
- │ └── RestExceptionHandler.ts
709
- ├── out/ # Output Adapter(セカンダリアダプター)
710
- │ └── persistence/ # 永続化
711
- │ ├── database/ # データベース定義
712
- │ │ ├── migrations/ # マイグレーション
713
- │ │ └── seeds/ # シードデータ
714
- │ ├── mapper/ # O/R Mapper
715
- │ │ └── OrderMapper.ts
716
- │ ├── repository/ # Repository実装
717
- │ │ ├── OrderRepositoryImpl.ts
718
- │ │ └── CustomerRepositoryImpl.ts
719
- │ └── typehandler/ # 型ハンドラ
720
- └── config/ # 設定クラス
721
- ├── DatabaseConfig.ts
722
- └── WebConfig.ts
723
- ```
724
-
725
- #### 依存性の方向と依存性逆転の原則
726
-
727
- ヘキサゴナルアーキテクチャでは、すべての依存性がドメインに向かいます。
728
-
729
- ```plantuml
730
- @startuml
731
- skinparam rectangle {
732
- BackgroundColor<<domain>> LightBlue
733
- BackgroundColor<<app>> LightGreen
734
- BackgroundColor<<infra>> LightYellow
735
- BackgroundColor<<pres>> LightPink
736
- }
737
-
738
- rectangle "Presentation\n(プレゼンテーション層)" <<pres>> as Pres
739
- rectangle "Application\n(アプリケーション層)" <<app>> as App
740
- rectangle "Domain\n(ドメイン層)" <<domain>> as Domain
741
- rectangle "Infrastructure\n(インフラストラクチャ層)" <<infra>> as Infra
742
-
743
- Pres --> App
744
- App --> Domain
745
- Infra --> Domain
746
-
747
- note right of Domain
748
- 依存性逆転の原則(DIP)
749
- ・ドメインはインターフェースを定義
750
- ・インフラは実装を提供
751
- ・依存の方向は常にドメインへ
752
- end note
753
-
754
- @enduml
755
- ```
756
-
757
- ### ドメイン駆動設計の適用
758
-
759
- #### 集約とリポジトリ
760
-
761
- 販売管理システムの主要な集約を以下に示します。
762
-
763
- ```plantuml
764
- @startuml
765
- !define AGGREGATE(name) rectangle name <<aggregate>>
766
- !define ENTITY(name) class name <<entity>>
767
- !define VALUE(name) class name <<value>>
768
-
769
- skinparam class {
770
- BackgroundColor<<aggregate>> LightBlue
771
- BackgroundColor<<entity>> LightGreen
772
- BackgroundColor<<value>> LightYellow
773
- }
774
-
775
- package "受注集約" {
776
- ENTITY(Order) {
777
- +orderId: OrderId
778
- +customerId: CustomerId
779
- +orderDate: Date
780
- +status: OrderStatus
781
- +items: OrderItem[]
782
- +totalAmount(): Money
783
- }
784
-
785
- ENTITY(OrderItem) {
786
- +itemNo: number
787
- +productId: ProductId
788
- +quantity: Quantity
789
- +unitPrice: Money
790
- }
791
-
792
- VALUE(OrderId) {
793
- +value: string
794
- }
795
-
796
- VALUE(OrderStatus) {
797
- +value: string
798
- }
799
-
800
- Order *-- OrderItem
801
- Order --> OrderId
802
- Order --> OrderStatus
803
- }
804
-
805
- @enduml
806
- ```
807
-
808
- | 集約 | ルートエンティティ | 主な責務 |
809
- |---|---|---|
810
- | 見積集約 | Estimate | 見積の作成・更新・承認 |
811
- | 受注集約 | Order | 受注の登録・在庫引当・ステータス管理 |
812
- | 出荷集約 | Shipment | 出荷指示・出荷実績の管理 |
813
- | 売上集約 | Sales | 売上計上・請求データ生成 |
814
-
815
- #### ドメインサービス
816
-
817
- エンティティに属さないビジネスロジックはドメインサービスとして実装します。
818
-
819
- ```typescript
820
- // 価格計算サービス
821
- class PricingService {
822
- calculateOrderTotal(
823
- items: OrderItem[],
824
- customer: Customer,
825
- discountPolicy: DiscountPolicy
826
- ): Money {
827
- // 顧客別単価の適用
828
- // 数量割引の計算
829
- // 消費税の計算
830
- }
831
- }
832
-
833
- // 在庫引当サービス
834
- class InventoryAllocationService {
835
- allocate(order: Order): AllocationResult {
836
- // 在庫の確認
837
- // 引当処理
838
- // 不足時の調達依頼
839
- }
840
- }
841
- ```
842
-
843
- #### アプリケーションサービス
844
-
845
- アプリケーションサービスは、ユースケースを実装し、トランザクション境界を管理します。
846
-
847
- ```typescript
848
- // 受注登録ユースケース
849
- class CreateOrderService implements CreateOrderUseCase {
850
- constructor(
851
- private orderRepository: OrderRepository,
852
- private customerRepository: CustomerRepository,
853
- private pricingService: PricingService,
854
- private inventoryService: InventoryAllocationService
855
- ) {}
856
-
857
- async execute(command: CreateOrderCommand): Promise<OrderId> {
858
- // 1. 顧客の取得
859
- const customer = await this.customerRepository.findById(command.customerId);
860
-
861
- // 2. 受注の作成
862
- const order = Order.create(customer, command.items);
863
-
864
- // 3. 価格計算
865
- order.calculateTotal(this.pricingService);
866
-
867
- // 4. 在庫引当
868
- await this.inventoryService.allocate(order);
869
-
870
- // 5. 保存
871
- await this.orderRepository.save(order);
872
-
873
- return order.id;
874
- }
875
- }
876
- ```
877
-
878
- ### API 設計
879
-
880
- #### RESTful API の基本方針
881
-
882
- | 原則 | 説明 |
883
- |---|---|
884
- | リソース指向 | URL はリソース(名詞)を表す |
885
- | HTTP メソッド | GET/POST/PUT/DELETE で操作を表現 |
886
- | ステートレス | サーバーはセッション状態を保持しない |
887
- | HATEOAS | レスポンスに関連リソースへのリンクを含める |
888
-
889
- #### エンドポイント設計
890
-
891
- ```
892
- # 見積
893
- GET /api/v1/estimates # 見積一覧
894
- POST /api/v1/estimates # 見積作成
895
- GET /api/v1/estimates/{id} # 見積詳細
896
- PUT /api/v1/estimates/{id} # 見積更新
897
- DELETE /api/v1/estimates/{id} # 見積削除
898
- POST /api/v1/estimates/{id}/approve # 見積承認
899
-
900
- # 受注
901
- GET /api/v1/orders # 受注一覧
902
- POST /api/v1/orders # 受注登録
903
- GET /api/v1/orders/{id} # 受注詳細
904
- PUT /api/v1/orders/{id} # 受注更新
905
- POST /api/v1/orders/{id}/confirm # 受注確定
906
- POST /api/v1/orders/{id}/cancel # 受注キャンセル
907
-
908
- # 出荷
909
- GET /api/v1/shipments # 出荷一覧
910
- POST /api/v1/shipments # 出荷登録
911
- GET /api/v1/shipments/{id} # 出荷詳細
912
- POST /api/v1/shipments/{id}/ship # 出荷実行
913
- POST /api/v1/shipments/{id}/deliver # 配送完了
914
-
915
- # 売上
916
- GET /api/v1/sales # 売上一覧
917
- POST /api/v1/sales # 売上計上
918
- GET /api/v1/sales/{id} # 売上詳細
919
- ```
920
-
921
- ---
922
-
923
- ## まとめ
924
-
925
- 本章では、販売管理システムの全体像について解説しました。
926
-
927
- - **販売管理システムのスコープ**は「見積→受注→出荷→売上」の4つの主要業務
928
- - **5つの部門**(営業・調達・倉庫・経理・財務)がそれぞれの責務を担う
929
- - 部門間の連携により、一連の業務フローが成立する
930
- - **ヘキサゴナルアーキテクチャ**により、ドメインを中心とした疎結合な設計を実現
931
- - **ドメイン駆動設計**の集約・リポジトリパターンを適用
932
-
933
- 次章では、販売管理システムの基盤となるマスタ情報の設計について解説します。