Vibe Engineering: Hướng dẫn thực chiến cho Developer thời AI

@Nguyễn Ngô Thượng//~7 phút đọc0
Chia sẻ:
Vibe Engineering: Hướng dẫn thực chiến cho Developer thời AI

TL;DR: "Vibe coding" đang bị hiểu sai là thả AI viết bừa rồi bấm Accept. Kitze (tác giả Sizzy) đề xuất khái niệm "Vibe Engineering" - nơi bạn vẫn để AI làm nặng, nhưng với plan rõ ràng, context đầy đủ, và kỷ luật không "đốt 4 tiếng cho cái 15 phút". Bài này tổng hợp các insight thực chiến nhất từ talk của Kitze.

Vibe Coding đang bị hiểu sai

Thuật ngữ "vibe coding" xuất phát từ Andrej Karpathy, mô tả cách làm việc: bấm Accept, thúc AI làm tiếp, không quan tâm code, miễn chạy được.

Nhưng trong thực tế, nhiều người đang dùng nó như cái cớ để:

  • Thả AI viết bừa
  • Không review
  • Không plan
  • Rồi than "AI code dở"

Kitze đề xuất thuật ngữ mới: Vibe Engineering.

Vibe Engineering là gì?

Vibe Engineering concept

Vibe Engineering = Engineering có kỷ luật + Agent làm nặng

Bạn vẫn để AI viết phần lớn code, nhưng:

  • plan trước khi bắt đầu
  • context (rules, docs, conventions)
  • kỷ luật (biết dừng khi prompt không hiệu quả)
  • steer (điều hướng kiến trúc, không chỉ nhận code)

So sánh nhanh:

Vibe Coding Vibe Engineering
"Làm app đặt phòng cho tôi, xịn, không lỗi" "Tạo module booking theo Next.js App Router, tách domain availability/reservation, validation server-side, test luồng overbooking"
Cầu nguyện Engineering
Accept mù Review có mục tiêu

Insight 1: Đừng cố viết code giỏi hơn AI - Hãy điều khiển AI tốt hơn

Developer as director

Vibe coding không phải là bỏ nghề. Nó là đổi giao diện điều khiển.

Dev không còn "gõ từng dòng", mà ra lệnh, đánh giá, chỉnh hướng.

Đừng hỏi:

"AI có viết React tốt bằng mình không?"

Hãy hỏi:

"Mình có đang điều khiển được hướng kiến trúc của code AI sinh ra không?"

Cách đọc code AI hiệu quả

Khi AI sinh code, đừng đọc từng dòng từ trên xuống. Đọc theo câu hỏi:

  • Data đi đâu?
  • State nằm ở đâu?
  • Boundary giữa frontend/backend ở đâu?
  • Có thứ gì sẽ đau đầu sau 3 tháng không?

Bạn chuyển từ coder sang technical director.

Insight 2: Code AI "khác style" không có nghĩa là code dở

React ecosystem vốn mơ hồ - ai cũng "tự phát minh quy ước". AI viết "không giống bạn" là chuyện bình thường.

Ngừng phản xạ:

"Code này khác style mình → code dở"

Thay bằng checklist:

  • Có chạy đúng không?
  • Có dễ đọc cho người khác không?
  • Có test/guardrail không?
  • Có phụ thuộc lib kỳ quặc không?

Nếu → cho qua chuyện style.

Style để lint + rules file xử lý, không phải não bạn.

Insight 3: AI không sợ code lặp - Và đó là lợi thế

Code duplication vs abstraction

LLM không "ngứa tay refactor" như dev. Điều này giúp tránh abstract quá sớm.

Kitze mô tả "abstraction addiction" của developer:

  • Nhìn code lặp là muốn refactor ngay
  • AI làm bạn đến abstraction nhanh hơn
  • Nhanh đến "đúng abstraction" ✅
  • Nhưng cũng nhanh đến "sai abstraction" ❌

Thực hành: Trì hoãn abstraction

Trong giai đoạn MVP/landing/admin tool:

  • Cho phép code lặp
  • Trì hoãn abstraction cho tới khi:
    • Lặp 3-4 lần
    • hiểu rõ pattern thật

Ví dụ:

  • 2 form giống nhau 80%
  • ❌ Vội tạo SuperFormComponent(props...)
  • ✅ Copy form → ship nhanh → refactor sau khi có pattern rõ

Đây là anti-overengineering, rất hợp AI.

Insight 4: Context > Prompt

AI dở không phải vì nó ngu, mà vì bạn chưa "huấn luyện tại chỗ".

Bạn không cần prompt hay, bạn cần context ổn định.

Tối thiểu nên có trong repo

docs/
├── stack.md        # Bạn dùng gì
├── ai-rules.md     # Bạn ghét gì, cấm gì  
└── patterns.md     # Cách bạn tổ chức code

Sau đó mọi prompt đều ngắn lại, AI ít bịa.

Ví dụ ai-rules.md:

## Stack
- Next.js App Router
- Tailwind CSS
- react-hook-form + zod

## Cấm
- Không dùng inline style
- Không fetch trong component
- Không global state client

## Pattern
- Form: react-hook-form + zod
- Fetch: Server Actions
- Error: toast từ sonner

