AI cho Dev

AI Code Review: Tôi đã để AI review code 1 tháng, đây là kết quả

Thử nghiệm thực tế: ChatGPT, Claude và Cursor review code PHP/Laravel trong 30 ngày. Kết quả nào khiến tôi bất ngờ nhất?

newspaper

Phạm Hoàng Long

5 tháng 1, 2026 schedule 5 phút đọc
AI Code Review: Tôi đã để AI review code 1 tháng, đây là kết quả
Featured Image

Tháng 12 vừa rồi, tôi quyết định làm một thử nghiệm: Mọi đoạn code tôi viết đều phải qua AI review trước khi commit.

Không phải vì tôi tin AI hơn con người. Mà vì tôi muốn biết: AI có thực sự giúp ích được gì, hay chỉ là hype?

Sau 30 ngày, 47 Pull Requests, và 3 AI tools khác nhau, đây là những gì tôi học được.

Setup: 3 AI tools, 1 quy trình

Tôi chọn 3 tools phổ biến nhất:

  1. ChatGPT-4o (via API)
  2. Claude 3.5 Sonnet (via Cursor)
  3. Cursor Composer (AI native IDE)

Quy trình review:

  • Mỗi khi viết xong một feature, tôi paste code vào cả 3 tools
  • Yêu cầu: “Review code này, tìm bugs, security issues, và đề xuất cải thiện”
  • Ghi chép lại feedback của từng tool
  • So sánh với kết quả review của Senior Dev trong team

Kết quả: Ai thắng?

Round 1: Tìm Logic Bugs

Test case: Hàm tính discount cho E-commerce

public function calculateDiscount($totalAmount, $userType)
{
    if ($userType == 'vip') {
        return $totalAmount * 0.2;
    } elseif ($totalAmount > 1000000) {
        return $totalAmount * 0.1;
    }
    return 0;
}

Bug thật: VIP user với đơn hàng > 1M chỉ được 20%, không được cộng dồn 30%.

Kết quả:

  • ChatGPT: Không phát hiện
  • Claude: Không phát hiện
  • Cursor: Không phát hiện
  • Senior Dev: Phát hiện ngay

Lý do: AI không hiểu business logic. Nó không biết discount có được cộng dồn hay không.

Round 2: Security Vulnerabilities

Test case: API endpoint nhận input từ user

public function search(Request $request)
{
    $keyword = $request->input('keyword');
    $results = DB::select("SELECT * FROM products WHERE name LIKE '%{$keyword}%'");
    return response()->json($results);
}

Bug thật: SQL Injection vulnerability

Kết quả:

  • ChatGPT: Phát hiện, đề xuất dùng Query Builder
  • Claude: Phát hiện, giải thích chi tiết về SQL Injection
  • Cursor: Phát hiện, tự động suggest fix
  • Senior Dev: Phát hiện

Winner: Claude (giải thích rõ nhất) và Cursor (fix nhanh nhất)

Round 3: Performance Issues

Test case: N+1 Query Problem

public function getUserOrders()
{
    $users = User::all();
    foreach ($users as $user) {
        echo $user->orders->count();
    }
}

Kết quả:

  • ChatGPT: Phát hiện, đề xuất eager loading
  • Claude: Phát hiện, giải thích impact
  • Cursor: Phát hiện, auto-fix với User::with('orders')
  • Senior Dev: Phát hiện

Winner: Cả 3 AI đều tốt, nhưng Cursor tiện nhất (1 click fix)

Round 4: Code Style & Best Practices

Test case: Laravel Service class không follow convention

class UserService
{
    public function get_user_data($id)
    {
        $user = User::find($id);
        if (!$user) {
            return null;
        }
        return [
            'name' => $user->name,
            'email' => $user->email,
        ];
    }
}

Issues:

  • Snake_case method name (nên dùng camelCase)
  • Không throw exception khi user not found
  • Không dùng Resource class

Kết quả:

  • ChatGPT: Phát hiện 2/3 issues
  • Claude: Phát hiện cả 3, suggest dùng UserResource
  • Cursor: Phát hiện 2/3
  • Senior Dev: Phát hiện cả 3 + gợi ý thêm type hint

Winner: Claude (detail nhất)

Những phát hiện bất ngờ

1. AI rất giỏi tìm “low-hanging fruits”

Những lỗi mà AI bắt được ngay:

  • SQL Injection, XSS
  • N+1 queries
  • Missing validation
  • Unused variables
  • Inconsistent naming

Đây là những lỗi mà junior dev hay mắc phải. AI giúp bạn tự review trước khi gửi PR, tránh bị senior “chửi”.

2. AI yếu về Business Logic

AI không hiểu:

  • Tại sao field này nullable
  • Tại sao không validate field kia
  • Tại sao logic này “weird” nhưng đúng

Ví dụ: Tôi có đoạn code tính thuế 8% cho một số sản phẩm, 10% cho số khác. AI cứ gợi ý “extract magic number”. Nhưng thực tế đó là luật thuế Nhật Bản, không thể extract.

3. Claude thắng về giải thích, Cursor thắng về tốc độ

  • Claude: Giải thích chi tiết, dễ hiểu, phù hợp để học
  • Cursor: Fix nhanh, integrate sâu vào IDE, phù hợp để làm
  • ChatGPT: Cân bằng, nhưng không xuất sắc ở khía cạnh nào

Workflow thực tế tôi đang dùng

Sau 1 tháng, đây là quy trình tôi settle down:

Bước 1: Code xong → Cursor review ngay (Cmd+L)

  • Nhanh, tiện, không phải rời IDE
  • Fix các lỗi cơ bản

Bước 2: Trước khi commit → Claude review lần cuối

  • Paste toàn bộ file vào Claude
  • Hỏi: “Có security issue hoặc performance issue nào không?”

Bước 3: Tạo PR → Senior Dev review

  • AI chỉ là “first pass”
  • Human review vẫn là bắt buộc

Kết luận: AI Code Review có đáng không?

Có, nhưng với điều kiện:

Dùng AI khi:

  • Bạn là junior/mid-level dev, cần “mentor” 24/7
  • Bạn làm solo, không có ai review code
  • Bạn muốn học best practices

Không dùng AI khi:

  • Bạn nghĩ AI thay thế được human review
  • Code liên quan đến business logic phức tạp
  • Bạn đang làm cho công ty cấm upload code lên cloud

Lời khuyên cuối: AI Code Review giống như Grammarly cho code. Nó bắt được lỗi chính tả, ngữ pháp, nhưng không thể viết hộ bạn một bài văn hay.

Dùng nó như một công cụ, không phải cái nạng.

quizQuick Quiz
Câu 1/3

Điểm yếu lớn nhất của AI khi review code là gì?

history_edu Góc học tập & giải trí

Thử Thách Kiến Thức Lịch Sử?

Khám phá hàng trăm câu hỏi trắc nghiệm lịch sử thú vị tại HistoQuiz. Vừa học vừa chơi, nâng cao kiến thức ngay hôm nay!

Chơi Ngay arrow_forward