Vibe Coding — Cơ Bản — 15 câu hỏi ngẫu nhiên từ toàn bộ khoá học. Đạt 70% để vượt qua.
Bài kiểm tra tổng kết
1. JSON (Object) trong lập trình dùng để làm gì?
JSON (Object) cho phép mô tả dữ liệu chi tiết, ví dụ một sản phẩm gồm tên, giá, size, topping — giúp AI hiểu chính xác cấu trúc dữ liệu bạn muốn.
2. Khi bạn bấm nút 'Thêm vào giỏ' trên app gọi trà sữa, phần nào hiển thị icon giỏ hàng +1?
Frontend là phần giao diện người dùng nhìn thấy và tương tác. Icon giỏ hàng +1 là thay đổi trên giao diện nên thuộc Frontend.
3. Mảng (Array) khác gì so với Biến (Variable)?
Biến giống chiếc cốc đựng 1 thứ (ví dụ: tenSanPham = 'Trà sữa'). Mảng giống cái khay đựng nhiều cốc (ví dụ: danhSachMenu = ['Trà sữa', 'Cà phê', 'Sinh tố']).
4. Lệnh 'git revert HEAD' làm gì?
git revert HEAD tạo một commit mới để quay ngược lại thay đổi của commit cuối cùng. Giống load save game cũ khi AI sửa hỏng app.
5. Row Level Security (RLS) trong Supabase giải quyết vấn đề gì?
Không có RLS, User A có thể thấy tất cả dữ liệu của User B. Có RLS, mỗi user chỉ thấy dữ liệu mà policy cho phép — thường là dữ liệu của chính mình.
6. Trong kiến trúc 3 tầng, API đóng vai trò gì?
API là người trung gian (như bồi bàn trong nhà hàng) vận chuyển yêu cầu từ Frontend sang Backend và mang kết quả trở lại.
7. ProtectedRoute dùng để làm gì?
ProtectedRoute là component bọc các trang cần đăng nhập. Nếu user chưa đăng nhập, tự động chuyển về trang /login. Nếu đã đăng nhập, hiện nội dung bình thường.
8. Khi Vercel build thất bại, điều gì xảy ra với app đang chạy?
Nếu build thất bại, app cũ vẫn hoạt động bình thường. Vercel chỉ cập nhật khi build thành công. Bạn có thể sửa lỗi rồi push lại mà không sợ app sập.
9. Sau khi tạo/sửa file .env, cần làm gì để app nhận được giá trị mới?
Sau khi tạo hoặc sửa file .env, phải tắt server (Ctrl + C) rồi chạy lại 'npm run dev'. Server chỉ đọc .env khi khởi động.
10. Để RLS hoạt động đúng, bảng dữ liệu cần có gì?
RLS cần 3 thứ: (1) Cột user_id trong bảng, (2) Policy với USING expression auth.uid() = user_id, (3) Gửi kèm user_id khi thêm dữ liệu mới. Thiếu 1 trong 3 đều gây lỗi.
11. Sau khi thêm Environment Variables trên Vercel, cần làm gì?
Vercel chỉ đọc env vars tại thời điểm build. Nếu thêm sau khi deploy, phải vào Deployments → bấm Redeploy để Vercel nhận giá trị mới.
12. Token trong hệ thống đăng nhập hoạt động như thế nào?
Token giống vé vào cửa rạp phim. Mỗi lần mở app, bạn đưa vé ra. Nếu vé hợp lệ thì vào được. Nếu vé hết hạn thì phải mua vé mới (đăng nhập lại).
13. CI/CD nghĩa là gì?
CI (Continuous Integration) tự kiểm tra code mỗi lần push. CD (Continuous Deployment) tự deploy lên internet nếu không có lỗi. Giống bếp tự nấu khi có nguyên liệu mới.
14. Cách prompt nào cho kết quả tốt hơn khi tạo component?
Mỗi prompt nên tạo 1 component duy nhất với mô tả chi tiết về layout, style, responsive. Tạo xong cái này, test OK, rồi tạo cái tiếp theo — tránh nhồi nhiều component vào 1 prompt.
15. Khi viết prompt cho AI tạo app, cách nào cho kết quả chính xác nhất?
Prompt mô tả rõ từng tầng (Frontend, Backend, Database) giúp AI hiểu chính xác yêu cầu. Dài mà rõ ràng tốt hơn ngắn mà mơ hồ.