Insight 5: Prompt như giao task cho senior dev

Prompt engineering

Prompt tệ thường là:

"Refactor toàn bộ sang TypeScript và đừng lỗi"

Prompt tốt = constraint + phạm vi + tiêu chí

So sánh:

❌ Vibe Coding Prompt ✅ Vibe Engineering Prompt
"Make it scalable and clean" "Tách logic form validation sang server action, giữ UI không đổi, thêm test cho case dữ liệu rỗng"
"Fix all bugs" "Sửa bug khi user refresh page, state booking bị mất. Dùng server-driven approach"
"Make me million-dollar app" "Tạo MVP booking với 3 màn: list, detail, confirm. Không thanh toán. Data mock"

Bạn đang làm engineering, không phải casting spell.

Insight 6: Vibe coding giống casino - Cần kỷ luật

Kitze ví AI như slot machine: có jackpot, có mất trắng.

Và tệ nhất:

"Mình vừa prompt 4 tiếng cho cái đáng lẽ 15 phút tự làm"

Rule sống còn

⏱ Nếu 15-20 phút prompt mà chưa tiến triển:

  1. Dừng
  2. Quay lại viết plan
  3. Hoặc tự làm tay 30% trước

AI là đòn bẩy, không phải nơi trú ẩn khi bí.

Insight 7: Viết PLAN.md trước khi code

Trước khi cho AI viết code, luôn làm 1 trong 2:

Cách A: Viết PLAN.md (khuyên dùng)

## Mục tiêu
- Trang booking phòng

## Phạm vi
- Frontend only
- Không thanh toán

## Ràng buộc
- Next.js App Router
- Server Actions
- No client state global

## Edge cases
- Overbooking
- Refresh page giữ state
- Validation date range

Cách B: Voice/text như PM

"Luồng này sai, user sẽ quay lại trang trước, state bị mất. Sửa lại theo hướng server-driven."

Không plan = vibe coding Có plan = vibe engineering

Insight 8: Nghề mới - "Vibe Code Fixer"

AI làm 70-80% đầu. Người giỏi làm 20% cuối.

Định vị bản thân không phải "AI viết code nhanh", mà là:

  • Người sửa code AI
  • Người dọn slop
  • Người đảm bảo production không sập

Skill cần tập trung

Skill Tại sao quan trọng
Code review Bắt lỗi AI, đảm bảo quality
Boundary & data flow Kiến trúc đúng từ đầu
Debug production AI không debug được prod
Refactor có kiểm soát Dọn dẹp code AI an toàn

Đây là lý do bạn không bị thay thế.

Insight 9: Đừng làm "PA Dev"

PA Dev = Pain-in-the-ass Developer

Người quá nitpick, ám ảnh "code phải đúng gu mình" sẽ khó sống với AI.

Học phân biệt:

  • ❌ "Code này không giống mình viết" → bỏ qua
  • ✅ "Code này có gây rủi ro không?" → sửa ngay

Nếu chỉ là gu cá nhân → cho qua. Nếu là rủi ro hệ thống → fix immediately.

Checklist Vibe Engineering

Dán lên Notion, dùng hàng ngày:

Trước khi code

  • Có PLAN.md hoặc spec rõ ràng?
  • Có context file (rules, patterns)?
  • Prompt có constraint + phạm vi?

Trong khi code

  • Review theo câu hỏi (data flow, state, boundary)?
  • Không stuck quá 15-20 phút?
  • Cho phép code lặp, trì hoãn abstraction?

Sau khi code

  • Chạy đúng?
  • Dễ đọc cho người khác?
  • Có test cho edge case?
  • Không có lib/pattern kỳ quặc?

Kết luận

AI không giết dev. AI giết dev không chịu nâng vai trò.

Vai trò mới của bạn:

  • Ít gõ - nhiều nghĩ
  • Nhiều review - ít accept mù
  • Nhiều quyết định hệ thống - ít chi tiết syntax

Vibe Engineering là cách để AI thật sự trở thành đòn bẩy, không phải cái bẫy đốt thời gian.


Bài viết hữu ích? Hãy kết nối với Diginno!

Chúng tôi giúp doanh nghiệp SME ứng dụng AI và automation vào quy trình làm việc - từ tư vấn chiến lược đến triển khai thực tế.

👉 Đặt lịch tư vấn miễn phí để thảo luận về cách AI có thể tăng tốc công việc của bạn.


Tham khảo: Bài viết tổng hợp từ talk "From Vibe Coding to Vibe Engineering" của Kitze (Sizzy) tại hội nghị frontend 2025.

Bài viết hữu ích?

Chia sẻ để nhiều người biết đến!

Chia sẻ:

>_ LLM-Friendly Copy

Copy as Markdown to use with ChatGPT, Claude, or other AI tools

1,492 words|8,204 characters

Bài viết liên quan

Khám phá thêm những bài viết cùng chủ đề với Vibe Engineering: Hướng dẫn thực chiến cho Developer thời AI

Bài viết hữu ích? Hãy kết nối với Diginno!

Chúng tôi giúp doanh nghiệp SME ứng dụng AI và automation vào quy trình làm việc - từ tư vấn chiến lược đến triển khai thực tế.