MinAI - Về trang chủ
Quiz
13/1330 phút
Đang tải...

Quiz tổng hợp

Kiểm tra kiến thức toàn khóa học Vibe Coding với AI

📝 Quiz tổng hợp - Vibe Coding với AI

Chào mừng bạn đến với bài quiz tổng hợp! Bài quiz gồm 18 câu hỏi trắc nghiệm3 bài tập thực hành giúp bạn kiểm tra toàn bộ kiến thức đã học trong khóa Vibe Coding với AI.

Cấu trúc bài quiz:

  • Phần 1: Nền tảng Vibe Coding (3 câu)
  • Phần 2: GitHub Copilot (3 câu)
  • Phần 3: Prompt Engineering cho Code (3 câu)
  • Phần 4: Agent Mode & Testing (3 câu)
  • Phần 5: Debugging & Review (3 câu)
  • Phần 6: Best Practices & Chiến lược (3 câu)
  • Phần 7: Bài tập thực hành (3 bài)

Phần 1: Nền tảng Vibe Coding


Phần 2: GitHub Copilot


Phần 3: Prompt Engineering cho Code


Phần 4: Agent Mode & Testing


Phần 5: Debugging & Review


Phần 6: Best Practices & Chiến lược


Phần 7: Bài tập thực hành

Bài tập 1: Prompt Engineering thực tế

Yêu cầu: Viết một comment prompt chi tiết để yêu cầu AI sinh một hàm xử lý đăng ký tài khoản người dùng với các yêu cầu sau:

  • Validate email, password (tối thiểu 8 ký tự, có chữ hoa, chữ thường, số)
  • Hash password trước khi lưu
  • Kiểm tra email đã tồn tại chưa
  • Trả về thông báo lỗi bằng tiếng Việt
  • Sử dụng TypeScript

Gợi ý: Hãy viết comment bao gồm: mô tả chức năng, input/output types, các edge case, và ví dụ sử dụng.

TypeScript
1// Bài làm mẫu - Comment prompt cho AI:
2
3// Hàm đăng ký tài khoản người dùng mới
4// Input: { email: string, password: string, fullName: string }
5// Output: Promise<{ success: boolean, message: string, userId?: string }>
6//
7// Yêu cầu validate:
8// - Email: format hợp lệ (regex), không trống
9// - Password: tối thiểu 8 ký tự, ít nhất 1 chữ hoa, 1 chữ thường, 1 số
10// - fullName: không trống, tối thiểu 2 ký tự
11//
12// Business logic:
13// - Kiểm tra email đã tồn tại trong database chưa
14// - Hash password bằng bcrypt trước khi lưu
15// - Tạo userId dạng UUID
16// - Trả về thông báo lỗi bằng tiếng Việt
17//
18// Edge cases:
19// - Email đã tồn tại → "Email đã được sử dụng"
20// - Password yếu → "Mật khẩu phải có ít nhất 8 ký tự, bao gồm chữ hoa, chữ thường và số"
21// - Database error → "Đã xảy ra lỗi, vui lòng thử lại sau"
22//
23// Ví dụ:
24// registerUser({ email: "user@example.com", password: "MyPass123", fullName: "Nguyễn Văn A" })
25// → { success: true, message: "Đăng ký thành công", userId: "uuid-..." }

Bài tập 2: Debugging với AI

Yêu cầu: Đoạn code sau có lỗi. Hãy mô tả cách bạn sẽ sử dụng AI để tìm và sửa lỗi:

JavaScript
1async function fetchUserData(userId) {
2 const response = fetch(`/api/users/${userId}`);
3 const data = response.json();
4
5 if (data.status = 200) {
6 return data.user;
7 }
8
9 return null;
10}
11
12const users = [1, 2, 3].map(id => {
13 const user = fetchUserData(id);
14 console.log(user.name);
15});

Gợi ý: Có ít nhất 4 lỗi trong đoạn code trên. Hãy sử dụng Copilot Chat với prompt: "Phân tích đoạn code này, liệt kê tất cả lỗi và gợi ý cách fix"

Đáp án:

  1. Thiếu awaitfetch().json() — cần await fetch(...)await response.json()
  2. Dùng = thay vì === trong điều kiện if (data.status = 200) — phép gán thay vì so sánh
  3. .map() với async function không trả về Promise array — cần Promise.all() với async callback
  4. Truy cập user.name khi user có thể là null — cần kiểm tra null trước khi truy cập property

Bài tập 3: Refactoring với AI

Yêu cầu: Sử dụng AI để refactor đoạn code dưới đây, áp dụng các nguyên tắc clean code:

