[Series Cursor A-Z] Phần 3: Biến Cursor Thành "Cộng Sự" Review Code, Fix Bug Khét Lẹt & Auto Sinh Unit Test
1. Mở đầu
Chào anh em! Nếu đã theo dõi từ [Phần 1] và [Phần 2], chắc hẳn anh em đã biết cách cài đặt, config .cursorrules và dùng Composer để "gõ" ra cả một module chỉ trong vài nốt nhạc.
Tuy nhiên, đời dev đâu chỉ có viết code mới. Gần 70% thời gian của chúng ta là dành cho việc đọc hiểu code cũ, đục khoét tìm Bug và... cắn răng viết Unit Test. Hôm nay, ở phần cuối của series, mình sẽ hướng dẫn anh em cách dùng Cursor để biến những công việc "khó nhằn" này trở nên nhẹ nhàng hơn bao giờ hết.
2. Bắt Bug Siêu Tốc: Không Còn Cảnh "Console.log" Khắp Nơi
Trước đây, khi terminal văng ra một rổ lỗi đỏ lòm (ví dụ như lỗi Nil Pointer Dereference trong Golang hay Unhandled Promise Rejection trong Node.js), anh em thường copy lỗi đó lên StackOverflow hoặc hỏi ChatGPT. Với Cursor, trải nghiệm này được rút gọn tối đa.
Cách Cursor xử lý Bug:
- Auto Debug trong Terminal: Khi chạy app trong terminal của Cursor mà bị crash, bạn sẽ thấy một nút nhỏ "Debug with AI" hiện ra ngay cạnh dòng log lỗi. Chỉ cần click vào đó, Cursor sẽ tự động đọc log, đối chiếu với file code gây ra lỗi và đề xuất cách fix trực tiếp.
- Sửa lỗi Logic với
Cmd + K: Nếu code không văng lỗi terminal nhưng chạy sai logic (ví dụ tính toán sai số dư giao dịch). Bạn chỉ cần bôi đen đoạn logic đó, nhấn Cmd + K và gõ:
"Đoạn code này trả về kết quả sai khi trạng thái transaction là 'offline'. Hãy fix lại và kiểm tra kỹ các điều kiện rẽ nhánh." AI sẽ tự động sinh ra đoạn code diff để bạn đối chiếu và apply.
3. Code Review & Refactor: Nâng Tầm "Clean Code"
Đôi khi code chạy được chưa chắc đã là code tốt. Với những project Backend lớn (như Laravel hay Node.js xử lý hàng ngàn request), performance và security là yếu tố sống còn. Hãy biến tab Chat (Cmd + L) thành một Senior Dev "review dạo" cho bạn.
Tuyệt chiêu Refactor:
- Tối ưu Performance (Ví dụ chống N+1 Query):
Mở file repository lên, gõ
@filevào tab Chat kèm prompt: "Review hàm get danh sách user này, có vẻ đang dính lỗi N+1 Query. Hãy refactor lại bằng Eager Loading hoặc Join sao cho tối ưu nhất." - Chuyển đổi Design Pattern: Nếu một class đang quá phình to, bôi đen toàn bộ và yêu cầu: "Hãy refactor class này, áp dụng Strategy Pattern để tách biệt các phương thức thanh toán."
- Check Security: "@Codebase Tìm trong project này xem có chỗ nào đang bị hở SQL Injection hoặc chưa validate input từ client không?"
4. Viết Unit Test: Nỗi Ám Ảnh Giờ Đã Có Giải Pháp
Anh em dev thường rất lười viết test vì nó tốn thời gian và đôi khi... nhàm chán. Nhưng Unit Test lại là tấm khiên bảo vệ hệ thống khỏi những pha "bóp team" không đáng có.
Với Composer (Cmd + I), việc sinh Unit Test trở nên dễ như ăn kẹo:
Bước 1: Mở Composer lên.
Bước 2: Nhắc bài AI bằng cách tag file cần test và file test mẫu (nếu có).
Bước 3: Ra lệnh bằng Prompt chuẩn:
"Hãy tạo file payment.service.test.ts. Viết Unit Test bao phủ 100% các case trong @payment.service.ts. Bắt buộc dùng Jest, mock các dependencies (như Database hay third-party API), và viết ít nhất 2 test case cho trường hợp ném ra Exception (Error cases)."
Chưa tới 10 giây, Cursor sẽ gen ra hàng chục test case cover đủ các luồng if/else logic phức tạp nhất. Nhiệm vụ của bạn chỉ là review lại và chạy npm run test.
5. Tổng Kết Toàn Series
Vậy là chúng ta đã đi qua 3 phần của series "Cursor từ A-Z". Từ việc setup giao diện, thuần thục bộ phím tắt thần thánh (Cmd+K, Cmd+L, Cmd+I), cho đến việc làm chủ Prompting để tự động hóa quy trình viết code, review và fix bug.
Takeaway quan trọng nhất: AI (cụ thể là Cursor) sinh ra không phải để thay thế lập trình viên, mà để thay thế những lập trình viên không biết dùng AI. Khi nắm vững công cụ này, tư duy của anh em sẽ dịch chuyển từ một "người thợ gõ code" sang một "kỹ sư thiết kế hệ thống" – nơi chúng ta dành thời gian cho architecture, logic và luồng nghiệp vụ thay vì sa đà vào những dòng code lặp đi lặp lại.
Hy vọng series này sẽ giúp anh em x10 hiệu suất làm việc. Nếu thấy hay, đừng quên upvote và share bài viết để lan tỏa đến cộng đồng nhé. Chúc anh em code mượt, ít bug và hẹn gặp lại ở những bài viết tech chuyên sâu khác trên Viblo!
All rights reserved