Nhảy đến nội dung chính

Trang 5.1: Lên ý tưởng và so sánh giải pháp với /brainstorm.

1. Mục đích và triết lý

/brainstorm được thiết kế với triết lý rõ ràng: "Suy nghĩ trước, code sau."

Nhiều quyết định kiến trúc sai lầm bắt nguồn từ việc bắt tay vào code ngay mà không xem xét đủ các lựa chọn. Workflow này buộc AI phải trình bày ít nhất 3 phương án khác nhau với đầy đủ ưu/nhược điểm và mức độ nỗ lực, giúp bạn đưa ra lựa chọn sáng suốt.

Nguyên tắc vàng: Luôn chạy /brainstorm trước khi bắt đầu bất kỳ tính năng phức tạp nào.


2. Khi nào nên dùng /brainstorm?

✅ Nên dùng khi:

  • Bắt đầu một tính năng mới và chưa chắc về hướng triển khai.
  • Cần so sánh các công nghệ, thư viện hoặc kiến trúc khác nhau.
  • Muốn có cái nhìn khách quan về trade-off.
  • Cần thuyết phục đội hoặc cấp trên về một lựa chọn kỹ thuật.

❌ Không cần dùng khi:

  • Tác vụ đơn giản, rõ ràng (fix typo, thêm field đơn giản...).
  • Đã có quyết định rõ ràng và chỉ cần triển khai.

3. Quy trình thực hiện

Bước 1: Mô tả thách thức

bash
/brainstorm [mô tả vấn đề hoặc nhiệm vụ cần giải quyết]

Lưu ý: Cung cấp càng nhiều ngữ cảnh (context) thì AI đưa ra phân tích càng chính xác.

Bước 2: Xem xét các phương án

AI sẽ trình bày ít nhất 3 phương án theo cấu trúc chuẩn:

Phương án 1: [Tên phương án]
✅ Ưu điểm: ...
❌ Nhược điểm: ...
⏱️ Nỗ lực: Thấp / Trung bình / Cao
📌 Phù hợp khi: ...


Phương án 2: [Tên phương án]
...


Phương án 3: [Tên phương án]
...


👉 Khuyến nghị: Phương án X vì [lý do cụ thể dựa trên ngữ cảnh của bạn]

Bước 3: Trao đổi và quyết định

  • Hỏi thêm về phương án bạn quan tâm.
  • Yêu cầu AI phân tích sâu hơn về một khía cạnh cụ thể.
  • Xác nhận phương án để tiến hành bước tiếp theo (/create hoặc /enhance).

4. Ví dụ phiên làm việc thực tế

Ví dụ 1: Chọn chiến lược quản lý state




👤 Bạn: /brainstorm chiến lược quản lý state cho ứng dụng React có
50+ màn hình và cần đồng bộ real-time


🤖 AI: Tôi sẽ phân tích 3 phương án quản lý state phù hợp với yêu cầu của bạn:


Phương án 1: Zustand + React Query
✅ Ưu điểm: Nhẹ (2KB), không boilerplate, tích hợp tốt với server state
❌ Nhược điểm: Cần học 2 thư viện riêng biệt
⏱️ Nỗ lực: Thấp
📌 Phù hợp: Dự án muốn linh hoạt, tránh over-engineering


Phương án 2: Redux Toolkit + RTK Query
✅ Ưu điểm: Chuẩn ngành, devtools mạnh, dễ debug
❌ Nhược điểm: Nhiều boilerplate hơn, bundle size lớn hơn
⏱️ Nỗ lực: Trung bình
📌 Phù hợp: Team đã quen Redux, dự án lớn cần chuẩn hóa


Phương án 3: Jotai + SWR
✅ Ưu điểm: Atomic state, cực kỳ linh hoạt, tránh re-render thừa
❌ Nhược điểm: Ít tài liệu hơn, cộng đồng nhỏ hơn
⏱️ Nỗ lực: Trung bình
📌 Phù hợp: Dự án phức tạp với nhiều state độc lập


👉 Khuyến nghị: Phương án 1 (Zustand + React Query) cho dự án mới,
vì cân bằng tốt giữa đơn giản và hiệu năng, đặc biệt phù hợp
với yêu cầu real-time của bạn.


Bạn muốn tôi phân tích sâu hơn về phương án nào?


👤 Bạn: Cho tôi biết thêm về Phương án 1, cách triển khai real-time như thế nào?


🤖 AI: [Phân tích chi tiết hơn về Zustand + React Query + WebSocket pattern...]

Ví dụ 2: Chọn database cho hệ thống IoT


👤 Bạn: /brainstorm lựa chọn database cho hệ thống IoT cần lưu
1 triệu sự kiện/ngày, query theo khoảng thời gian


🤖 AI: Phân tích 3 phương án phù hợp:


Phương án 1: TimescaleDB (PostgreSQL mở rộng)
Phương án 2: InfluxDB (Time-series database chuyên dụng)
Phương án 3: MongoDB với TTL collections


[Phân tích chi tiết từng phương án...]


👉 Khuyến nghị: TimescaleDB nếu đội quen SQL, InfluxDB nếu cần
hiệu năng cao nhất cho time-series.

5. Mẹo để brainstorm hiệu quả

Cung cấp ngữ cảnh đầy đủ


# Kém hiệu quả:
/brainstorm cách lưu dữ liệu


# Hiệu quả hơn:
/brainstorm cách lưu dữ liệu người dùng cho ứng dụng SaaS
B2B với 10,000 tenant, cần multi-tenancy, đang dùng PostgreSQL,
team 3 backend engineer

Hỏi về trade-off cụ thể


# Sau khi nhận phương án:
"Nếu dự án mở rộng lên 10 lần trong 1 năm, phương án nào
sẽ scale tốt hơn?"


"Chi phí vận hành của phương án 2 và 3 khác nhau thế nào?"

Yêu cầu so sánh trực tiếp


"Tôi đang phân vân giữa Phương án 1 và 3.
Hãy so sánh trực tiếp 2 phương án này theo
tiêu chí: hiệu năng, độ phức tạp, chi phí."

6. Bước tiếp theo sau khi có quyết định

Quyết định Bước tiếp theo
Xây dựng tính năng từ đầu /create với phương án đã chọn
Cải tiến code đang có /enhance với phương án đã chọn
Cần kế hoạch chi tiết /plan để phân rã công việc
Muốn thử nghiệm nhanh trước Tạo prototype rồi /test