Python
1def p(d):
2 t = 0
3 for i in d:
4 if i["t"] == "A":
5 t += i["p"] * i["q"] * 0.9
6 elif i["t"] == "B":
7 t += i["p"] * i["q"] * 0.85
8 elif i["t"] == "C":
9 t += i["p"] * i["q"]
10 if t > 1000:
11 t = t * 0.95
12 if t > 5000:
13 t = t * 0.9
14 return t

Gợi ý: Sử dụng prompt: "Refactor đoạn code này theo clean code principles: đặt tên biến rõ ràng, tách logic thành hàm nhỏ, sử dụng constants, thêm type hints và docstring"

Đáp án mẫu:

Python
1from dataclasses import dataclass
2from enum import Enum
3from typing import List
4
5class CustomerTier(Enum):
6 PREMIUM = "A"
7 STANDARD = "B"
8 BASIC = "C"
9
10TIER_DISCOUNTS = {
11 CustomerTier.PREMIUM: 0.90,
12 CustomerTier.STANDARD: 0.85,
13 CustomerTier.BASIC: 1.00,
14}
15
16BULK_DISCOUNT_THRESHOLDS = [
17 (5000, 0.90),
18 (1000, 0.95),
19]
20
21@dataclass
22class OrderItem:
23 item_type: str
24 price: float
25 quantity: int
26
27def calculate_item_subtotal(item: OrderItem) -> float:
28 """Tính tổng tiền của một sản phẩm sau khi áp dụng chiết khấu theo hạng."""
29 tier = CustomerTier(item.item_type)
30 discount_rate = TIER_DISCOUNTS.get(tier, 1.0)
31 return item.price * item.quantity * discount_rate
32
33def apply_bulk_discount(total: float) -> float:
34 """Áp dụng chiết khấu theo tổng giá trị đơn hàng."""
35 for threshold, discount_rate in BULK_DISCOUNT_THRESHOLDS:
36 if total > threshold:
37 return total * discount_rate
38 return total
39
40def calculate_order_total(items: List[OrderItem]) -> float:
41 """
42 Tính tng giá tr đơn hàng sau tt c chiết khu.
43
44 Args:
45 items: Danh sách sn phm trong đơn hàng
46
47 Returns:
48 Tng tin sau chiết khu
49 """
50 subtotal = sum(calculate_item_subtotal(item) for item in items)
51 return apply_bulk_discount(subtotal)

Phần 8: Rubric đánh giá

Tiêu chíXuất sắc (9-10)Tốt (7-8)Đạt (5-6)Chưa đạt (dưới 5)
Trắc nghiệm (18 câu)16-18 câu đúng13-15 câu đúng9-12 câu đúngDưới 9 câu đúng
Bài tập 1 - Prompt EngineeringPrompt chi tiết, đủ context, có ví dụ và edge casesPrompt rõ ràng, đủ thông tin cơ bảnPrompt đơn giản nhưng đúng hướngPrompt thiếu thông tin hoặc sai cách
Bài tập 2 - DebuggingTìm được 4/4 lỗi, giải thích rõ ràngTìm được 3/4 lỗiTìm được 2/4 lỗiTìm được dưới 2 lỗi
Bài tập 3 - RefactoringCode sạch, tách hàm hợp lý, có type hints, docstring, constantsCode cải thiện rõ rệt, đặt tên tốtĐổi tên biến rõ hơn nhưng chưa tách logicKhông cải thiện đáng kể

Phần 9: Hoàn thành

🎉 Chúc mừng bạn đã hoàn thành Quiz tổng hợp Vibe Coding với AI!

Tổng kết kiến thức đã kiểm tra:

  • ✅ Nền tảng Vibe Coding và triết lý AI-assisted development
  • ✅ GitHub Copilot: setup, phím tắt, inline suggestions, Copilot Chat
  • ✅ Prompt Engineering: comments as prompts, function signatures, context injection
  • ✅ Agent Mode: multi-file editing, workspace commands, task automation
  • ✅ AI cho Testing: test generation, edge case detection, TDD với AI
  • ✅ AI cho Debugging: error explanation, fix suggestions, log analysis
  • ✅ Code Review với AI: security scanning, code quality, best practices
  • ✅ Refactoring với AI: code smell detection, pattern extraction, performance optimization
  • ✅ Chiến lược Multi-model: GPT-4, Claude, Gemini Code Assist, local models
  • ✅ Documentation với AI: docstring, README, API docs
  • ✅ Best Practices: verify AI output, understand before accepting, security considerations

Bước tiếp theo: Áp dụng Vibe Coding vào dự án thực tế của bạn. Hãy bắt đầu với một tính năng nhỏ, sử dụng AI hỗ trợ, và từng bước nâng cao kỹ năng phối hợp với AI!