@k2works/claude-code-booster 4.9.0 โ 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +42 -42
- package/bin/claude-code-booster +90 -90
- package/lib/assets/.claude/README.md +279 -275
- package/lib/assets/.claude/agents/xp-architect.md +250 -250
- package/lib/assets/.claude/agents/xp-executive.md +207 -207
- package/lib/assets/.claude/agents/xp-interaction-designer.md +239 -239
- package/lib/assets/.claude/agents/xp-product-manager.md +245 -245
- package/lib/assets/.claude/agents/xp-programmer.md +268 -268
- package/lib/assets/.claude/agents/xp-project-manager.md +229 -229
- package/lib/assets/.claude/agents/xp-technical-writer.md +224 -224
- package/lib/assets/.claude/agents/xp-tester.md +265 -265
- package/lib/assets/.claude/agents/xp-user-representative.md +204 -204
- package/lib/assets/.claude/scripts/generate-inception-deck.mjs +911 -911
- package/lib/assets/.claude/settings.json +11 -11
- package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +111 -111
- package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +83 -83
- package/lib/assets/.claude/skills/analyzing-business-architecture/SKILL.md +122 -122
- package/lib/assets/.claude/skills/analyzing-business-case/SKILL.md +148 -148
- package/lib/assets/.claude/skills/analyzing-business-strategy/SKILL.md +277 -277
- package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +77 -77
- package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +117 -117
- package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +84 -84
- package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +95 -95
- package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +95 -95
- package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +91 -91
- package/lib/assets/.claude/skills/analyzing-review/SKILL.md +174 -174
- package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +101 -101
- package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +89 -89
- package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +80 -80
- package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +72 -72
- package/lib/assets/.claude/skills/creating-adr/SKILL.md +113 -113
- package/lib/assets/.claude/skills/creating-development-strategy/SKILL.md +101 -0
- package/lib/assets/.claude/skills/creating-iteration-report/SKILL.md +210 -210
- package/lib/assets/.claude/skills/creating-journal/SKILL.md +129 -129
- package/lib/assets/.claude/skills/creating-release-report/SKILL.md +161 -161
- package/lib/assets/.claude/skills/creating-slides/SKILL.md +86 -86
- package/lib/assets/.claude/skills/creating-slides/agents/openai.yaml +4 -4
- package/lib/assets/.claude/skills/creating-slides/references/manga-css.md +45 -45
- package/lib/assets/.claude/skills/creating-slides/scripts/slide_tools.py +239 -239
- package/lib/assets/.claude/skills/developing-backend/SKILL.md +100 -100
- package/lib/assets/.claude/skills/developing-frontend/SKILL.md +93 -93
- package/lib/assets/.claude/skills/developing-release/SKILL.md +120 -120
- package/lib/assets/.claude/skills/developing-review/SKILL.md +175 -175
- package/lib/assets/.claude/skills/developing-uiux-review/SKILL.md +207 -207
- package/lib/assets/.claude/skills/generating-bmc/SKILL.md +123 -123
- package/lib/assets/.claude/skills/generating-slides/SKILL.md +94 -94
- package/lib/assets/.claude/skills/git-commit/SKILL.md +81 -81
- package/lib/assets/.claude/skills/killing-processes/SKILL.md +44 -44
- package/lib/assets/.claude/skills/operating-backup/SKILL.md +59 -59
- package/lib/assets/.claude/skills/operating-cicd/SKILL.md +54 -54
- package/lib/assets/.claude/skills/operating-deploy/SKILL.md +67 -67
- package/lib/assets/.claude/skills/operating-docs/SKILL.md +219 -219
- package/lib/assets/.claude/skills/operating-provision/SKILL.md +77 -77
- package/lib/assets/.claude/skills/operating-qt/SKILL.md +147 -147
- package/lib/assets/.claude/skills/operating-review/SKILL.md +171 -171
- package/lib/assets/.claude/skills/operating-script/SKILL.md +145 -145
- package/lib/assets/.claude/skills/operating-setup/SKILL.md +63 -63
- package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +104 -104
- package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +168 -168
- package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +158 -158
- package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +144 -144
- package/lib/assets/.claude/skills/planning-releases/SKILL.md +119 -119
- package/lib/assets/.claude/skills/practicing-getting-start-tdd/SKILL.md +266 -266
- package/lib/assets/.claude/skills/syncing-github-project/SKILL.md +151 -151
- package/lib/assets/.claude/skills/tracking-progress/SKILL.md +91 -91
- package/lib/assets/.claude/skills/validating-design/SKILL.md +130 -0
- package/lib/assets/.claude/skills/validating-iteration-plan/SKILL.md +238 -238
- package/lib/assets/.claude/skills/validating-operating-setup/SKILL.md +118 -118
- package/lib/assets/.devcontainer/devcontainer.json +37 -37
- package/lib/assets/.env.example +17 -17
- package/lib/assets/.gitattributes +4 -4
- package/lib/assets/.github/workflows/docker-publish.yml +77 -77
- package/lib/assets/.github/workflows/mkdocs.yml +39 -39
- package/lib/assets/AGENTS.md +94 -94
- package/lib/assets/CLAUDE.md +195 -193
- package/lib/assets/README.md +291 -291
- package/lib/assets/docker-compose.yml +33 -33
- package/lib/assets/docs/adr/index.md +10 -10
- package/lib/assets/docs/article/functional-desgin-ppp/all/01-immutability-and-data-transformation.md +475 -475
- package/lib/assets/docs/article/functional-desgin-ppp/all/02-function-composition.md +519 -519
- package/lib/assets/docs/article/functional-desgin-ppp/all/03-polymorphism.md +537 -537
- package/lib/assets/docs/article/functional-desgin-ppp/all/04-data-validation.md +300 -300
- package/lib/assets/docs/article/functional-desgin-ppp/all/05-property-based-testing.md +320 -320
- package/lib/assets/docs/article/functional-desgin-ppp/all/06-tdd-and-functional.md +498 -498
- package/lib/assets/docs/article/functional-desgin-ppp/all/07-composite-pattern.md +298 -298
- package/lib/assets/docs/article/functional-desgin-ppp/all/08-decorator-pattern.md +291 -291
- package/lib/assets/docs/article/functional-desgin-ppp/all/09-adapter-pattern.md +336 -336
- package/lib/assets/docs/article/functional-desgin-ppp/all/10-strategy-pattern.md +303 -303
- package/lib/assets/docs/article/functional-desgin-ppp/all/11-command-pattern.md +286 -286
- package/lib/assets/docs/article/functional-desgin-ppp/all/12-visitor-pattern.md +322 -322
- package/lib/assets/docs/article/functional-desgin-ppp/all/13-abstract-factory-pattern.md +319 -319
- package/lib/assets/docs/article/functional-desgin-ppp/all/14-abstract-server-pattern.md +365 -365
- package/lib/assets/docs/article/functional-desgin-ppp/all/15-gossiping-bus-drivers.md +156 -156
- package/lib/assets/docs/article/functional-desgin-ppp/all/16-payroll-system.md +178 -178
- package/lib/assets/docs/article/functional-desgin-ppp/all/17-video-rental-system.md +312 -312
- package/lib/assets/docs/article/functional-desgin-ppp/all/18-concurrency-system.md +287 -287
- package/lib/assets/docs/article/functional-desgin-ppp/all/19-wa-tor-simulation.md +286 -286
- package/lib/assets/docs/article/functional-desgin-ppp/all/20-pattern-interactions.md +274 -274
- package/lib/assets/docs/article/functional-desgin-ppp/all/21-best-practices.md +294 -294
- package/lib/assets/docs/article/functional-desgin-ppp/all/22-oo-to-fp-migration.md +337 -337
- package/lib/assets/docs/article/functional-desgin-ppp/all/index.md +388 -388
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/01-immutability-and-data-transformation.md +273 -273
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/02-function-composition.md +380 -380
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/03-polymorphism.md +384 -384
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/04-clojure-spec.md +350 -350
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/05-property-based-testing.md +352 -352
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/06-tdd-in-functional.md +383 -383
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/07-composite-pattern.md +529 -529
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/08-decorator-pattern.md +395 -395
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/09-adapter-pattern.md +399 -399
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/10-strategy-pattern.md +485 -485
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/11-command-pattern.md +566 -566
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/12-visitor-pattern.md +567 -567
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/13-abstract-factory-pattern.md +475 -475
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/14-abstract-server-pattern.md +462 -462
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/15-gossiping-bus-drivers.md +325 -325
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/16-payroll-system.md +401 -401
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/17-video-rental-system.md +450 -450
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/18-concurrency-system.md +475 -475
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/19-wator-simulation.md +739 -739
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/20-pattern-interactions.md +567 -567
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/21-best-practices.md +518 -518
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/22-oo-to-fp-migration.md +532 -532
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/index.md +241 -241
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/01-immutability-and-data-transformation.md +383 -383
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/02-function-composition.md +374 -374
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/03-polymorphism.md +375 -375
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/04-data-validation.md +195 -195
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/05-property-based-testing.md +268 -268
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/06-tdd-and-fp.md +294 -294
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/07-effects-and-pure-functions.md +164 -164
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/08-error-handling-strategies.md +168 -168
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/09-io-and-external-systems.md +254 -254
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/10-concurrency-patterns.md +269 -269
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/11-command-pattern.md +148 -148
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/12-visitor-pattern.md +176 -176
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/13-abstract-factory-pattern.md +604 -604
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/14-abstract-server-pattern.md +729 -729
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/15-gossiping-bus-drivers.md +291 -291
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/16-payroll-system.md +420 -420
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/17-video-rental-system.md +319 -319
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/18-concurrency-system.md +466 -466
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/19-wator-simulation.md +523 -523
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/20-pattern-interactions.md +287 -287
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/21-best-practices.md +340 -340
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/22-oo-to-fp-migration.md +395 -395
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/index.md +248 -248
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/01-immutability-and-data-transformation.md +384 -384
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/02-function-composition.md +452 -452
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/03-polymorphism.md +495 -495
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/04-data-validation.md +416 -416
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/05-property-based-testing.md +382 -382
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/06-tdd-functional.md +687 -687
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/07-composite-pattern.md +442 -442
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/08-decorator-pattern.md +479 -479
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/09-adapter-pattern.md +479 -479
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/10-strategy-pattern.md +427 -427
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/11-command-pattern.md +428 -428
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/12-visitor-pattern.md +339 -339
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/13-abstract-factory-pattern.md +309 -309
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/14-abstract-server-pattern.md +596 -596
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/15-gossiping-bus-drivers.md +355 -355
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/16-payroll-system.md +350 -350
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/17-video-rental-system.md +414 -414
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/18-concurrency-system.md +367 -367
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/19-wator-simulation.md +403 -403
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/20-pattern-interactions.md +291 -291
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/21-best-practices.md +324 -324
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/22-oo-to-fp-migration.md +332 -332
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/index.md +274 -274
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/01-immutability-and-data-transformation.md +298 -298
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/02-function-composition.md +304 -304
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/03-polymorphism.md +362 -362
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/04-data-validation.md +257 -257
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/05-property-based-testing.md +254 -254
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/06-tdd-functional.md +283 -283
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/07-composite-pattern.md +395 -395
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/08-decorator-pattern.md +319 -319
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/09-adapter-pattern.md +382 -382
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/10-strategy-pattern.md +287 -287
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/11-command-pattern.md +303 -303
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/12-visitor-pattern.md +326 -326
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/13-abstract-factory-pattern.md +332 -332
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/14-abstract-server-pattern.md +379 -379
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/15-gossiping-bus-drivers.md +177 -177
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/16-payroll-system.md +219 -219
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/17-video-rental-system.md +244 -244
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/18-concurrency-system.md +363 -363
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/19-wator-simulation.md +438 -438
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/20-pattern-interactions.md +325 -325
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/21-best-practices.md +403 -403
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/22-oo-to-fp-migration.md +469 -469
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/index.md +174 -174
- package/lib/assets/docs/article/functional-desgin-ppp/index.md +90 -90
- package/lib/assets/docs/article/functional-desgin-ppp/rust/01-immutability-and-data-transformation.md +450 -450
- package/lib/assets/docs/article/functional-desgin-ppp/rust/02-function-composition.md +463 -463
- package/lib/assets/docs/article/functional-desgin-ppp/rust/03-polymorphism.md +425 -425
- package/lib/assets/docs/article/functional-desgin-ppp/rust/04-data-validation.md +273 -273
- package/lib/assets/docs/article/functional-desgin-ppp/rust/05-property-based-testing.md +247 -247
- package/lib/assets/docs/article/functional-desgin-ppp/rust/06-tdd-and-functional.md +841 -841
- package/lib/assets/docs/article/functional-desgin-ppp/rust/07-composite-pattern.md +384 -384
- package/lib/assets/docs/article/functional-desgin-ppp/rust/08-decorator-pattern.md +383 -383
- package/lib/assets/docs/article/functional-desgin-ppp/rust/09-adapter-pattern.md +339 -339
- package/lib/assets/docs/article/functional-desgin-ppp/rust/10-strategy-pattern.md +331 -331
- package/lib/assets/docs/article/functional-desgin-ppp/rust/11-command-pattern.md +356 -356
- package/lib/assets/docs/article/functional-desgin-ppp/rust/12-visitor-pattern.md +379 -379
- package/lib/assets/docs/article/functional-desgin-ppp/rust/13-abstract-factory-pattern.md +361 -361
- package/lib/assets/docs/article/functional-desgin-ppp/rust/14-abstract-server-pattern.md +392 -392
- package/lib/assets/docs/article/functional-desgin-ppp/rust/15-gossiping-bus-drivers.md +300 -300
- package/lib/assets/docs/article/functional-desgin-ppp/rust/16-payroll-system.md +297 -297
- package/lib/assets/docs/article/functional-desgin-ppp/rust/17-video-rental-system.md +304 -304
- package/lib/assets/docs/article/functional-desgin-ppp/rust/18-concurrency-system.md +315 -315
- package/lib/assets/docs/article/functional-desgin-ppp/rust/19-wator-simulation.md +311 -311
- package/lib/assets/docs/article/functional-desgin-ppp/rust/20-pattern-interactions.md +304 -304
- package/lib/assets/docs/article/functional-desgin-ppp/rust/21-best-practices.md +336 -336
- package/lib/assets/docs/article/functional-desgin-ppp/rust/22-oo-to-fp-migration.md +349 -349
- package/lib/assets/docs/article/functional-desgin-ppp/rust/index.md +243 -243
- package/lib/assets/docs/article/functional-desgin-ppp/scala/01-immutability-and-data-transformation.md +328 -328
- package/lib/assets/docs/article/functional-desgin-ppp/scala/02-function-composition.md +348 -348
- package/lib/assets/docs/article/functional-desgin-ppp/scala/03-polymorphism.md +357 -357
- package/lib/assets/docs/article/functional-desgin-ppp/scala/04-data-validation.md +364 -364
- package/lib/assets/docs/article/functional-desgin-ppp/scala/05-property-based-testing.md +515 -515
- package/lib/assets/docs/article/functional-desgin-ppp/scala/06-tdd-functional.md +557 -557
- package/lib/assets/docs/article/functional-desgin-ppp/scala/07-composite-pattern.md +363 -363
- package/lib/assets/docs/article/functional-desgin-ppp/scala/08-decorator-pattern.md +327 -327
- package/lib/assets/docs/article/functional-desgin-ppp/scala/09-adapter-pattern.md +517 -517
- package/lib/assets/docs/article/functional-desgin-ppp/scala/10-strategy-pattern.md +441 -441
- package/lib/assets/docs/article/functional-desgin-ppp/scala/11-command-pattern.md +407 -407
- package/lib/assets/docs/article/functional-desgin-ppp/scala/12-visitor-pattern.md +379 -379
- package/lib/assets/docs/article/functional-desgin-ppp/scala/13-abstract-factory-pattern.md +398 -398
- package/lib/assets/docs/article/functional-desgin-ppp/scala/14-abstract-server-pattern.md +476 -476
- package/lib/assets/docs/article/functional-desgin-ppp/scala/15-gossiping-bus-drivers.md +391 -391
- package/lib/assets/docs/article/functional-desgin-ppp/scala/16-payroll-system.md +342 -342
- package/lib/assets/docs/article/functional-desgin-ppp/scala/17-video-rental-system.md +324 -324
- package/lib/assets/docs/article/functional-desgin-ppp/scala/18-concurrency-system.md +730 -730
- package/lib/assets/docs/article/functional-desgin-ppp/scala/19-wator-simulation.md +624 -624
- package/lib/assets/docs/article/functional-desgin-ppp/scala/20-pattern-interactions.md +512 -512
- package/lib/assets/docs/article/functional-desgin-ppp/scala/21-best-practices.md +433 -433
- package/lib/assets/docs/article/functional-desgin-ppp/scala/22-oo-to-fp-migration.md +688 -688
- package/lib/assets/docs/article/functional-desgin-ppp/scala/index.md +243 -243
- package/lib/assets/docs/article/getting-start-tdd/clojure/01-todo-list-and-first-test.md +166 -166
- package/lib/assets/docs/article/getting-start-tdd/clojure/02-fake-it-and-triangulation.md +162 -162
- package/lib/assets/docs/article/getting-start-tdd/clojure/03-obvious-implementation-and-refactoring.md +135 -135
- package/lib/assets/docs/article/getting-start-tdd/clojure/04-version-control-and-conventional-commits.md +88 -88
- package/lib/assets/docs/article/getting-start-tdd/clojure/05-package-management-and-static-analysis.md +299 -299
- package/lib/assets/docs/article/getting-start-tdd/clojure/06-task-runner-and-ci-cd.md +241 -241
- package/lib/assets/docs/article/getting-start-tdd/clojure/07-protocols-and-records.md +131 -131
- package/lib/assets/docs/article/getting-start-tdd/clojure/08-multimethods-and-design-patterns.md +130 -130
- package/lib/assets/docs/article/getting-start-tdd/clojure/09-namespaces-and-module-design.md +127 -127
- package/lib/assets/docs/article/getting-start-tdd/clojure/10-higher-order-functions-and-composition.md +114 -114
- package/lib/assets/docs/article/getting-start-tdd/clojure/11-persistent-data-and-pipeline.md +138 -138
- package/lib/assets/docs/article/getting-start-tdd/clojure/12-error-handling-and-spec.md +161 -161
- package/lib/assets/docs/article/getting-start-tdd/clojure/index.md +65 -65
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter01.md +232 -232
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter02.md +244 -244
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter03.md +202 -202
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter04.md +92 -92
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter05.md +256 -256
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter06.md +195 -195
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter07.md +214 -214
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter08.md +249 -249
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter09.md +174 -174
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter10.md +166 -166
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter11.md +192 -192
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter12.md +211 -211
- package/lib/assets/docs/article/getting-start-tdd/csharp/index.md +83 -83
- package/lib/assets/docs/article/getting-start-tdd/elixir/01-todo-list-and-first-test.md +87 -87
- package/lib/assets/docs/article/getting-start-tdd/elixir/02-fake-it-and-triangulation.md +95 -95
- package/lib/assets/docs/article/getting-start-tdd/elixir/03-obvious-implementation-and-refactoring.md +109 -109
- package/lib/assets/docs/article/getting-start-tdd/elixir/04-version-control-and-conventional-commits.md +96 -96
- package/lib/assets/docs/article/getting-start-tdd/elixir/05-package-management-and-static-analysis.md +88 -88
- package/lib/assets/docs/article/getting-start-tdd/elixir/06-task-runner-and-ci-cd.md +71 -71
- package/lib/assets/docs/article/getting-start-tdd/elixir/07-structs-and-protocols.md +110 -110
- package/lib/assets/docs/article/getting-start-tdd/elixir/08-pattern-matching-and-guards.md +108 -108
- package/lib/assets/docs/article/getting-start-tdd/elixir/09-module-design-and-behaviours.md +104 -104
- package/lib/assets/docs/article/getting-start-tdd/elixir/10-higher-order-functions-and-pipeline.md +178 -178
- package/lib/assets/docs/article/getting-start-tdd/elixir/11-stream-and-lazy-evaluation.md +142 -142
- package/lib/assets/docs/article/getting-start-tdd/elixir/12-error-handling-and-with.md +145 -145
- package/lib/assets/docs/article/getting-start-tdd/elixir/index.md +35 -35
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter01.md +202 -202
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter02.md +246 -246
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter03.md +218 -218
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter04.md +179 -179
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter05.md +267 -267
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter06.md +190 -190
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter07.md +161 -161
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter08.md +175 -175
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter09.md +222 -222
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter10.md +189 -189
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter11.md +212 -212
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter12.md +215 -215
- package/lib/assets/docs/article/getting-start-tdd/fsharp/index.md +71 -71
- package/lib/assets/docs/article/getting-start-tdd/go/01-todo-list-and-first-test.md +213 -213
- package/lib/assets/docs/article/getting-start-tdd/go/02-fake-it-and-triangulation.md +302 -302
- package/lib/assets/docs/article/getting-start-tdd/go/03-obvious-implementation-and-refactoring.md +339 -339
- package/lib/assets/docs/article/getting-start-tdd/go/04-version-control-and-conventional-commits.md +112 -112
- package/lib/assets/docs/article/getting-start-tdd/go/05-package-management-and-static-analysis.md +272 -272
- package/lib/assets/docs/article/getting-start-tdd/go/06-task-runner-and-ci-cd.md +233 -233
- package/lib/assets/docs/article/getting-start-tdd/go/07-encapsulation-and-polymorphism.md +394 -394
- package/lib/assets/docs/article/getting-start-tdd/go/08-design-patterns.md +422 -422
- package/lib/assets/docs/article/getting-start-tdd/go/09-solid-principles-and-module-design.md +400 -400
- package/lib/assets/docs/article/getting-start-tdd/go/10-higher-order-functions-and-composition.md +226 -226
- package/lib/assets/docs/article/getting-start-tdd/go/11-immutable-data-and-pipeline.md +296 -296
- package/lib/assets/docs/article/getting-start-tdd/go/12-error-handling-and-type-safety.md +411 -411
- package/lib/assets/docs/article/getting-start-tdd/go/index.md +83 -83
- package/lib/assets/docs/article/getting-start-tdd/haskell/01-todo-list-and-first-test.md +279 -279
- package/lib/assets/docs/article/getting-start-tdd/haskell/02-fake-it-and-triangulation.md +337 -337
- package/lib/assets/docs/article/getting-start-tdd/haskell/03-obvious-implementation-and-refactoring.md +257 -257
- package/lib/assets/docs/article/getting-start-tdd/haskell/04-version-control-and-conventional-commits.md +182 -182
- package/lib/assets/docs/article/getting-start-tdd/haskell/05-package-management-and-static-analysis.md +313 -313
- package/lib/assets/docs/article/getting-start-tdd/haskell/06-task-runner-and-ci-cd.md +309 -309
- package/lib/assets/docs/article/getting-start-tdd/haskell/07-algebraic-data-types-and-type-classes.md +412 -412
- package/lib/assets/docs/article/getting-start-tdd/haskell/08-pattern-matching-and-guards.md +390 -390
- package/lib/assets/docs/article/getting-start-tdd/haskell/09-module-design-and-smart-constructors.md +461 -461
- package/lib/assets/docs/article/getting-start-tdd/haskell/10-higher-order-functions-and-currying.md +434 -434
- package/lib/assets/docs/article/getting-start-tdd/haskell/11-function-composition-and-point-free.md +392 -392
- package/lib/assets/docs/article/getting-start-tdd/haskell/12-monad-and-error-handling.md +631 -631
- package/lib/assets/docs/article/getting-start-tdd/haskell/index.md +49 -49
- package/lib/assets/docs/article/getting-start-tdd/index.md +93 -93
- package/lib/assets/docs/article/getting-start-tdd/integration/01-language-overview.md +375 -375
- package/lib/assets/docs/article/getting-start-tdd/integration/02-test-framework-comparison.md +349 -349
- package/lib/assets/docs/article/getting-start-tdd/integration/03-tdd-pattern-comparison.md +445 -445
- package/lib/assets/docs/article/getting-start-tdd/integration/04-type-system-comparison.md +409 -409
- package/lib/assets/docs/article/getting-start-tdd/integration/05-dev-environment-comparison.md +330 -330
- package/lib/assets/docs/article/getting-start-tdd/integration/06-learning-roadmap.md +290 -290
- package/lib/assets/docs/article/getting-start-tdd/integration/index.md +69 -69
- package/lib/assets/docs/article/getting-start-tdd/java/01-todo-list-and-first-test.md +234 -234
- package/lib/assets/docs/article/getting-start-tdd/java/02-fake-it-and-triangulation.md +261 -261
- package/lib/assets/docs/article/getting-start-tdd/java/03-obvious-implementation-and-refactoring.md +185 -185
- package/lib/assets/docs/article/getting-start-tdd/java/04-version-control-and-conventional-commits.md +115 -115
- package/lib/assets/docs/article/getting-start-tdd/java/05-package-management-and-static-analysis.md +382 -382
- package/lib/assets/docs/article/getting-start-tdd/java/06-task-runner-and-ci-cd.md +272 -272
- package/lib/assets/docs/article/getting-start-tdd/java/07-encapsulation-and-polymorphism.md +626 -626
- package/lib/assets/docs/article/getting-start-tdd/java/08-design-patterns.md +393 -393
- package/lib/assets/docs/article/getting-start-tdd/java/09-solid-principles-and-module-design.md +310 -310
- package/lib/assets/docs/article/getting-start-tdd/java/10-higher-order-functions-and-composition.md +188 -188
- package/lib/assets/docs/article/getting-start-tdd/java/11-immutable-data-and-pipeline.md +167 -167
- package/lib/assets/docs/article/getting-start-tdd/java/12-error-handling-and-type-safety.md +205 -205
- package/lib/assets/docs/article/getting-start-tdd/java/index.md +61 -61
- package/lib/assets/docs/article/getting-start-tdd/node/01-todo-list-and-first-test.md +244 -244
- package/lib/assets/docs/article/getting-start-tdd/node/02-fake-it-and-triangulation.md +262 -262
- package/lib/assets/docs/article/getting-start-tdd/node/03-obvious-implementation-and-refactoring.md +169 -169
- package/lib/assets/docs/article/getting-start-tdd/node/04-version-control-and-conventional-commits.md +112 -112
- package/lib/assets/docs/article/getting-start-tdd/node/05-package-management-and-static-analysis.md +314 -314
- package/lib/assets/docs/article/getting-start-tdd/node/06-task-runner-and-ci-cd.md +235 -235
- package/lib/assets/docs/article/getting-start-tdd/node/07-encapsulation-and-polymorphism.md +327 -327
- package/lib/assets/docs/article/getting-start-tdd/node/08-design-patterns.md +322 -322
- package/lib/assets/docs/article/getting-start-tdd/node/09-solid-principles-and-module-design.md +285 -285
- package/lib/assets/docs/article/getting-start-tdd/node/10-higher-order-functions-and-composition.md +199 -199
- package/lib/assets/docs/article/getting-start-tdd/node/11-immutable-data-and-pipeline.md +207 -207
- package/lib/assets/docs/article/getting-start-tdd/node/12-error-handling-and-type-safety.md +295 -295
- package/lib/assets/docs/article/getting-start-tdd/node/index.md +56 -56
- package/lib/assets/docs/article/getting-start-tdd/php/01-todo-list-and-first-test.md +259 -259
- package/lib/assets/docs/article/getting-start-tdd/php/02-fake-it-and-triangulation.md +200 -200
- package/lib/assets/docs/article/getting-start-tdd/php/03-obvious-implementation-and-refactoring.md +248 -248
- package/lib/assets/docs/article/getting-start-tdd/php/04-version-control-and-conventional-commits.md +141 -141
- package/lib/assets/docs/article/getting-start-tdd/php/05-package-management-and-static-analysis.md +410 -410
- package/lib/assets/docs/article/getting-start-tdd/php/06-task-runner-and-ci-cd.md +321 -321
- package/lib/assets/docs/article/getting-start-tdd/php/07-encapsulation-and-polymorphism.md +372 -372
- package/lib/assets/docs/article/getting-start-tdd/php/08-design-patterns.md +453 -453
- package/lib/assets/docs/article/getting-start-tdd/php/09-solid-principles-and-module-design.md +460 -460
- package/lib/assets/docs/article/getting-start-tdd/php/10-higher-order-functions-and-composition.md +182 -182
- package/lib/assets/docs/article/getting-start-tdd/php/11-immutable-data-and-pipeline.md +266 -266
- package/lib/assets/docs/article/getting-start-tdd/php/12-error-handling-and-type-safety.md +308 -308
- package/lib/assets/docs/article/getting-start-tdd/php/index.md +84 -84
- package/lib/assets/docs/article/getting-start-tdd/python/01-todo-list-and-first-test.md +201 -201
- package/lib/assets/docs/article/getting-start-tdd/python/02-fake-it-and-triangulation.md +247 -247
- package/lib/assets/docs/article/getting-start-tdd/python/03-obvious-implementation-and-refactoring.md +199 -199
- package/lib/assets/docs/article/getting-start-tdd/python/04-version-control-and-conventional-commits.md +87 -87
- package/lib/assets/docs/article/getting-start-tdd/python/05-package-management-and-static-analysis.md +274 -274
- package/lib/assets/docs/article/getting-start-tdd/python/06-task-runner-and-ci-cd.md +190 -190
- package/lib/assets/docs/article/getting-start-tdd/python/07-encapsulation-and-polymorphism.md +208 -208
- package/lib/assets/docs/article/getting-start-tdd/python/08-design-patterns.md +172 -172
- package/lib/assets/docs/article/getting-start-tdd/python/09-solid-principles-and-module-design.md +130 -130
- package/lib/assets/docs/article/getting-start-tdd/python/10-higher-order-functions-and-composition.md +122 -122
- package/lib/assets/docs/article/getting-start-tdd/python/11-immutable-data-and-pipeline.md +116 -116
- package/lib/assets/docs/article/getting-start-tdd/python/12-error-handling-and-type-safety.md +126 -126
- package/lib/assets/docs/article/getting-start-tdd/python/index.md +55 -55
- package/lib/assets/docs/article/getting-start-tdd/ruby/01-todo-list-and-first-test.md +231 -231
- package/lib/assets/docs/article/getting-start-tdd/ruby/02-fake-it-and-triangulation.md +238 -238
- package/lib/assets/docs/article/getting-start-tdd/ruby/03-obvious-implementation-and-refactoring.md +228 -228
- package/lib/assets/docs/article/getting-start-tdd/ruby/04-version-control-and-conventional-commits.md +112 -112
- package/lib/assets/docs/article/getting-start-tdd/ruby/05-package-management-and-static-analysis.md +287 -287
- package/lib/assets/docs/article/getting-start-tdd/ruby/06-task-runner-and-ci-cd.md +248 -248
- package/lib/assets/docs/article/getting-start-tdd/ruby/07-encapsulation-and-polymorphism.md +279 -279
- package/lib/assets/docs/article/getting-start-tdd/ruby/08-design-patterns.md +329 -329
- package/lib/assets/docs/article/getting-start-tdd/ruby/09-solid-principles-and-module-design.md +196 -196
- package/lib/assets/docs/article/getting-start-tdd/ruby/10-higher-order-functions-and-composition.md +175 -175
- package/lib/assets/docs/article/getting-start-tdd/ruby/11-immutable-data-and-pipeline.md +237 -237
- package/lib/assets/docs/article/getting-start-tdd/ruby/12-error-handling-and-type-safety.md +398 -398
- package/lib/assets/docs/article/getting-start-tdd/ruby/index.md +83 -83
- package/lib/assets/docs/article/getting-start-tdd/rust/01-todo-list-and-first-test.md +211 -211
- package/lib/assets/docs/article/getting-start-tdd/rust/02-fake-it-and-triangulation.md +264 -264
- package/lib/assets/docs/article/getting-start-tdd/rust/03-obvious-implementation-and-refactoring.md +233 -233
- package/lib/assets/docs/article/getting-start-tdd/rust/04-version-control-and-conventional-commits.md +92 -92
- package/lib/assets/docs/article/getting-start-tdd/rust/05-package-management-and-static-analysis.md +212 -212
- package/lib/assets/docs/article/getting-start-tdd/rust/06-task-runner-and-ci-cd.md +164 -164
- package/lib/assets/docs/article/getting-start-tdd/rust/07-encapsulation-and-polymorphism.md +142 -142
- package/lib/assets/docs/article/getting-start-tdd/rust/08-design-patterns.md +145 -145
- package/lib/assets/docs/article/getting-start-tdd/rust/09-solid-principles-and-module-design.md +110 -110
- package/lib/assets/docs/article/getting-start-tdd/rust/10-higher-order-functions-and-composition.md +94 -94
- package/lib/assets/docs/article/getting-start-tdd/rust/11-immutable-data-and-pipeline.md +105 -105
- package/lib/assets/docs/article/getting-start-tdd/rust/12-error-handling-and-type-safety.md +112 -112
- package/lib/assets/docs/article/getting-start-tdd/rust/index.md +83 -83
- package/lib/assets/docs/article/getting-start-tdd/scala/01-todo-list-and-first-test.md +111 -111
- package/lib/assets/docs/article/getting-start-tdd/scala/02-fake-it-and-triangulation.md +107 -107
- package/lib/assets/docs/article/getting-start-tdd/scala/03-obvious-implementation-and-refactoring.md +99 -99
- package/lib/assets/docs/article/getting-start-tdd/scala/04-version-control-and-conventional-commits.md +123 -123
- package/lib/assets/docs/article/getting-start-tdd/scala/05-package-management-and-static-analysis.md +196 -196
- package/lib/assets/docs/article/getting-start-tdd/scala/06-task-runner-and-ci-cd.md +186 -186
- package/lib/assets/docs/article/getting-start-tdd/scala/07-case-classes-and-traits.md +139 -139
- package/lib/assets/docs/article/getting-start-tdd/scala/08-pattern-matching-and-sealed-traits.md +106 -106
- package/lib/assets/docs/article/getting-start-tdd/scala/09-packages-and-module-design.md +75 -75
- package/lib/assets/docs/article/getting-start-tdd/scala/10-higher-order-functions-and-composition.md +104 -104
- package/lib/assets/docs/article/getting-start-tdd/scala/11-collections-and-lazy-evaluation.md +94 -94
- package/lib/assets/docs/article/getting-start-tdd/scala/12-error-handling-and-type-safety.md +92 -92
- package/lib/assets/docs/article/getting-start-tdd/scala/index.md +65 -65
- package/lib/assets/docs/article/grokking-concurrency/all/index.md +404 -404
- package/lib/assets/docs/article/grokking-concurrency/all/part-1-ch02-sequential.md +554 -554
- package/lib/assets/docs/article/grokking-concurrency/all/part-2-ch04-05-threads.md +469 -469
- package/lib/assets/docs/article/grokking-concurrency/all/part-3-ch06-multitasking.md +520 -520
- package/lib/assets/docs/article/grokking-concurrency/all/part-4-ch07-parallel-patterns.md +420 -420
- package/lib/assets/docs/article/grokking-concurrency/all/part-5-ch08-09-synchronization.md +510 -510
- package/lib/assets/docs/article/grokking-concurrency/all/part-6-ch10-11-nonblocking-io.md +435 -435
- package/lib/assets/docs/article/grokking-concurrency/all/part-7-ch12-async.md +465 -465
- package/lib/assets/docs/article/grokking-concurrency/all/part-8-ch13-mapreduce.md +377 -377
- package/lib/assets/docs/article/grokking-concurrency/clojure/index.md +116 -116
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-1.md +108 -108
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-2.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-3.md +122 -122
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-4.md +123 -123
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-5.md +118 -118
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-6.md +89 -89
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-7.md +100 -100
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-8.md +120 -120
- package/lib/assets/docs/article/grokking-concurrency/csharp/index.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-1.md +97 -97
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-2.md +123 -123
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-3.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-4.md +112 -112
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-5.md +99 -99
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-6.md +61 -61
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-7.md +84 -84
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-8.md +92 -92
- package/lib/assets/docs/article/grokking-concurrency/fsharp/index.md +65 -65
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-1.md +80 -80
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-2.md +103 -103
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-3.md +94 -94
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-4.md +110 -110
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-5.md +104 -104
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-6.md +93 -93
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-7.md +121 -121
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-8.md +107 -107
- package/lib/assets/docs/article/grokking-concurrency/haskell/index.md +248 -248
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-1.md +96 -96
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-2.md +96 -96
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-3.md +91 -91
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-4.md +106 -106
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-5.md +99 -99
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-6.md +95 -95
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-7.md +111 -111
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-8.md +118 -118
- package/lib/assets/docs/article/grokking-concurrency/index.md +66 -66
- package/lib/assets/docs/article/grokking-concurrency/java/index.md +102 -102
- package/lib/assets/docs/article/grokking-concurrency/java/part-1.md +308 -308
- package/lib/assets/docs/article/grokking-concurrency/java/part-2.md +334 -334
- package/lib/assets/docs/article/grokking-concurrency/java/part-3.md +221 -221
- package/lib/assets/docs/article/grokking-concurrency/java/part-4.md +213 -213
- package/lib/assets/docs/article/grokking-concurrency/java/part-5.md +112 -112
- package/lib/assets/docs/article/grokking-concurrency/java/part-6.md +69 -69
- package/lib/assets/docs/article/grokking-concurrency/java/part-7.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/java/part-8.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/python/index.md +313 -313
- package/lib/assets/docs/article/grokking-concurrency/python/part-1.md +239 -239
- package/lib/assets/docs/article/grokking-concurrency/python/part-2.md +418 -418
- package/lib/assets/docs/article/grokking-concurrency/python/part-3.md +227 -227
- package/lib/assets/docs/article/grokking-concurrency/python/part-4.md +299 -299
- package/lib/assets/docs/article/grokking-concurrency/python/part-5.md +315 -315
- package/lib/assets/docs/article/grokking-concurrency/python/part-6.md +297 -297
- package/lib/assets/docs/article/grokking-concurrency/python/part-7.md +314 -314
- package/lib/assets/docs/article/grokking-concurrency/python/part-8.md +360 -360
- package/lib/assets/docs/article/grokking-concurrency/rust/index.md +270 -270
- package/lib/assets/docs/article/grokking-concurrency/rust/part-1.md +108 -108
- package/lib/assets/docs/article/grokking-concurrency/rust/part-2.md +120 -120
- package/lib/assets/docs/article/grokking-concurrency/rust/part-3.md +126 -126
- package/lib/assets/docs/article/grokking-concurrency/rust/part-4.md +175 -175
- package/lib/assets/docs/article/grokking-concurrency/rust/part-5.md +158 -158
- package/lib/assets/docs/article/grokking-concurrency/rust/part-6.md +94 -94
- package/lib/assets/docs/article/grokking-concurrency/rust/part-7.md +133 -133
- package/lib/assets/docs/article/grokking-concurrency/rust/part-8.md +155 -155
- package/lib/assets/docs/article/grokking-concurrency/scala/index.md +69 -69
- package/lib/assets/docs/article/grokking-concurrency/scala/part-1.md +78 -78
- package/lib/assets/docs/article/grokking-concurrency/scala/part-2.md +112 -112
- package/lib/assets/docs/article/grokking-concurrency/scala/part-3.md +93 -93
- package/lib/assets/docs/article/grokking-concurrency/scala/part-4.md +110 -110
- package/lib/assets/docs/article/grokking-concurrency/scala/part-5.md +119 -119
- package/lib/assets/docs/article/grokking-concurrency/scala/part-6.md +83 -83
- package/lib/assets/docs/article/grokking-concurrency/scala/part-7.md +131 -131
- package/lib/assets/docs/article/grokking-concurrency/scala/part-8.md +129 -129
- package/lib/assets/docs/article/grokkingfp/all/index.md +368 -368
- package/lib/assets/docs/article/grokkingfp/all/part-1-ch01-fp-introduction.md +530 -530
- package/lib/assets/docs/article/grokkingfp/all/part-1-ch02-pure-functions.md +923 -923
- package/lib/assets/docs/article/grokkingfp/all/part-2-ch03-immutable-data.md +1128 -1128
- package/lib/assets/docs/article/grokkingfp/all/part-2-ch04-higher-order-functions.md +1104 -1104
- package/lib/assets/docs/article/grokkingfp/all/part-2-ch05-flatmap.md +1026 -1026
- package/lib/assets/docs/article/grokkingfp/all/part-3-ch06-option.md +785 -785
- package/lib/assets/docs/article/grokkingfp/all/part-3-ch07-either-adt.md +871 -871
- package/lib/assets/docs/article/grokkingfp/all/part-4-ch08-io-monad.md +972 -972
- package/lib/assets/docs/article/grokkingfp/all/part-4-ch09-streams.md +926 -926
- package/lib/assets/docs/article/grokkingfp/all/part-5-ch10-concurrency.md +870 -870
- package/lib/assets/docs/article/grokkingfp/all/part-6-ch11-application.md +715 -715
- package/lib/assets/docs/article/grokkingfp/all/part-6-ch12-testing.md +626 -626
- package/lib/assets/docs/article/grokkingfp/all/writing-plan.md +712 -712
- package/lib/assets/docs/article/grokkingfp/clojure/index.md +276 -276
- package/lib/assets/docs/article/grokkingfp/clojure/part-1.md +667 -667
- package/lib/assets/docs/article/grokkingfp/clojure/part-2.md +643 -643
- package/lib/assets/docs/article/grokkingfp/clojure/part-3.md +620 -620
- package/lib/assets/docs/article/grokkingfp/clojure/part-4.md +697 -697
- package/lib/assets/docs/article/grokkingfp/clojure/part-5.md +751 -751
- package/lib/assets/docs/article/grokkingfp/clojure/part-6.md +721 -721
- package/lib/assets/docs/article/grokkingfp/csharp/index.md +246 -246
- package/lib/assets/docs/article/grokkingfp/csharp/part-1.md +811 -811
- package/lib/assets/docs/article/grokkingfp/csharp/part-2.md +971 -971
- package/lib/assets/docs/article/grokkingfp/csharp/part-3.md +981 -981
- package/lib/assets/docs/article/grokkingfp/csharp/part-4.md +949 -949
- package/lib/assets/docs/article/grokkingfp/csharp/part-5.md +947 -947
- package/lib/assets/docs/article/grokkingfp/csharp/part-6.md +739 -739
- package/lib/assets/docs/article/grokkingfp/elixir/index.md +203 -203
- package/lib/assets/docs/article/grokkingfp/elixir/part-1.md +712 -712
- package/lib/assets/docs/article/grokkingfp/elixir/part-2.md +838 -838
- package/lib/assets/docs/article/grokkingfp/elixir/part-3.md +985 -985
- package/lib/assets/docs/article/grokkingfp/elixir/part-4.md +974 -974
- package/lib/assets/docs/article/grokkingfp/elixir/part-5.md +1286 -1286
- package/lib/assets/docs/article/grokkingfp/elixir/part-6.md +1049 -1049
- package/lib/assets/docs/article/grokkingfp/fsharp/index.md +210 -210
- package/lib/assets/docs/article/grokkingfp/fsharp/part-1.md +714 -714
- package/lib/assets/docs/article/grokkingfp/fsharp/part-2.md +961 -961
- package/lib/assets/docs/article/grokkingfp/fsharp/part-3.md +972 -972
- package/lib/assets/docs/article/grokkingfp/fsharp/part-4.md +832 -832
- package/lib/assets/docs/article/grokkingfp/fsharp/part-5.md +911 -911
- package/lib/assets/docs/article/grokkingfp/fsharp/part-6.md +922 -922
- package/lib/assets/docs/article/grokkingfp/haskell/index.md +234 -234
- package/lib/assets/docs/article/grokkingfp/haskell/part-1.md +591 -591
- package/lib/assets/docs/article/grokkingfp/haskell/part-2.md +866 -866
- package/lib/assets/docs/article/grokkingfp/haskell/part-3.md +915 -915
- package/lib/assets/docs/article/grokkingfp/haskell/part-4.md +878 -878
- package/lib/assets/docs/article/grokkingfp/haskell/part-5.md +845 -845
- package/lib/assets/docs/article/grokkingfp/haskell/part-6.md +844 -844
- package/lib/assets/docs/article/grokkingfp/index.md +143 -143
- package/lib/assets/docs/article/grokkingfp/java/index.md +211 -211
- package/lib/assets/docs/article/grokkingfp/java/part-1.md +648 -648
- package/lib/assets/docs/article/grokkingfp/java/part-2.md +675 -675
- package/lib/assets/docs/article/grokkingfp/java/part-3.md +672 -672
- package/lib/assets/docs/article/grokkingfp/java/part-4.md +771 -771
- package/lib/assets/docs/article/grokkingfp/java/part-5.md +959 -959
- package/lib/assets/docs/article/grokkingfp/java/part-6.md +1328 -1328
- package/lib/assets/docs/article/grokkingfp/python/index.md +258 -258
- package/lib/assets/docs/article/grokkingfp/python/part-1.md +443 -443
- package/lib/assets/docs/article/grokkingfp/python/part-2.md +958 -958
- package/lib/assets/docs/article/grokkingfp/python/part-3.md +1004 -1004
- package/lib/assets/docs/article/grokkingfp/python/part-4.md +765 -765
- package/lib/assets/docs/article/grokkingfp/python/part-5.md +747 -747
- package/lib/assets/docs/article/grokkingfp/python/part-6.md +861 -861
- package/lib/assets/docs/article/grokkingfp/ruby/index.md +330 -330
- package/lib/assets/docs/article/grokkingfp/ruby/part-1.md +755 -755
- package/lib/assets/docs/article/grokkingfp/ruby/part-2.md +938 -938
- package/lib/assets/docs/article/grokkingfp/ruby/part-3.md +946 -946
- package/lib/assets/docs/article/grokkingfp/ruby/part-4.md +921 -921
- package/lib/assets/docs/article/grokkingfp/ruby/part-5.md +908 -908
- package/lib/assets/docs/article/grokkingfp/ruby/part-6.md +1412 -1412
- package/lib/assets/docs/article/grokkingfp/rust/index.md +242 -242
- package/lib/assets/docs/article/grokkingfp/rust/part-1.md +634 -634
- package/lib/assets/docs/article/grokkingfp/rust/part-2.md +1060 -1060
- package/lib/assets/docs/article/grokkingfp/rust/part-3.md +994 -994
- package/lib/assets/docs/article/grokkingfp/rust/part-4.md +573 -573
- package/lib/assets/docs/article/grokkingfp/rust/part-5.md +705 -705
- package/lib/assets/docs/article/grokkingfp/rust/part-6.md +508 -508
- package/lib/assets/docs/article/grokkingfp/scala/index.md +171 -171
- package/lib/assets/docs/article/grokkingfp/scala/part-1.md +543 -543
- package/lib/assets/docs/article/grokkingfp/scala/part-2.md +946 -946
- package/lib/assets/docs/article/grokkingfp/scala/part-3.md +919 -919
- package/lib/assets/docs/article/grokkingfp/scala/part-4.md +742 -742
- package/lib/assets/docs/article/grokkingfp/scala/part-5.md +722 -722
- package/lib/assets/docs/article/grokkingfp/scala/part-6.md +867 -867
- package/lib/assets/docs/article/grokkingfp/typescript/index.md +273 -273
- package/lib/assets/docs/article/grokkingfp/typescript/part-1.md +561 -561
- package/lib/assets/docs/article/grokkingfp/typescript/part-2.md +1129 -1129
- package/lib/assets/docs/article/grokkingfp/typescript/part-3.md +842 -842
- package/lib/assets/docs/article/grokkingfp/typescript/part-4.md +1087 -1087
- package/lib/assets/docs/article/grokkingfp/typescript/part-5.md +717 -717
- package/lib/assets/docs/article/grokkingfp/typescript/part-6.md +982 -982
- package/lib/assets/docs/article/index.md +41 -41
- package/lib/assets/docs/article/practical-database-design/index.md +121 -121
- package/lib/assets/docs/article/practical-database-design/part1/chapter01.md +288 -288
- package/lib/assets/docs/article/practical-database-design/part1/chapter02.md +518 -518
- package/lib/assets/docs/article/practical-database-design/part1/chapter03.md +557 -557
- package/lib/assets/docs/article/practical-database-design/part2/chapter04.md +924 -924
- package/lib/assets/docs/article/practical-database-design/part2/chapter05.md +1627 -1627
- package/lib/assets/docs/article/practical-database-design/part2/chapter06.md +2716 -2716
- package/lib/assets/docs/article/practical-database-design/part2/chapter07.md +2082 -2082
- package/lib/assets/docs/article/practical-database-design/part2/chapter08.md +2105 -2105
- package/lib/assets/docs/article/practical-database-design/part2/chapter09.md +2031 -2031
- package/lib/assets/docs/article/practical-database-design/part2/chapter10.md +1387 -1387
- package/lib/assets/docs/article/practical-database-design/part2/chapter11.md +1677 -1677
- package/lib/assets/docs/article/practical-database-design/part2/chapter12.md +1417 -1417
- package/lib/assets/docs/article/practical-database-design/part2/chapter13.md +1434 -1434
- package/lib/assets/docs/article/practical-database-design/part3/chapter14.md +667 -667
- package/lib/assets/docs/article/practical-database-design/part3/chapter15.md +1625 -1625
- package/lib/assets/docs/article/practical-database-design/part3/chapter16.md +1915 -1915
- package/lib/assets/docs/article/practical-database-design/part3/chapter17.md +1708 -1708
- package/lib/assets/docs/article/practical-database-design/part3/chapter18.md +2095 -2095
- package/lib/assets/docs/article/practical-database-design/part3/chapter19.md +1123 -1123
- package/lib/assets/docs/article/practical-database-design/part3/chapter20.md +1031 -1031
- package/lib/assets/docs/article/practical-database-design/part3/chapter21.md +1382 -1382
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter14-orm.md +991 -991
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter15-orm.md +1300 -1300
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter16-orm.md +1166 -1166
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter17-orm.md +1584 -1584
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter18-orm.md +1183 -1183
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter19-orm.md +1016 -1016
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter20-orm.md +1753 -1753
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter21-orm.md +1447 -1447
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter22-orm.md +1878 -1878
- package/lib/assets/docs/article/practical-database-design/part4/chapter22.md +965 -965
- package/lib/assets/docs/article/practical-database-design/part4/chapter23.md +2069 -2069
- package/lib/assets/docs/article/practical-database-design/part4/chapter24.md +2439 -2439
- package/lib/assets/docs/article/practical-database-design/part4/chapter25.md +3661 -3661
- package/lib/assets/docs/article/practical-database-design/part4/chapter26.md +2916 -2916
- package/lib/assets/docs/article/practical-database-design/part4/chapter27.md +3105 -3105
- package/lib/assets/docs/article/practical-database-design/part4/chapter28.md +2697 -2697
- package/lib/assets/docs/article/practical-database-design/part4/chapter29.md +2544 -2544
- package/lib/assets/docs/article/practical-database-design/part4/chapter30.md +2180 -2180
- package/lib/assets/docs/article/practical-database-design/part4/chapter31.md +1192 -1192
- package/lib/assets/docs/article/practical-database-design/part4/chapter32.md +2101 -2101
- package/lib/assets/docs/article/practical-database-design/part5/chapter33.md +1032 -1032
- package/lib/assets/docs/article/practical-database-design/part5/chapter34.md +1609 -1609
- package/lib/assets/docs/article/practical-database-design/part5/chapter35.md +1453 -1453
- package/lib/assets/docs/article/practical-database-design/part5/chapter36.md +1292 -1292
- package/lib/assets/docs/article/practical-database-design/part5/chapter37.md +1470 -1470
- package/lib/assets/docs/article/practical-database-design/part5/chapter38.md +1698 -1698
- package/lib/assets/docs/article/practical-database-design/part5/chapter39.md +2334 -2334
- package/lib/assets/docs/article/practical-database-design/study/study2-1.md +1693 -1693
- package/lib/assets/docs/article/practical-database-design/study/study2-2.md +1347 -1347
- package/lib/assets/docs/article/practical-database-design/study/study2-3.md +2044 -2044
- package/lib/assets/docs/article/practical-database-design/study/study2-4.md +2229 -2229
- package/lib/assets/docs/article/practical-database-design/study/study2-5.md +2418 -2418
- package/lib/assets/docs/article/practical-database-design/study/study3-1.md +2205 -2205
- package/lib/assets/docs/article/practical-database-design/study/study3-2.md +2221 -2221
- package/lib/assets/docs/article/practical-database-design/study/study3-3.md +2253 -2253
- package/lib/assets/docs/article/practical-database-design/study/study3-4.md +2106 -2106
- package/lib/assets/docs/article/practical-database-design/study/study3-5.md +2507 -2507
- package/lib/assets/docs/article/practical-database-design/study/study4-1.md +2587 -2587
- package/lib/assets/docs/article/practical-database-design/study/study4-2.md +2075 -2075
- package/lib/assets/docs/article/practical-database-design/study/study4-3.md +1805 -1805
- package/lib/assets/docs/article/practical-database-design/study/study4-4.md +1895 -1895
- package/lib/assets/docs/article/practical-database-design/study/study4-5.md +2878 -2878
- package/lib/assets/docs/assets/css/extra.css +29 -29
- package/lib/assets/docs/assets/js/extra.js +44 -44
- package/lib/assets/docs/design/index.md +44 -44
- package/lib/assets/docs/development/index.md +39 -39
- package/lib/assets/docs/index.md +33 -33
- package/lib/assets/docs/operation/index.md +27 -27
- package/lib/assets/docs/reference/CodexCLIMCP/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/343/203/225/343/203/255/343/203/274.md +546 -546
- package/lib/assets/docs/reference/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 +341 -341
- 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 +581 -581
- 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 +642 -642
- 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 +465 -465
- package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +450 -450
- package/lib/assets/docs/reference/images/Ansoff.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BMC.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BrandBasicStrategy.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BrandCategorization.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BrandRecurutementStrategy.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BrandValue.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BusinessActivitiy.svg +3 -3
- package/lib/assets/docs/reference/images/HRM.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/MarketingStructure.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/OrganizationElemnts.svg +3 -3
- package/lib/assets/docs/reference/images/PPM.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/PositioningMap.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/ProductLayer.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/ProductMix.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/SWOT.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/TargetMarket.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/ThreeGenericStrategies.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/VRIO.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/ValueChain.drawio.svg +3 -3
- package/lib/assets/docs/reference/index.md +53 -53
- 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 +250 -250
- 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 +2216 -2216
- 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 +1878 -1878
- 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 +550 -550
- 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 +705 -705
- 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 +1313 -1313
- 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 +311 -311
- 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 +599 -599
- 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 +528 -528
- 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 +689 -689
- 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 +461 -461
- 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 +580 -580
- 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 +1367 -1367
- package/lib/assets/docs/reference//344/274/201/346/245/255/347/265/214/345/226/266/350/253/226.md +2637 -2637
- 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 +665 -665
- package/lib/assets/docs/reference//347/265/214/345/226/266/346/210/246/347/225/245/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +566 -566
- package/lib/assets/docs/reference//350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1248 -1248
- 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 +518 -518
- package/lib/assets/docs/reference//351/201/213/345/226/266/347/256/241/347/220/206.md +1482 -1482
- 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 +421 -421
- 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 +392 -392
- package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +305 -305
- 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 +1236 -1236
- package/lib/assets/docs/requirements/index.md +17 -17
- package/lib/assets/docs/review/index.md +5 -5
- package/lib/assets/docs/strategy/index.md +17 -17
- package/lib/assets/docs/template/ADR.md +30 -30
- 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 +1366 -1366
- 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 +634 -634
- package/lib/assets/docs/template/README.md +50 -50
- package/lib/assets/docs/template/index.md +24 -24
- 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 +12 -12
- 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 +547 -547
- 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 +58 -58
- package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273.md +327 -327
- package/lib/assets/docs/template//343/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 +13 -13
- 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 +379 -379
- package/lib/assets/docs/template//343/203/252/343/203/252/343/203/274/343/202/271/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +275 -275
- package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +513 -513
- package/lib/assets/docs/template//344/274/201/346/245/255/345/210/206/346/236/220.md +573 -573
- 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 +69 -69
- package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +669 -669
- package/lib/assets/docs/template//350/250/255/350/250/210.md +173 -173
- 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 +688 -688
- package/lib/assets/gulpfile.js +25 -25
- package/lib/assets/mkdocs.yml +139 -139
- package/lib/assets/ops/docker/mkdoc/Dockerfile +19 -19
- package/lib/assets/ops/docker/sonarqube-local/docker-compose.yml +57 -57
- package/lib/assets/ops/scripts/journal.js +180 -180
- package/lib/assets/ops/scripts/mkdocs.js +82 -82
- package/lib/assets/ops/scripts/release.js +431 -431
- package/lib/assets/ops/scripts/sonar_local.js +726 -726
- package/lib/assets/ops/scripts/ssh.js +190 -190
- package/lib/assets/ops/scripts/vault.js +299 -299
- package/lib/assets/package-lock.json +1653 -1653
- package/lib/assets/package.json +40 -40
- package/lib/gulpfile.js +37 -37
- package/package.json +41 -41
|
@@ -1,290 +1,290 @@
|
|
|
1
|
-
# ๅญฆ็ฟใญใผใใใใ
|
|
2
|
-
|
|
3
|
-
ๆฌ็ซ ใงใฏใ12 ่จ่ชใๅนๆ็ใซๅญฆใถใใใฎๆจๅฅจ้ ๅบใๅ่จ่ชใง็ฟๅพใงใใๆฆๅฟตใใใใฆๅญฆ็ฟใๆทฑใใใใใฎๆฌกใฎในใใใใๆ็คบใใพใใ
|
|
4
|
-
|
|
5
|
-
## ๆจๅฅจๅญฆ็ฟ้ ๅบ
|
|
6
|
-
|
|
7
|
-
### ใใงใผใบ 1: OOP ใฎๅบ็ค๏ผ1-2 ่จ่ช๏ผ
|
|
8
|
-
|
|
9
|
-
ใพใ OOP ใฎๅบๆฌๆฆๅฟตใ็ขบๅฎใซ่บซใซใคใใพใใ
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
Java โโโ Python
|
|
13
|
-
โ โ
|
|
14
|
-
โ โโ ใใซใใใฉใใคใ ใฎๅบ็ค
|
|
15
|
-
โโ OOP ใฎ็้ใ้็ๅไปใใฎๅบ็ค
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
| ้ ๅบ | ่จ่ช | ๅญฆ็ฟๆ้็ฎๅฎ | ็ฟๅพใใๆฆๅฟต |
|
|
19
|
-
|------|------|-----------|------------|
|
|
20
|
-
| 1 | **Java** | 2-3 ้ฑ้ | ใฏใฉในใใคใณใฟใผใใงใผในใ็ถๆฟใJUnit 5ใGradle |
|
|
21
|
-
| 2 | **Python** | 1-2 ้ฑ้ | ๅ็ๅไปใใABCใใใณใฌใผใฟใpytest |
|
|
22
|
-
|
|
23
|
-
**Java ใๆๅใซๅญฆใถ็็ฑ**:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- ้็ๅไปใใจ OOP ใฎๆฆๅฟตใๆ็ขบใซๅใใใฆใใ
|
|
27
|
-
- JUnit 5 ใฎๆง้ ใ TDD ใฎๅบๆฌใใฟใผใณใๅญฆใถใฎใซๆ้ฉ
|
|
28
|
-
- ใจใณใทในใใ ใๆ็ใใฆใใใๅญฆ็ฟใชใฝใผในใ่ฑๅฏ
|
|
29
|
-
|
|
30
|
-
**Python ใ 2 ็ช็ฎใซๅญฆใถ็็ฑ**:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- Java ใจใฎๅฏพๆฏใงๅ็ๅไปใใฎๅฉ็นใจๆฌ ็นใไฝๆใงใใ
|
|
34
|
-
- pytest ใฎใทใณใใซใใ TDD ใฎๆฌ่ณชใ็่งฃใใใ
|
|
35
|
-
- ใใซใใใฉใใคใ ใธใฎๆฉๆธกใ
|
|
36
|
-
|
|
37
|
-
### ใใงใผใบ 2: ใใซใใใฉใใคใ ใฎๆกๅผต๏ผ2-3 ่จ่ช๏ผ
|
|
38
|
-
|
|
39
|
-
OOP ใฎๅบ็คใฎไธใซใ็ฐใชใใใฉใใคใ ใฎ่ฆ็ด ใ็ฉใฟไธใใพใใ
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
TypeScript โโโ Ruby โโโ Go or Rust
|
|
43
|
-
โ โ โ
|
|
44
|
-
โ โ โโ ๆง้ ๅ/ๆๆๆจฉใจใใๆฐๆฆๅฟต
|
|
45
|
-
โ โโ OOP + ใใญใใฏ/Lambda
|
|
46
|
-
โโ ๅใทในใใ ใฎๆกๅผต๏ผใฆใใชใณๅใๅใฌใผใ๏ผ
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
| ้ ๅบ | ่จ่ช | ๅญฆ็ฟๆ้็ฎๅฎ | ็ฟๅพใใๆฆๅฟต |
|
|
50
|
-
|------|------|-----------|------------|
|
|
51
|
-
| 3 | **TypeScript** | 1-2 ้ฑ้ | ใฆใใชใณๅใๅใฌใผใใVitestใESLint |
|
|
52
|
-
| 4 | **Ruby** | 1-2 ้ฑ้ | ใใญใใฏ/Proc/LambdaใMinitestใRuboCop |
|
|
53
|
-
| 5a | **Go** | 1-2 ้ฑ้ | ๆง้ ไฝใๆ้ป็ใคใณใฟใผใใงใผในใใใผใใซ้งๅใในใ |
|
|
54
|
-
| 5b | **Rust** | 2-3 ้ฑ้ | ๆๆๆจฉใๅ็จใtraitใResult/OptionใClippy |
|
|
55
|
-
|
|
56
|
-
**Go ใจ Rust ใฏใฉใกใใไธๆนใ้ธๆใใพใใฏ้ ใซๅญฆ็ฟ**:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- **Go**: ใทใณใใซใใ้่ฆใใๅ ดๅใใคใณใฟใผใใงใผในใฎๆง้ ็้จๅๅใๆฐ้ฎฎ
|
|
60
|
-
- **Rust**: ๅๅฎๅ
จๆงใๆทฑใ็่งฃใใใๅ ดๅใๆๆๆจฉใทในใใ ใๆ นๆฌ็ใซๆฐใใ
|
|
61
|
-
|
|
62
|
-
### ใใงใผใบ 3: FP ใธใฎๅฑ้๏ผ2-4 ่จ่ช๏ผ
|
|
63
|
-
|
|
64
|
-
้ขๆฐๅใใญใฐใฉใใณใฐใฎๆฆๅฟตใๆฎต้็ใซๅฐๅ
ฅใใพใใ
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
F# โโโ Scala โโโ Elixir or Clojure โโโ Haskell
|
|
68
|
-
โ โ โ โ
|
|
69
|
-
โ โ โ โโ ็ด็ฒ้ขๆฐๅใฎ้ ็น
|
|
70
|
-
โ โ โโ BEAM/LISP ใฎไธ็
|
|
71
|
-
โ โโ OOP + FP ใฎใใคใใชใใ
|
|
72
|
-
โโ .NET ไธใฎ FP ๅ
ฅ้๏ผC# ใใใฎๆฉๆธกใ๏ผ
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
| ้ ๅบ | ่จ่ช | ๅญฆ็ฟๆ้็ฎๅฎ | ็ฟๅพใใๆฆๅฟต |
|
|
76
|
-
|------|------|-----------|------------|
|
|
77
|
-
| 6 | **F#** | 1-2 ้ฑ้ | ๅคๅฅๅ
ฑ็จไฝใใใคใใฉใคใณใใใฟใผใณใใใใณใฐ |
|
|
78
|
-
| 7 | **Scala** | 2-3 ้ฑ้ | sealed traitใfor ๅ
ๅ
่กจ่จใOption/Either |
|
|
79
|
-
| 8a | **Elixir** | 1-2 ้ฑ้ | ใใฟใผใณใใใใณใฐใใใคใใฉใคใณใ{:ok, :error} |
|
|
80
|
-
| 8b | **Clojure** | 2-3 ้ฑ้ | S ๅผใไธๅคใใผใฟใใใญใใณใซใREPL ้งๅ |
|
|
81
|
-
| 9 | **Haskell** | 3-4 ้ฑ้ | ๅใฏใฉในใใขใใใ้
ๅปถ่ฉไพกใdo ่จๆณ |
|
|
82
|
-
|
|
83
|
-
**F# ใ FP ใฎๅ
ฅๅฃใซ้ธใถ็็ฑ**:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
- C# ใจๅใ .NET ใฉใณใฟใคใ ไธใงๅไฝใใๆขๅญ็ฅ่ญใๆดปใใใ
|
|
87
|
-
- ๅคๅฅๅ
ฑ็จไฝใจใใฟใผใณใใใใณใฐใ FP ใฎๆ ธๅฟใๆใใฆใใใ
|
|
88
|
-
- ใใคใใฉใคใณๆผ็ฎๅญใใใผใฟใใญใผใฎๆ่ๆณใ่บซใซใคใใใใ
|
|
89
|
-
|
|
90
|
-
**Haskell ใๆๅพใซๅญฆใถ็็ฑ**:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
- ็ด็ฒ้ขๆฐๅใฎๆฆๅฟต๏ผใขใใใๅใฏใฉใน๏ผใฏไปใฎ FP ่จ่ชใฎๅบ็คใใใใจ็่งฃใใใใ
|
|
94
|
-
- ไปใฎ่จ่ชใงใใชใ FP ใๆ็จใใใไฝๆใใๅพใซใๆใๅณๅฏใช FP ใๅญฆใถ
|
|
95
|
-
|
|
96
|
-
### PHP ใจ C# ใฎไฝ็ฝฎใฅใ
|
|
97
|
-
|
|
98
|
-
PHP ใจ C# ใฏไธ่จใฎใใงใผใบใซๅซใพใใฆใใพใใใใไปฅไธใฎใฟใคใใณใฐใงๅญฆใถใใจใๆจๅฅจใใพใใ
|
|
99
|
-
|
|
100
|
-
| ่จ่ช | ๆจๅฅจใฟใคใใณใฐ | ็็ฑ |
|
|
101
|
-
|------|-------------|------|
|
|
102
|
-
| **PHP** | ใใงใผใบ 1 ใฎๅพ | Web ้็บใฎๆ่ใง OOP ใๅ็ขบ่ช |
|
|
103
|
-
| **C#** | ใใงใผใบ 2 ใฎๅพ | Java ใฎ็ฅ่ญใ .NET ใซ่ปข็จใF# ใธใฎๆฉๆธกใ |
|
|
104
|
-
|
|
105
|
-
## ๅ่จ่ชใงๅญฆในใๆฆๅฟตใใใ
|
|
106
|
-
|
|
107
|
-
### TDD ใฎๅบๆฌๆฆๅฟต
|
|
108
|
-
|
|
109
|
-
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
110
|
-
|------|----------------|------|
|
|
111
|
-
| Red-Green-Refactor | Java, Python | ใทใณใใซใชๆง้ ใงๆฌ่ณชใซ้ไธญ |
|
|
112
|
-
| ใในใใใกใผในใ | ใในใฆ | ๅ
ฑ้ๆฆๅฟต |
|
|
113
|
-
| ไปฎๅฎ่ฃ
| ใในใฆ | ๅ
ฑ้ๆฆๅฟต |
|
|
114
|
-
| ไธ่งๆธฌ้ | Java, Go | ใในใใใผใใซใไธ่งๆธฌ้ใจ็ธๆงใ่ฏใ |
|
|
115
|
-
| ๆ็ฝใชๅฎ่ฃ
| ใในใฆ | ๅ
ฑ้ๆฆๅฟต |
|
|
116
|
-
|
|
117
|
-
### OOP ๆฆๅฟต
|
|
118
|
-
|
|
119
|
-
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
120
|
-
|------|----------------|------|
|
|
121
|
-
| ใซใใปใซๅ | Java, C# | ใขใฏใปในไฟฎ้ฃพๅญใๆ็ขบ |
|
|
122
|
-
| ็ถๆฟ | Java, Ruby | ๅไธ/Mixin ็ถๆฟใฎๅฏพๆฏ |
|
|
123
|
-
| ใใชใขใผใใฃใบใ ๏ผๅๅ็๏ผ | Java, C#, TypeScript | interface ใฎๆ็คบ็ๅฎ่ฃ
|
|
|
124
|
-
| ใใชใขใผใใฃใบใ ๏ผๆง้ ็๏ผ | Go, TypeScript | ๆ้ป็ใคใณใฟใผใใงใผใน |
|
|
125
|
-
| ใใถใคใณใใฟใผใณ | Java, C# | GoF ใใฟใผใณใ็ดๆฅ้ฉ็จ |
|
|
126
|
-
| SOLID ๅๅ | Java, TypeScript | ไพๅญๆงใฎๆณจๅ
ฅใ่ช็ถ |
|
|
127
|
-
|
|
128
|
-
### FP ๆฆๅฟต
|
|
129
|
-
|
|
130
|
-
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
131
|
-
|------|----------------|------|
|
|
132
|
-
| ้ซ้้ขๆฐ | Python, TypeScript, Ruby | ้ฆดๆใฟใใใๆงๆ |
|
|
133
|
-
| ใใฟใผใณใใใใณใฐ | Rust, F#, Scala, Elixir, Haskell | ่จ่ชใฌใใซใงใตใใผใ |
|
|
134
|
-
| ไธๅคใใผใฟ | Clojure, Haskell, F# | ใใใฉใซใใไธๅค |
|
|
135
|
-
| ใใคใใฉใคใณ | F#, Elixir | `\|>` ๆผ็ฎๅญ |
|
|
136
|
-
| ใขใใ | Haskell | ๆใ็ด็ฒใชๅฎ่ฃ
|
|
|
137
|
-
| ไปฃๆฐ็ใใผใฟๅ | Haskell, F#, Rust, Scala | ๅคๅฅๅ
ฑ็จไฝ / enum |
|
|
138
|
-
| ้
ๅปถ่ฉไพก | Haskell, Scala, Clojure | ่จ่ชใฌใใซใงใตใใผใ |
|
|
139
|
-
| ใใญใใณใซ / ๅใฏใฉใน | Clojure, Haskell | ad-hoc ใใชใขใผใใฃใบใ |
|
|
140
|
-
|
|
141
|
-
### ๅใทในใใ ๆฆๅฟต
|
|
142
|
-
|
|
143
|
-
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
144
|
-
|------|----------------|------|
|
|
145
|
-
| ้็ๅไปใ | Java, Go | ๆ็คบ็ใชๅๅฎฃ่จ |
|
|
146
|
-
| ๅๆจ่ซ | Haskell, F#, Rust | HM ๅๆจ่ซ |
|
|
147
|
-
| ใธใงใใชใฏใน | Java, TypeScript, Rust | ๆฎต้็ใซๅญฆในใ |
|
|
148
|
-
| Option/Result | Rust, Haskell | null ใชใ่จ่ช |
|
|
149
|
-
| ใฆใใชใณๅ | TypeScript, F# | ๅใง็ถๆ
ใ่กจ็พ |
|
|
150
|
-
| ๅใฏใฉใน | Haskell | ad-hoc ใใชใขใผใใฃใบใ |
|
|
151
|
-
| ๆๆๆจฉ / ๅ็จ | Rust | ใกใขใชๅฎๅ
จๆง |
|
|
152
|
-
|
|
153
|
-
### ้็บ็ฐๅขๆฆๅฟต
|
|
154
|
-
|
|
155
|
-
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
156
|
-
|------|----------------|------|
|
|
157
|
-
| ใใใฑใผใธ็ฎก็ | Node (npm), Python (pip) | ๆใใทใณใใซ |
|
|
158
|
-
| ้็่งฃๆ | Rust (Clippy), Go (golangci-lint) | ๆจๆบใใผใซใๅผทๅ |
|
|
159
|
-
| CI/CD | ใในใฆ | Nix ใง็ตฑไธ |
|
|
160
|
-
| REPL ้งๅ้็บ | Clojure, Elixir | REPL ใ้็บใฎไธญๅฟ |
|
|
161
|
-
|
|
162
|
-
## ๅ
จไฝใฎๅญฆ็ฟใใใ
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
166
|
-
โ ใใงใผใบ 3: FP โ
|
|
167
|
-
โ โ
|
|
168
|
-
โ F# โโโ Scala โโโ Elixir/Clojure โ
|
|
169
|
-
โ โ โ โ
|
|
170
|
-
โ โโโโโโโโโโโฌโโโโโโโโโโโโ โ
|
|
171
|
-
โ โผ โ
|
|
172
|
-
โ Haskell โ
|
|
173
|
-
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
174
|
-
โ
|
|
175
|
-
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
176
|
-
โ ใใงใผใบ 2: ใใซใใใฉใใคใ โ
|
|
177
|
-
โ โ
|
|
178
|
-
โ TypeScript โโโ Ruby โโโ Go / Rust โ
|
|
179
|
-
โ โ โ โ
|
|
180
|
-
โ โโโ PHP โโโ C# โ
|
|
181
|
-
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
182
|
-
โ
|
|
183
|
-
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
184
|
-
โ ใใงใผใบ 1: OOP ๅบ็ค โ
|
|
185
|
-
โ โ
|
|
186
|
-
โ Java โโโ Python โ
|
|
187
|
-
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## ๅญฆ็ฟใฎใใณใ
|
|
191
|
-
|
|
192
|
-
### ๅใใงใผใบใงๆ่ญใในใใใจ
|
|
193
|
-
|
|
194
|
-
**ใใงใผใบ 1**:
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
- TDD ใฎ Red-Green-Refactor ใตใคใฏใซใไฝใซๆใฟ่พผใพใใ
|
|
198
|
-
- ใในใใใๅ
ใซใๆธใ็ฟๆ
ฃใ็ขบ็ซใใ
|
|
199
|
-
- ้็ๅไปใใจๅ็ๅไปใใฎ้ใใไฝๆใใ
|
|
200
|
-
|
|
201
|
-
**ใใงใผใบ 2**:
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
- ๅใ FizzBuzz ไปๆงใ็ฐใชใ่จ่ชใงๅฎ่ฃ
ใใใไฝใๅใใงไฝใ้ใใใใๆ่ญใใ
|
|
205
|
-
- ๅ่จ่ชใฎใคใใฃใชใ ใๅฐ้ใใ๏ผGo ใฎใทใณใใซใใRuby ใฎ่กจ็พๅ๏ผ
|
|
206
|
-
- ใชใณใฟใผใฎๆๆใ้ใใฆใใใฎ่จ่ชใใใใณใผใใใๅญฆใถ
|
|
207
|
-
|
|
208
|
-
**ใใงใผใบ 3**:
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
- ใใชใไธๅคใใผใฟใๆ็จใใใ่ชๅใฎ่จ่ใง่ชฌๆใงใใใใใซใชใ
|
|
212
|
-
- ใใฟใผใณใใใใณใฐใฎๅจๅใไฝๆใใ
|
|
213
|
-
- ใขใใใใๆใใใฎใใงใฏใชใใไพฟๅฉใช้ๅ
ทใใจใใฆ็่งฃใใ
|
|
214
|
-
|
|
215
|
-
### ๅนๆ็ใชๅญฆ็ฟใใฏใใใฏ
|
|
216
|
-
|
|
217
|
-
1. **ๆฏ่ผๅญฆ็ฟ**: ๅใไปๆงใ 2 ใคใฎ่จ่ชใงๅฎ่ฃ
ใใๅทฎๅใๅๆใใ
|
|
218
|
-
2. **ๆฎต้็ๆทฑๅ**: ใพใ FizzBuzz ใฎๅบๆฌใๆฌกใซ OOP ใชใใกใฏใฟใชใณใฐใๆๅพใซ FP ใชใใกใฏใฟใชใณใฐ
|
|
219
|
-
3. **ใชใณใฟใผๆดป็จ**: ใชใณใฟใผใฎๆๆใใใใฎ่จ่ชใฎใในใใใฉใฏใใฃในใใจใใฆๅญฆใถ
|
|
220
|
-
4. **ใในใใใ่ชญใ**: ๆฐใใ่จ่ชใฎใณใผใใ่ชญใ้ใฏใใในใใใกใคใซใใ่ชญใฟๅงใใ
|
|
221
|
-
|
|
222
|
-
## ๆฌกใฎในใใใ
|
|
223
|
-
|
|
224
|
-
### ใใญใธใงใฏใใธใฎๅฟ็จ
|
|
225
|
-
|
|
226
|
-
ๆฌใทใชใผใบใงๅญฆใใ TDD ในใญใซใๅฎ้ใฎใใญใธใงใฏใใซๅฟ็จใใใใใฎใฌใคใใงใใ
|
|
227
|
-
|
|
228
|
-
| ในใใใ | ๅ
ๅฎน | ๆจๅฅจ่จ่ช |
|
|
229
|
-
|---------|------|---------|
|
|
230
|
-
| Web API ้็บ | REST API ใ TDD ใงๆง็ฏ | Java (Spring), TypeScript (Express), Go (net/http) |
|
|
231
|
-
| CLI ใใผใซ้็บ | ใณใใณใใฉใคใณใใผใซใ TDD ใงๆง็ฏ | Rust, Go, Python |
|
|
232
|
-
| ใใผใฟๅฆ็ | ใใคใใฉใคใณใซใใใใผใฟๅคๆ | Elixir, Scala, F# |
|
|
233
|
-
| ไธฆ่กๅฆ็ | ไธฆ่ก/ไธฆๅๅฆ็ใฎๅฎ่ฃ
| Go (goroutine), Elixir (GenServer), Rust (tokio) |
|
|
234
|
-
| ใใกใคใณใขใใชใณใฐ | DDD + TDD | Java, TypeScript, F# |
|
|
235
|
-
|
|
236
|
-
### ๆทฑใๅญฆ็ฟใชใฝใผใน
|
|
237
|
-
|
|
238
|
-
#### TDDใป่จญ่จ
|
|
239
|
-
|
|
240
|
-
| ๆธ็ฑ | ่่
| ๅฏพๅฟ่จ่ช |
|
|
241
|
-
|------|------|---------|
|
|
242
|
-
| ใในใ้งๅ้็บ | Kent Beck | Java (ๅๆธ), ๅ
จ่จ่ชใซ้ฉ็จๅฏ่ฝ |
|
|
243
|
-
| ใชใใกใฏใฟใชใณใฐ | Martin Fowler | Java / JavaScript |
|
|
244
|
-
| Clean Code | Robert C. Martin | Java |
|
|
245
|
-
| ใจใฏในใใชใผใ ใใญใฐใฉใใณใฐ | Kent Beck | ่จ่ช้ไพๅญ |
|
|
246
|
-
|
|
247
|
-
#### ่จ่ชๅฅใฎๆทฑใๅญฆ็ฟ
|
|
248
|
-
|
|
249
|
-
| ่จ่ช | ๆจๅฅจๆธ็ฑ / ใชใฝใผใน |
|
|
250
|
-
|------|-------------------|
|
|
251
|
-
| Java | Effective Java (Joshua Bloch) |
|
|
252
|
-
| Python | Fluent Python (Luciano Ramalho) |
|
|
253
|
-
| TypeScript | Programming TypeScript (Boris Cherny) |
|
|
254
|
-
| Ruby | Practical Object-Oriented Design (Sandi Metz) |
|
|
255
|
-
| Go | The Go Programming Language (Donovan & Kernighan) |
|
|
256
|
-
| Rust | The Rust Programming Language (Klabnik & Nichols) |
|
|
257
|
-
| C# | C# in Depth (Jon Skeet) |
|
|
258
|
-
| F# | Domain Modeling Made Functional (Scott Wlaschin) |
|
|
259
|
-
| Clojure | Clojure for the Brave and True (Daniel Higginbotham) |
|
|
260
|
-
| Scala | Programming in Scala (Odersky et al.) |
|
|
261
|
-
| Elixir | Programming Elixir (Dave Thomas) |
|
|
262
|
-
| Haskell | Learn You a Haskell for Great Good! (Miran Lipovaca) |
|
|
263
|
-
|
|
264
|
-
#### FP ๅ
จ่ฌ
|
|
265
|
-
|
|
266
|
-
| ๆธ็ฑ | ่่
| ็นๅพด |
|
|
267
|
-
|------|------|------|
|
|
268
|
-
| ้ขๆฐๅใใญใฐใฉใใณใฐใฎๅบ็ค | - | FP ใฎๆฆๅฟตใๆฅๆฌ่ชใง |
|
|
269
|
-
| Category Theory for Programmers | Bartosz Milewski | ๅ่ซใฎๅบ็ค |
|
|
270
|
-
| Domain Modeling Made Functional | Scott Wlaschin | DDD + FP |
|
|
271
|
-
|
|
272
|
-
### ใณใใฅใใใฃ
|
|
273
|
-
|
|
274
|
-
ๅ่จ่ชใฎใณใใฅใใใฃใซๅๅ ใใใใจใงใๅญฆ็ฟใๅ ้ใงใใพใใ
|
|
275
|
-
|
|
276
|
-
- **GitHub**: ๆฌใใญใธใงใฏใใฎ Issues / Discussions
|
|
277
|
-
- **ๅ่จ่ชใฎๅ
ฌๅผใใฉใผใฉใ **: Rust Users, Elixir Forum, Haskell Discourse ็ญ
|
|
278
|
-
- **ใซใณใใกใฌใณใน**: RubyKaigi, PyCon, GopherCon, RustConf, ScalaMatsuri ็ญ
|
|
279
|
-
|
|
280
|
-
## ใพใจใ
|
|
281
|
-
|
|
282
|
-
12 ่จ่ชใฎๅญฆ็ฟใฏไธ่ฆ่จๅคงใซๆใใพใใใไปฅไธใฎๆฆ็ฅใงๅน็็ใซ้ฒใใใใจใใงใใพใใ
|
|
283
|
-
|
|
284
|
-
1. **ใใงใผใบๅใใใฆๆฎต้็ใซ**: OOP โ ใใซใใใฉใใคใ โ FP ใฎ้ ใงๆฆๅฟตใ็ฉใฟไธใใ
|
|
285
|
-
2. **FizzBuzz ใๅ
ฑ้้กๆใซ**: ๅใไปๆงใ็ฐใชใ่จ่ชใงๅฎ่ฃ
ใใใใจใงใๅทฎๅใซ้ไธญใงใใ
|
|
286
|
-
3. **TDD ใ่ปธใซ**: Red-Green-Refactor ใฎใตใคใฏใซใฏใในใฆใฎ่จ่ชใงๅ
ฑ้ใงใใใ่จ่ชใ่ถ
ใใๆฎ้็ในใญใซใจใชใ
|
|
287
|
-
4. **ใชใณใฟใผใซๅญฆใถ**: ๅ่จ่ชใฎใคใใฃใชใ ใฏใชใณใฟใผใๆใใฆใใใ
|
|
288
|
-
5. **ๆทฑใใจๅบใใฎใใฉใณใน**: ใในใฆใฎ่จ่ชใๆทฑใๅญฆใถๅฟ
่ฆใฏใชใใ2-3 ่จ่ชใๆทฑใใๆฎใใฏๆฆ่ฆใ็่งฃใใ
|
|
289
|
-
|
|
290
|
-
ๆฌใทใชใผใบใ้ใใฆใใในใ้งๅ้็บใฎๆฌ่ณช -- ใๅไฝใใใใใใชใณใผใใใๆฎต้็ใซไฝใไธใใใใญใปใน -- ใฏ่จ่ชใ่ถ
ใใฆๆฎ้็ใงใใใใจใไฝๆใใฆใใใ ใใใฐๅนธใใงใใ
|
|
1
|
+
# ๅญฆ็ฟใญใผใใใใ
|
|
2
|
+
|
|
3
|
+
ๆฌ็ซ ใงใฏใ12 ่จ่ชใๅนๆ็ใซๅญฆใถใใใฎๆจๅฅจ้ ๅบใๅ่จ่ชใง็ฟๅพใงใใๆฆๅฟตใใใใฆๅญฆ็ฟใๆทฑใใใใใฎๆฌกใฎในใใใใๆ็คบใใพใใ
|
|
4
|
+
|
|
5
|
+
## ๆจๅฅจๅญฆ็ฟ้ ๅบ
|
|
6
|
+
|
|
7
|
+
### ใใงใผใบ 1: OOP ใฎๅบ็ค๏ผ1-2 ่จ่ช๏ผ
|
|
8
|
+
|
|
9
|
+
ใพใ OOP ใฎๅบๆฌๆฆๅฟตใ็ขบๅฎใซ่บซใซใคใใพใใ
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Java โโโ Python
|
|
13
|
+
โ โ
|
|
14
|
+
โ โโ ใใซใใใฉใใคใ ใฎๅบ็ค
|
|
15
|
+
โโ OOP ใฎ็้ใ้็ๅไปใใฎๅบ็ค
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
| ้ ๅบ | ่จ่ช | ๅญฆ็ฟๆ้็ฎๅฎ | ็ฟๅพใใๆฆๅฟต |
|
|
19
|
+
|------|------|-----------|------------|
|
|
20
|
+
| 1 | **Java** | 2-3 ้ฑ้ | ใฏใฉในใใคใณใฟใผใใงใผในใ็ถๆฟใJUnit 5ใGradle |
|
|
21
|
+
| 2 | **Python** | 1-2 ้ฑ้ | ๅ็ๅไปใใABCใใใณใฌใผใฟใpytest |
|
|
22
|
+
|
|
23
|
+
**Java ใๆๅใซๅญฆใถ็็ฑ**:
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
- ้็ๅไปใใจ OOP ใฎๆฆๅฟตใๆ็ขบใซๅใใใฆใใ
|
|
27
|
+
- JUnit 5 ใฎๆง้ ใ TDD ใฎๅบๆฌใใฟใผใณใๅญฆใถใฎใซๆ้ฉ
|
|
28
|
+
- ใจใณใทในใใ ใๆ็ใใฆใใใๅญฆ็ฟใชใฝใผในใ่ฑๅฏ
|
|
29
|
+
|
|
30
|
+
**Python ใ 2 ็ช็ฎใซๅญฆใถ็็ฑ**:
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
- Java ใจใฎๅฏพๆฏใงๅ็ๅไปใใฎๅฉ็นใจๆฌ ็นใไฝๆใงใใ
|
|
34
|
+
- pytest ใฎใทใณใใซใใ TDD ใฎๆฌ่ณชใ็่งฃใใใ
|
|
35
|
+
- ใใซใใใฉใใคใ ใธใฎๆฉๆธกใ
|
|
36
|
+
|
|
37
|
+
### ใใงใผใบ 2: ใใซใใใฉใใคใ ใฎๆกๅผต๏ผ2-3 ่จ่ช๏ผ
|
|
38
|
+
|
|
39
|
+
OOP ใฎๅบ็คใฎไธใซใ็ฐใชใใใฉใใคใ ใฎ่ฆ็ด ใ็ฉใฟไธใใพใใ
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
TypeScript โโโ Ruby โโโ Go or Rust
|
|
43
|
+
โ โ โ
|
|
44
|
+
โ โ โโ ๆง้ ๅ/ๆๆๆจฉใจใใๆฐๆฆๅฟต
|
|
45
|
+
โ โโ OOP + ใใญใใฏ/Lambda
|
|
46
|
+
โโ ๅใทในใใ ใฎๆกๅผต๏ผใฆใใชใณๅใๅใฌใผใ๏ผ
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
| ้ ๅบ | ่จ่ช | ๅญฆ็ฟๆ้็ฎๅฎ | ็ฟๅพใใๆฆๅฟต |
|
|
50
|
+
|------|------|-----------|------------|
|
|
51
|
+
| 3 | **TypeScript** | 1-2 ้ฑ้ | ใฆใใชใณๅใๅใฌใผใใVitestใESLint |
|
|
52
|
+
| 4 | **Ruby** | 1-2 ้ฑ้ | ใใญใใฏ/Proc/LambdaใMinitestใRuboCop |
|
|
53
|
+
| 5a | **Go** | 1-2 ้ฑ้ | ๆง้ ไฝใๆ้ป็ใคใณใฟใผใใงใผในใใใผใใซ้งๅใในใ |
|
|
54
|
+
| 5b | **Rust** | 2-3 ้ฑ้ | ๆๆๆจฉใๅ็จใtraitใResult/OptionใClippy |
|
|
55
|
+
|
|
56
|
+
**Go ใจ Rust ใฏใฉใกใใไธๆนใ้ธๆใใพใใฏ้ ใซๅญฆ็ฟ**:
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
- **Go**: ใทใณใใซใใ้่ฆใใๅ ดๅใใคใณใฟใผใใงใผในใฎๆง้ ็้จๅๅใๆฐ้ฎฎ
|
|
60
|
+
- **Rust**: ๅๅฎๅ
จๆงใๆทฑใ็่งฃใใใๅ ดๅใๆๆๆจฉใทในใใ ใๆ นๆฌ็ใซๆฐใใ
|
|
61
|
+
|
|
62
|
+
### ใใงใผใบ 3: FP ใธใฎๅฑ้๏ผ2-4 ่จ่ช๏ผ
|
|
63
|
+
|
|
64
|
+
้ขๆฐๅใใญใฐใฉใใณใฐใฎๆฆๅฟตใๆฎต้็ใซๅฐๅ
ฅใใพใใ
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
F# โโโ Scala โโโ Elixir or Clojure โโโ Haskell
|
|
68
|
+
โ โ โ โ
|
|
69
|
+
โ โ โ โโ ็ด็ฒ้ขๆฐๅใฎ้ ็น
|
|
70
|
+
โ โ โโ BEAM/LISP ใฎไธ็
|
|
71
|
+
โ โโ OOP + FP ใฎใใคใใชใใ
|
|
72
|
+
โโ .NET ไธใฎ FP ๅ
ฅ้๏ผC# ใใใฎๆฉๆธกใ๏ผ
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
| ้ ๅบ | ่จ่ช | ๅญฆ็ฟๆ้็ฎๅฎ | ็ฟๅพใใๆฆๅฟต |
|
|
76
|
+
|------|------|-----------|------------|
|
|
77
|
+
| 6 | **F#** | 1-2 ้ฑ้ | ๅคๅฅๅ
ฑ็จไฝใใใคใใฉใคใณใใใฟใผใณใใใใณใฐ |
|
|
78
|
+
| 7 | **Scala** | 2-3 ้ฑ้ | sealed traitใfor ๅ
ๅ
่กจ่จใOption/Either |
|
|
79
|
+
| 8a | **Elixir** | 1-2 ้ฑ้ | ใใฟใผใณใใใใณใฐใใใคใใฉใคใณใ{:ok, :error} |
|
|
80
|
+
| 8b | **Clojure** | 2-3 ้ฑ้ | S ๅผใไธๅคใใผใฟใใใญใใณใซใREPL ้งๅ |
|
|
81
|
+
| 9 | **Haskell** | 3-4 ้ฑ้ | ๅใฏใฉในใใขใใใ้
ๅปถ่ฉไพกใdo ่จๆณ |
|
|
82
|
+
|
|
83
|
+
**F# ใ FP ใฎๅ
ฅๅฃใซ้ธใถ็็ฑ**:
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
- C# ใจๅใ .NET ใฉใณใฟใคใ ไธใงๅไฝใใๆขๅญ็ฅ่ญใๆดปใใใ
|
|
87
|
+
- ๅคๅฅๅ
ฑ็จไฝใจใใฟใผใณใใใใณใฐใ FP ใฎๆ ธๅฟใๆใใฆใใใ
|
|
88
|
+
- ใใคใใฉใคใณๆผ็ฎๅญใใใผใฟใใญใผใฎๆ่ๆณใ่บซใซใคใใใใ
|
|
89
|
+
|
|
90
|
+
**Haskell ใๆๅพใซๅญฆใถ็็ฑ**:
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
- ็ด็ฒ้ขๆฐๅใฎๆฆๅฟต๏ผใขใใใๅใฏใฉใน๏ผใฏไปใฎ FP ่จ่ชใฎๅบ็คใใใใจ็่งฃใใใใ
|
|
94
|
+
- ไปใฎ่จ่ชใงใใชใ FP ใๆ็จใใใไฝๆใใๅพใซใๆใๅณๅฏใช FP ใๅญฆใถ
|
|
95
|
+
|
|
96
|
+
### PHP ใจ C# ใฎไฝ็ฝฎใฅใ
|
|
97
|
+
|
|
98
|
+
PHP ใจ C# ใฏไธ่จใฎใใงใผใบใซๅซใพใใฆใใพใใใใไปฅไธใฎใฟใคใใณใฐใงๅญฆใถใใจใๆจๅฅจใใพใใ
|
|
99
|
+
|
|
100
|
+
| ่จ่ช | ๆจๅฅจใฟใคใใณใฐ | ็็ฑ |
|
|
101
|
+
|------|-------------|------|
|
|
102
|
+
| **PHP** | ใใงใผใบ 1 ใฎๅพ | Web ้็บใฎๆ่ใง OOP ใๅ็ขบ่ช |
|
|
103
|
+
| **C#** | ใใงใผใบ 2 ใฎๅพ | Java ใฎ็ฅ่ญใ .NET ใซ่ปข็จใF# ใธใฎๆฉๆธกใ |
|
|
104
|
+
|
|
105
|
+
## ๅ่จ่ชใงๅญฆในใๆฆๅฟตใใใ
|
|
106
|
+
|
|
107
|
+
### TDD ใฎๅบๆฌๆฆๅฟต
|
|
108
|
+
|
|
109
|
+
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
110
|
+
|------|----------------|------|
|
|
111
|
+
| Red-Green-Refactor | Java, Python | ใทใณใใซใชๆง้ ใงๆฌ่ณชใซ้ไธญ |
|
|
112
|
+
| ใในใใใกใผในใ | ใในใฆ | ๅ
ฑ้ๆฆๅฟต |
|
|
113
|
+
| ไปฎๅฎ่ฃ
| ใในใฆ | ๅ
ฑ้ๆฆๅฟต |
|
|
114
|
+
| ไธ่งๆธฌ้ | Java, Go | ใในใใใผใใซใไธ่งๆธฌ้ใจ็ธๆงใ่ฏใ |
|
|
115
|
+
| ๆ็ฝใชๅฎ่ฃ
| ใในใฆ | ๅ
ฑ้ๆฆๅฟต |
|
|
116
|
+
|
|
117
|
+
### OOP ๆฆๅฟต
|
|
118
|
+
|
|
119
|
+
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
120
|
+
|------|----------------|------|
|
|
121
|
+
| ใซใใปใซๅ | Java, C# | ใขใฏใปในไฟฎ้ฃพๅญใๆ็ขบ |
|
|
122
|
+
| ็ถๆฟ | Java, Ruby | ๅไธ/Mixin ็ถๆฟใฎๅฏพๆฏ |
|
|
123
|
+
| ใใชใขใผใใฃใบใ ๏ผๅๅ็๏ผ | Java, C#, TypeScript | interface ใฎๆ็คบ็ๅฎ่ฃ
|
|
|
124
|
+
| ใใชใขใผใใฃใบใ ๏ผๆง้ ็๏ผ | Go, TypeScript | ๆ้ป็ใคใณใฟใผใใงใผใน |
|
|
125
|
+
| ใใถใคใณใใฟใผใณ | Java, C# | GoF ใใฟใผใณใ็ดๆฅ้ฉ็จ |
|
|
126
|
+
| SOLID ๅๅ | Java, TypeScript | ไพๅญๆงใฎๆณจๅ
ฅใ่ช็ถ |
|
|
127
|
+
|
|
128
|
+
### FP ๆฆๅฟต
|
|
129
|
+
|
|
130
|
+
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
131
|
+
|------|----------------|------|
|
|
132
|
+
| ้ซ้้ขๆฐ | Python, TypeScript, Ruby | ้ฆดๆใฟใใใๆงๆ |
|
|
133
|
+
| ใใฟใผใณใใใใณใฐ | Rust, F#, Scala, Elixir, Haskell | ่จ่ชใฌใใซใงใตใใผใ |
|
|
134
|
+
| ไธๅคใใผใฟ | Clojure, Haskell, F# | ใใใฉใซใใไธๅค |
|
|
135
|
+
| ใใคใใฉใคใณ | F#, Elixir | `\|>` ๆผ็ฎๅญ |
|
|
136
|
+
| ใขใใ | Haskell | ๆใ็ด็ฒใชๅฎ่ฃ
|
|
|
137
|
+
| ไปฃๆฐ็ใใผใฟๅ | Haskell, F#, Rust, Scala | ๅคๅฅๅ
ฑ็จไฝ / enum |
|
|
138
|
+
| ้
ๅปถ่ฉไพก | Haskell, Scala, Clojure | ่จ่ชใฌใใซใงใตใใผใ |
|
|
139
|
+
| ใใญใใณใซ / ๅใฏใฉใน | Clojure, Haskell | ad-hoc ใใชใขใผใใฃใบใ |
|
|
140
|
+
|
|
141
|
+
### ๅใทในใใ ๆฆๅฟต
|
|
142
|
+
|
|
143
|
+
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
144
|
+
|------|----------------|------|
|
|
145
|
+
| ้็ๅไปใ | Java, Go | ๆ็คบ็ใชๅๅฎฃ่จ |
|
|
146
|
+
| ๅๆจ่ซ | Haskell, F#, Rust | HM ๅๆจ่ซ |
|
|
147
|
+
| ใธใงใใชใฏใน | Java, TypeScript, Rust | ๆฎต้็ใซๅญฆในใ |
|
|
148
|
+
| Option/Result | Rust, Haskell | null ใชใ่จ่ช |
|
|
149
|
+
| ใฆใใชใณๅ | TypeScript, F# | ๅใง็ถๆ
ใ่กจ็พ |
|
|
150
|
+
| ๅใฏใฉใน | Haskell | ad-hoc ใใชใขใผใใฃใบใ |
|
|
151
|
+
| ๆๆๆจฉ / ๅ็จ | Rust | ใกใขใชๅฎๅ
จๆง |
|
|
152
|
+
|
|
153
|
+
### ้็บ็ฐๅขๆฆๅฟต
|
|
154
|
+
|
|
155
|
+
| ๆฆๅฟต | ๆใใใๅญฆในใ่จ่ช | ็็ฑ |
|
|
156
|
+
|------|----------------|------|
|
|
157
|
+
| ใใใฑใผใธ็ฎก็ | Node (npm), Python (pip) | ๆใใทใณใใซ |
|
|
158
|
+
| ้็่งฃๆ | Rust (Clippy), Go (golangci-lint) | ๆจๆบใใผใซใๅผทๅ |
|
|
159
|
+
| CI/CD | ใในใฆ | Nix ใง็ตฑไธ |
|
|
160
|
+
| REPL ้งๅ้็บ | Clojure, Elixir | REPL ใ้็บใฎไธญๅฟ |
|
|
161
|
+
|
|
162
|
+
## ๅ
จไฝใฎๅญฆ็ฟใใใ
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
166
|
+
โ ใใงใผใบ 3: FP โ
|
|
167
|
+
โ โ
|
|
168
|
+
โ F# โโโ Scala โโโ Elixir/Clojure โ
|
|
169
|
+
โ โ โ โ
|
|
170
|
+
โ โโโโโโโโโโโฌโโโโโโโโโโโโ โ
|
|
171
|
+
โ โผ โ
|
|
172
|
+
โ Haskell โ
|
|
173
|
+
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
174
|
+
โ
|
|
175
|
+
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
176
|
+
โ ใใงใผใบ 2: ใใซใใใฉใใคใ โ
|
|
177
|
+
โ โ
|
|
178
|
+
โ TypeScript โโโ Ruby โโโ Go / Rust โ
|
|
179
|
+
โ โ โ โ
|
|
180
|
+
โ โโโ PHP โโโ C# โ
|
|
181
|
+
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
182
|
+
โ
|
|
183
|
+
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
184
|
+
โ ใใงใผใบ 1: OOP ๅบ็ค โ
|
|
185
|
+
โ โ
|
|
186
|
+
โ Java โโโ Python โ
|
|
187
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## ๅญฆ็ฟใฎใใณใ
|
|
191
|
+
|
|
192
|
+
### ๅใใงใผใบใงๆ่ญใในใใใจ
|
|
193
|
+
|
|
194
|
+
**ใใงใผใบ 1**:
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
- TDD ใฎ Red-Green-Refactor ใตใคใฏใซใไฝใซๆใฟ่พผใพใใ
|
|
198
|
+
- ใในใใใๅ
ใซใๆธใ็ฟๆ
ฃใ็ขบ็ซใใ
|
|
199
|
+
- ้็ๅไปใใจๅ็ๅไปใใฎ้ใใไฝๆใใ
|
|
200
|
+
|
|
201
|
+
**ใใงใผใบ 2**:
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
- ๅใ FizzBuzz ไปๆงใ็ฐใชใ่จ่ชใงๅฎ่ฃ
ใใใไฝใๅใใงไฝใ้ใใใใๆ่ญใใ
|
|
205
|
+
- ๅ่จ่ชใฎใคใใฃใชใ ใๅฐ้ใใ๏ผGo ใฎใทใณใใซใใRuby ใฎ่กจ็พๅ๏ผ
|
|
206
|
+
- ใชใณใฟใผใฎๆๆใ้ใใฆใใใฎ่จ่ชใใใใณใผใใใๅญฆใถ
|
|
207
|
+
|
|
208
|
+
**ใใงใผใบ 3**:
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
- ใใชใไธๅคใใผใฟใๆ็จใใใ่ชๅใฎ่จ่ใง่ชฌๆใงใใใใใซใชใ
|
|
212
|
+
- ใใฟใผใณใใใใณใฐใฎๅจๅใไฝๆใใ
|
|
213
|
+
- ใขใใใใๆใใใฎใใงใฏใชใใไพฟๅฉใช้ๅ
ทใใจใใฆ็่งฃใใ
|
|
214
|
+
|
|
215
|
+
### ๅนๆ็ใชๅญฆ็ฟใใฏใใใฏ
|
|
216
|
+
|
|
217
|
+
1. **ๆฏ่ผๅญฆ็ฟ**: ๅใไปๆงใ 2 ใคใฎ่จ่ชใงๅฎ่ฃ
ใใๅทฎๅใๅๆใใ
|
|
218
|
+
2. **ๆฎต้็ๆทฑๅ**: ใพใ FizzBuzz ใฎๅบๆฌใๆฌกใซ OOP ใชใใกใฏใฟใชใณใฐใๆๅพใซ FP ใชใใกใฏใฟใชใณใฐ
|
|
219
|
+
3. **ใชใณใฟใผๆดป็จ**: ใชใณใฟใผใฎๆๆใใใใฎ่จ่ชใฎใในใใใฉใฏใใฃในใใจใใฆๅญฆใถ
|
|
220
|
+
4. **ใในใใใ่ชญใ**: ๆฐใใ่จ่ชใฎใณใผใใ่ชญใ้ใฏใใในใใใกใคใซใใ่ชญใฟๅงใใ
|
|
221
|
+
|
|
222
|
+
## ๆฌกใฎในใใใ
|
|
223
|
+
|
|
224
|
+
### ใใญใธใงใฏใใธใฎๅฟ็จ
|
|
225
|
+
|
|
226
|
+
ๆฌใทใชใผใบใงๅญฆใใ TDD ในใญใซใๅฎ้ใฎใใญใธใงใฏใใซๅฟ็จใใใใใฎใฌใคใใงใใ
|
|
227
|
+
|
|
228
|
+
| ในใใใ | ๅ
ๅฎน | ๆจๅฅจ่จ่ช |
|
|
229
|
+
|---------|------|---------|
|
|
230
|
+
| Web API ้็บ | REST API ใ TDD ใงๆง็ฏ | Java (Spring), TypeScript (Express), Go (net/http) |
|
|
231
|
+
| CLI ใใผใซ้็บ | ใณใใณใใฉใคใณใใผใซใ TDD ใงๆง็ฏ | Rust, Go, Python |
|
|
232
|
+
| ใใผใฟๅฆ็ | ใใคใใฉใคใณใซใใใใผใฟๅคๆ | Elixir, Scala, F# |
|
|
233
|
+
| ไธฆ่กๅฆ็ | ไธฆ่ก/ไธฆๅๅฆ็ใฎๅฎ่ฃ
| Go (goroutine), Elixir (GenServer), Rust (tokio) |
|
|
234
|
+
| ใใกใคใณใขใใชใณใฐ | DDD + TDD | Java, TypeScript, F# |
|
|
235
|
+
|
|
236
|
+
### ๆทฑใๅญฆ็ฟใชใฝใผใน
|
|
237
|
+
|
|
238
|
+
#### TDDใป่จญ่จ
|
|
239
|
+
|
|
240
|
+
| ๆธ็ฑ | ่่
| ๅฏพๅฟ่จ่ช |
|
|
241
|
+
|------|------|---------|
|
|
242
|
+
| ใในใ้งๅ้็บ | Kent Beck | Java (ๅๆธ), ๅ
จ่จ่ชใซ้ฉ็จๅฏ่ฝ |
|
|
243
|
+
| ใชใใกใฏใฟใชใณใฐ | Martin Fowler | Java / JavaScript |
|
|
244
|
+
| Clean Code | Robert C. Martin | Java |
|
|
245
|
+
| ใจใฏในใใชใผใ ใใญใฐใฉใใณใฐ | Kent Beck | ่จ่ช้ไพๅญ |
|
|
246
|
+
|
|
247
|
+
#### ่จ่ชๅฅใฎๆทฑใๅญฆ็ฟ
|
|
248
|
+
|
|
249
|
+
| ่จ่ช | ๆจๅฅจๆธ็ฑ / ใชใฝใผใน |
|
|
250
|
+
|------|-------------------|
|
|
251
|
+
| Java | Effective Java (Joshua Bloch) |
|
|
252
|
+
| Python | Fluent Python (Luciano Ramalho) |
|
|
253
|
+
| TypeScript | Programming TypeScript (Boris Cherny) |
|
|
254
|
+
| Ruby | Practical Object-Oriented Design (Sandi Metz) |
|
|
255
|
+
| Go | The Go Programming Language (Donovan & Kernighan) |
|
|
256
|
+
| Rust | The Rust Programming Language (Klabnik & Nichols) |
|
|
257
|
+
| C# | C# in Depth (Jon Skeet) |
|
|
258
|
+
| F# | Domain Modeling Made Functional (Scott Wlaschin) |
|
|
259
|
+
| Clojure | Clojure for the Brave and True (Daniel Higginbotham) |
|
|
260
|
+
| Scala | Programming in Scala (Odersky et al.) |
|
|
261
|
+
| Elixir | Programming Elixir (Dave Thomas) |
|
|
262
|
+
| Haskell | Learn You a Haskell for Great Good! (Miran Lipovaca) |
|
|
263
|
+
|
|
264
|
+
#### FP ๅ
จ่ฌ
|
|
265
|
+
|
|
266
|
+
| ๆธ็ฑ | ่่
| ็นๅพด |
|
|
267
|
+
|------|------|------|
|
|
268
|
+
| ้ขๆฐๅใใญใฐใฉใใณใฐใฎๅบ็ค | - | FP ใฎๆฆๅฟตใๆฅๆฌ่ชใง |
|
|
269
|
+
| Category Theory for Programmers | Bartosz Milewski | ๅ่ซใฎๅบ็ค |
|
|
270
|
+
| Domain Modeling Made Functional | Scott Wlaschin | DDD + FP |
|
|
271
|
+
|
|
272
|
+
### ใณใใฅใใใฃ
|
|
273
|
+
|
|
274
|
+
ๅ่จ่ชใฎใณใใฅใใใฃใซๅๅ ใใใใจใงใๅญฆ็ฟใๅ ้ใงใใพใใ
|
|
275
|
+
|
|
276
|
+
- **GitHub**: ๆฌใใญใธใงใฏใใฎ Issues / Discussions
|
|
277
|
+
- **ๅ่จ่ชใฎๅ
ฌๅผใใฉใผใฉใ **: Rust Users, Elixir Forum, Haskell Discourse ็ญ
|
|
278
|
+
- **ใซใณใใกใฌใณใน**: RubyKaigi, PyCon, GopherCon, RustConf, ScalaMatsuri ็ญ
|
|
279
|
+
|
|
280
|
+
## ใพใจใ
|
|
281
|
+
|
|
282
|
+
12 ่จ่ชใฎๅญฆ็ฟใฏไธ่ฆ่จๅคงใซๆใใพใใใไปฅไธใฎๆฆ็ฅใงๅน็็ใซ้ฒใใใใจใใงใใพใใ
|
|
283
|
+
|
|
284
|
+
1. **ใใงใผใบๅใใใฆๆฎต้็ใซ**: OOP โ ใใซใใใฉใใคใ โ FP ใฎ้ ใงๆฆๅฟตใ็ฉใฟไธใใ
|
|
285
|
+
2. **FizzBuzz ใๅ
ฑ้้กๆใซ**: ๅใไปๆงใ็ฐใชใ่จ่ชใงๅฎ่ฃ
ใใใใจใงใๅทฎๅใซ้ไธญใงใใ
|
|
286
|
+
3. **TDD ใ่ปธใซ**: Red-Green-Refactor ใฎใตใคใฏใซใฏใในใฆใฎ่จ่ชใงๅ
ฑ้ใงใใใ่จ่ชใ่ถ
ใใๆฎ้็ในใญใซใจใชใ
|
|
287
|
+
4. **ใชใณใฟใผใซๅญฆใถ**: ๅ่จ่ชใฎใคใใฃใชใ ใฏใชใณใฟใผใๆใใฆใใใ
|
|
288
|
+
5. **ๆทฑใใจๅบใใฎใใฉใณใน**: ใในใฆใฎ่จ่ชใๆทฑใๅญฆใถๅฟ
่ฆใฏใชใใ2-3 ่จ่ชใๆทฑใใๆฎใใฏๆฆ่ฆใ็่งฃใใ
|
|
289
|
+
|
|
290
|
+
ๆฌใทใชใผใบใ้ใใฆใใในใ้งๅ้็บใฎๆฌ่ณช -- ใๅไฝใใใใใใชใณใผใใใๆฎต้็ใซไฝใไธใใใใญใปใน -- ใฏ่จ่ชใ่ถ
ใใฆๆฎ้็ใงใใใใจใไฝๆใใฆใใใ ใใใฐๅนธใใงใใ
|