Công cụ SDD (Tooling)

Đừng dành hai tuần chỉ để chọn tool “chuẩn”. Chọn một tool, làm một use case từ spec → code → test, rồi đánh giá. SDD tốt ở chỗ spec vẫn nằm trong repo (Markdown), nên tool có thể đổi sau.

Các tool chính

ToolMạnh ởKhi nào chọn
GitHub Spec KitLuồng /specify → /plan → /tasks → /implement. Hỗ trợ nhiều AI agent, ít khóa vào một toolTeam mới làm SDD, cần khung rõ
OpenSpecQuy trình dựa trên artifact: proposal, delta specs, design, tasks; có specs/ (baseline) + changes/Muốn quy trình nhẹ, linh hoạt, nhiều thay đổi song song, audit lịch sử → Spec hiện tại và Spec thay đổi
Claude Code + AIUP marketplaceSlash command theo phase: /requirements, /entity-model, /use-case-spec, /reverse-engineerTeam đã dùng Claude Code, muốn đi sâu
IntelliJ AIUP NavigatorLink spec ↔ test qua annotation @UseCaseStack JVM (Java/Kotlin)
Cursor / Copilot / Codex CLILàm việc với spec Markdown trong IDE quenKhông muốn đổi tool chính của dev

Tool phụ trợ

  • PlantUML / Mermaid - diagram trong spec.
  • LaunchDarkly / Unleash - feature flag, rất hữu ích cho brownfield (chạy code cũ/mới song song).
  • git archaeology (git log -L, git blame) - tìm lịch sử “vì sao có dòng này”.
  • AST-based refactor (jscodeshift, rope, OpenRewrite) - refactor cơ học an toàn hơn.

Git convention

<type>(UC-XXX): <description>
feat(UC-042): implement QR expiry validation
fix(UC-019): correct overlap detection edge case

Nền tảng đáng đọc thêm

DDD (Eric Evans, Vaughn Vernon - đọc Vernon trước dễ hơn) · Hexagonal Architecture (Alistair Cockburn) · Clean Architecture (Robert C. Martin) · Working Effectively with Legacy Code (Michael Feathers - nguồn của Characterization Test).

Liên quan