การทดสอบและเครื่องมือ
ทำไม tooling ถึงสำคัญ
หัวข้อที่มีชื่อว่า “ทำไม tooling ถึงสำคัญ”การเขียนโค้ดเป็นเพียงครึ่งหนึ่งของงาน การรู้วิธีทดสอบ ดีบัก วัดผล และตั้งค่าสภาพแวดล้อม Node.js จะเปลี่ยนสคริปต์ที่ทำงานได้ให้กลายเป็นแอปพลิเคชันที่ดูแลรักษาง่ายและพร้อม production
Node 18+ มี test runner ในตัว, inspector protocol ที่ทรงพลัง, และ perf_hooks สำหรับจับเวลา ซึ่งหมายความว่าคุณทำได้มากโดยไม่ต้องติดตั้งอะไรเพิ่มเติม
สิ่งที่โมดูลนี้ครอบคลุม
หัวข้อที่มีชื่อว่า “สิ่งที่โมดูลนี้ครอบคลุม”| บทเรียน | หัวข้อ |
|---|---|
| Built-in Test Runner | node:test, node:assert, test(), describe/it, node --test |
| การดีบัก | node --inspect, Chrome DevTools, breakpoints, เมธอดต่าง ๆ ของ console |
| ประสิทธิภาพ | perf_hooks, performance.now(), PerformanceObserver, การหลีกเลี่ยงการบล็อก |
| Ecosystem และ Toolchain | TypeScript runners, ESLint/Prettier/Biome, nodemon, env files |
ภาพรวม toolchain
หัวข้อที่มีชื่อว่า “ภาพรวม toolchain”┌─────────────────────────────────────────────────┐│ Your Node.js Project ││ ││ Source code (.ts / .js / .mjs) ││ │ ││ ▼ ││ Linter / Formatter ──► ESLint, Prettier, ││ Biome ││ │ ││ ▼ ││ TypeScript runner ──► tsx, ts-node, ││ --experimental- ││ strip-types ││ │ ││ ▼ ││ Test runner ──► node:test (built-in) ││ or Vitest / Jest ││ │ ││ ▼ ││ Debugger ──► node --inspect + ││ Chrome DevTools ││ │ ││ ▼ ││ Performance ──► perf_hooks, ││ PerformanceObserver │└─────────────────────────────────────────────────┘เลือกใช้อะไรดี
หัวข้อที่มีชื่อว่า “เลือกใช้อะไรดี”Built-in ของ Node ครอบคลุมความต้องการพื้นฐานได้เกือบทั้งหมด นี่คือแนวทางการตัดสินใจเบื้องต้น:
# ไม่ต้องติดตั้ง dependency — ใช้ built-in runnernode --test src/**/*.test.js
# TypeScript โดยไม่ต้อง build (Node 20.6+)node --experimental-strip-types src/app.ts
# HMR + watch mode ที่เร็วกว่าnpx tsx watch src/app.ts
# Lint + format ในเครื่องมือเดียว (zero config)npx biome check --apply src/