🔄 Trong hơn 7 bài học, bạn đã học từng tính năng của Cursor một cách riêng lẻ: Tự động hoàn thành bằng phím Tab (Bài 3), chỉnh sửa trực tiếp (Bài 3), Chat và ngữ cảnh (Bài 4), Chế độ Agent (Bài 5), quy tắc và cấu hình (Bài 6) và các tính năng nâng cao (Bài 7). Bây giờ, hãy kết hợp chúng thành một quy trình làm việc mà bạn có thể sử dụng trong bất kỳ dự án nào.
Tình huống: Bạn đang thêm tính năng thông báo người dùng vào API Node.js/TypeScript hiện có. Đây là một nhiệm vụ thực tế liên quan đến nhiều file, yêu cầu hiểu code hiện có và được hưởng lợi từ mọi tính năng của Cursor mà bạn đã học.
Bước 1: Thiết lập quy tắc (5 phút, 1 lần)
Trước khi viết code, hãy đảm bảo dự án của bạn có các quy tắc. Nếu thư mục .cursor/rules/ không tồn tại, hãy tạo nó:
general.mdc — Quy ước dự án: Chế độ Strict của TypeScript, xuất có tên, mẫu xử lý lỗi, framework test (Vitest), hình dạng phản hồi.
api-patterns.mdc — Các quy tắc dành riêng cho API: Cấu trúc tuyến, thứ tự middleware, mẫu xác thực, định dạng phản hồi lỗi.
Việc này chỉ mất 5 phút và sẽ mang lại lợi ích cho mọi tương tác Cursor trong dự án này sau này. Từ đây trở đi, mọi tác vụ của Agent, phản hồi Chat và chỉnh sửa Cmd+K đều tự động tuân theo các quy ước của bạn.
Bước 2: Hiểu codebase (10 phút)
Trước khi viết bất cứ điều gì, hãy sử dụng Chat để hiểu những gì hiện có:
Mở Chat (Cmd+L):
"@Codebase API được cấu trúc như thế nào? Mẫu định tuyến là gì và các truy vấn cơ sở dữ liệu nằm ở đâu?"
"@Codebase Có hệ thống thông báo hoặc nhắn tin hiện có không? Cho tôi xem bất cứ điều gì liên quan đến giao tiếp người dùng."
"@api/routes/ Middleware nào được áp dụng cho các tuyến đã được xác thực?"
Điều này làm nổi bật kiến trúc mà bạn cần làm việc trong đó. Bạn học các mẫu trước khi viết code vi phạm chúng.
Bước 3: Lập kế hoạch tính năng (5 phút)
Mở Composer (Cmd+I) ở chế độ Plan:
"Tôi cần thêm tính năng thông báo cho người dùng. Yêu cầu: (1) Bảng cơ sở dữ liệu cho thông báo với user_id, loại, tin nhắn, trạng thái đã đọc, thời gian tạo. (2) Các API endpoint: GET /api/notifications (danh sách, được lọc theo đã đọc/chưa đọc), POST /api/notifications/mark-read. (3) Tuân theo các mẫu hiện có trong @api/routes/. Lập kế hoạch triển khai — chưa cần viết code."
Xem lại kế hoạch. Liệu nó có phù hợp với kiến trúc hiện có không? Vị trí file có đúng không? Liệu nó có sử dụng ORM và các mẫu phù hợp không? Điều chỉnh trước khi viết bất kỳ code nào.
Bước 4: Xây dựng bằng Agent (20 phút)
Phê duyệt kế hoạch, sau đó để Agent thực thi:
Quan sát quá trình tạo migration cơ sở dữ liệu, model, routes, controllers và middleware. Mỗi thay đổi sẽ tạo ra một checkpoint. Nếu có lỗi xảy ra, bạn có thể quay lại bất kỳ điểm nào.
Những điều cần chú ý trong quá trình thực thi Agent:
Nó có tuân theo các quy tắc của bạn không? (Framework test phù hợp, xử lý lỗi đúng cách)
Nó có khớp với các mẫu hiện có không? (Cấu trúc tuyến giống nhau, hình dạng phản hồi giống nhau)
Vị trí file có chính xác không? (Trong các thư mục phù hợp, tuân theo quy ước đặt tên)
Nếu Agent đi chệch hướng, hãy dừng nó, quay lại checkpoint tốt gần nhất và đưa ra hướng dẫn cụ thể hơn.
✅ Kiểm tra nhanh: Agent đã tạo bảng thông báo nhưng sử dụng VARCHAR(255) cho cột thông báo. Các bảng hiện có của bạn sử dụng TEXT cho nội dung có độ dài thay đổi. Cách nhanh nhất để khắc phục điều này là gì? Sử dụng Cmd+K. Highlight dòng di chuyển, nhập "Thay đổi cột thông báo thành TEXT để phù hợp với quy ước bảng hiện có của chúng tôi." Chỉnh sửa chính xác, khắc phục ngay lập tức. Không cần khởi chạy lại Agent chỉ cho thay đổi một dòng.
Bước 5: Tinh chỉnh bằng Cmd+K (10 phút)
Agent đã thiết lập cấu trúc đúng. Các chi tiết cần được trau chuốt.
Chọn mô hình thông báo, Cmd+K: "Thêm chỉ mục trên user_id và created_at để cải thiện hiệu suất truy vấn"
Chọn trình xử lý định tuyến, Cmd+K: "Thêm phân trang — chấp nhận trang và giới hạn tham số truy vấn, mặc định là trang 1, giới hạn 20"
Chọn logic xác thực, Cmd+K: "Thêm giới hạn tốc độ — tối đa 100 yêu cầu đánh dấu đã đọc mỗi phút cho mỗi người dùng"
Cmd+K rất phù hợp cho những cải tiến nhỏ này. Mỗi chỉnh sửa đều nhỏ, tập trung và dễ xem xét.
Bước 6: Kiểm tra với Agent (10 phút)
Quay lại Composer:
"Viết các bài kiểm tra cho API thông báo. Bao gồm: (1) liệt kê thông báo cho người dùng đã xác thực, (2) đánh dấu thông báo là đã đọc, (3) phân trang, (4) giới hạn tốc độ. Tuân theo các mẫu kiểm thử trong @tests/."
Hãy để Agent viết các bài kiểm tra, chạy chúng và sửa lỗi. Đây là điểm mạnh của Agent — vòng lặp viết-chạy-sửa lỗi chính xác là mục đích mà quá trình thực thi tự động được xây dựng.
Bước 7: Hoàn thiện với Tab (liên tục)
Khi bạn xem xét và tinh chỉnh code, Tab sẽ dự đoán các chỉnh sửa của bạn. Đổi tên biến? Tab dự đoán lần đổi tên tiếp theo. Thêm chú thích kiểu dữ liệu? Tab đề xuất phần còn lại. Đây là sự tăng tốc ngầm giúp mọi thứ nhanh hơn.
Ma trận tính năng
Đây là thời điểm nên sử dụng từng công cụ:
Tác vụ
Công cụ
Lý do
Khám phá code chưa quen thuộc
Chat + @Codebase
Tìm kiếm ngữ nghĩa tìm các file liên quan
Lập kế hoạch thay đổi nhiều file
Agent + Plan mode
Nghiên cứu kỹ trước khi chỉnh sửa
Xây dựng tính năng mới
Agent
Tạo nhiều file tự động
Chuyển đổi code hiện có
Cmd+K
So sánh chính xác, có thể xem xét lại
Các chỉnh sửa tiếp theo sau khi đổi tên
Tab
Dự đoán những thay đổi lặp đi lặp lại
Gỡ lỗi
Chat + @Files
Hãy thảo luận về lỗi đó trong bối cảnh cụ thể
Viết bài kiểm tra
Agent
Vòng lặp ghi-chạy-sửa
Đánh giá chất lượng code
Chat hoặc BugBot
Phân tích không kèm chỉnh sửa
Các quy ước lặp đi lặp lại
Rules
Liên tục, tự động
Các prompt lặp đi lặp lại phức tạp
Notepads
Gói ngữ cảnh theo yêu cầu
Kết nối các công cụ bên ngoài
MCP
Truy cập cơ sở dữ liệu, API, công cụ thiết kế
Tự đánh giá
Hãy đánh giá mức độ tự tin của bạn với từng tính năng của Cursor.
Tính năng
Không tự tin
Tự tin một phần
Tự tin
Hoàn thành bằng phím Tab và chấp nhận từng từ
1
2
3
Chỉnh sửa trực tiếp (Cmd+K)
1
2
3
Các biểu tượng Chat & @
1
2
3
Agent mode & checkpoint
1
2
3
File quy tắc (.cursor/rules/)
1
2
3
Nâng cao (Background Agents, MCP)
1
2
3
15+ điểm: Bạn đã sẵn sàng sử dụng Cursor hiệu quả trong các dự án thực tế.
10-14 điểm: Xem lại các bài học mà bạn chỉ đạt điểm 1. Thực hành với một dự án nhỏ.
Dưới 10 điểm: Hãy thử từng tính năng riêng lẻ trên một dự án thử nghiệm trước khi kết hợp chúng.
Những lỗi thường gặp trong quy trình làm việc
Lỗi 1: Sử dụng Agent cho mọi thứ. Agent mạnh mẽ nhưng chậm. Phím Tab và Cmd+K nhanh hơn cho các chỉnh sửa nhỏ. Chọn công cụ phù hợp với quy mô công việc.
Lỗi 2: Các cuộc hội thoại dài. Bắt đầu lại (Cmd+N) sau khi hoàn thành mỗi tính năng hoặc sửa lỗi. Bối cảnh cũ làm mọi thứ trở nên tồi tệ hơn.
Lỗi 3: Không có file quy tắc. Mỗi lần bạn lặp lại một quy ước trong cuộc trò chuyện, đó là một quy tắc bạn nên viết một lần và quên đi.
Lỗi 4: Bỏ qua các checkpoint. Khi Agent gặp lỗi, mọi người cố gắng sửa chữa bằng cách đưa ra thêm hướng dẫn. Thông thường, quay lại checkpoint và thử một cách tiếp cận khác sẽ nhanh hơn.
Lỗi 5: Không xem lại kết quả đầu ra của Agent. Code do AI tạo ra có thể trông đúng nhưng lại chứa những lỗi nhỏ. Hãy đọc kỹ các bản vá lỗi. Chạy thử nghiệm. Tốc độ hoạt động của Agent càng nhanh, việc xem xét của bạn càng trở nên quan trọng.
Những điểm chính cần ghi nhớ
Quy trình làm việc đầy đủ của Cursor: Quy tắc → Lập kế hoạch → Agent → Cmd+K → Tab → Kiểm thử
Chọn công cụ phù hợp với nhiệm vụ: Tab để theo dõi luồng công việc, Cmd+K để chỉnh sửa chi tiết, Chat để hiểu rõ vấn đề, Agent cho công việc tự động
Thiết lập quy tắc một lần, hưởng lợi mãi mãi — cam kết chúng vào kho lưu trữ của bạn để đảm bảo tính nhất quán trong toàn nhóm
Bắt đầu các cuộc trò chuyện một cách mới mẻ, giữ cho chúng tập trung và xem xét mọi thay đổi do AI tạo ra
Cursor là một đối tác lập trình, không phải là người thay thế — đánh giá của bạn về kiến trúc, các trường hợp ngoại lệ và chất lượng code là điều làm cho đầu ra sẵn sàng cho sản xuất
Tiếp tục học hỏi
Tài liệu Cursor (docs.cursor.com) — tài liệu tham khảo chính thức cho mọi tính năng cursor.directory — các file quy tắc do cộng đồng quản lý cho các framework phổ biến
Thử nghiệm với MCP — kết nối Cursor với cơ sở dữ liệu, công cụ quản lý dự án hoặc công cụ thiết kế của bạn
Tham gia cộng đồng Cursor (forum.cursor.com) — các mẹo, file quy tắc và ý tưởng quy trình làm việc từ những nhà phát triển khác
Thử ngay: Phát hành một tính năng sử dụng toàn bộ ngăn xếp Cursor
Chọn một tính năng thực sự (hoặc sửa lỗi) trong dự án bạn đang quản lý. Thực hiện theo đúng trình tự này. Chạy từng prompt dưới dạng một tin nhắn riêng biệt trong công cụ được đặt tên.
Bước 1 — Trong một cuộc trò chuyện Cursor mới (Cmd+L), dán prompt này:
📍 Nơi dán: Mở ChatGPT (chat.openai.com), Claude (claude.ai) hoặc Gemini (gemini.google.com) và bắt đầu một cuộc trò chuyện mới.
📋 Cách sao chép prompt này: Nhấp vào bất kỳ đâu bên trong khối màu xám, nhấn Cmd+A rồi Cmd+C (Mac) hoặc Ctrl+A rồi Ctrl+C (Windows). Hoặc sử dụng biểu tượng sao chép xuất hiện.
Hãy đóng vai trò là người lập kế hoạch tính năng cho tôi trong Cursor. Với dự án trong @Codebase, hãy giúp tôi lập kế hoạch cho một tính năng mà tôi sắp xây dựng.
Tính năng:
- Mô tả một câu: []
- Kết quả người dùng có thể thấy: []
- Các file tôi nghi ngờ sẽ thay đổi: []
Chỉ lập kế hoạch thay đổi (không cần code):
1. Các file cần tạo (đường dẫn + mục đích)
2. Các file cần sửa đổi (phần cụ thể + lý do)
3. Các dependency mới cần thiết
4. Các bài test cần thêm
5. Bản đồ rủi ro — các tính năng hiện có nào có thể bị lỗi
6. 3 câu hỏi tôi nên trả lời trước khi viết bất kỳ code nào
Quy tắc:
- KHÔNG đề xuất code ngay
- Đánh dấu bất kỳ thay đổi nào liên quan đến xác thực, thanh toán, thông tin nhận dạng cá nhân (PII), di chuyển dữ liệu — tôi muốn được xem xét kỹ hơn về những thay đổi đó
- Trích dẫn chính xác đường dẫn file từ @Codebase
Dừng lại sau khi hoàn thành kế hoạch và chờ sự chấp thuận của tôi.
✏️ Cách điền thông tin chi tiết của bạn: Thay thế mỗi [] và trình giữ chỗ trong ngoặc bằng thông tin cụ thể từ tình huống thực tế của bạn. Thông tin mơ hồ sẽ tạo ra kết quả mơ hồ — hãy cụ thể.
👀 Những gì bạn sẽ thấy: Trong vòng vài giây, AI sẽ trả về một phản hồi có cấu trúc dựa trên prompt ở trên. Hãy đọc kỹ và coi đó là bản nháp, không phải câu trả lời cuối cùng.
📌 Nên làm gì với kết quả: Lưu phản hồi vào file Notes. Chọn đề xuất có hiệu quả cao nhất và thực hiện nó trong tuần này — đừng cố gắng làm tất cả cùng một lúc.
⚠️ Nếu kết quả không ổn: Nếu các đề xuất có vẻ chung chung, hãy dán nội dung sau: "Hãy cụ thể hơn với ngữ cảnh thực tế của tôi. Bỏ qua những lời khuyên chung chung." Nếu nó bỏ qua các chi tiết quan trọng bạn đã cung cấp, hãy hỏi: "Bạn đã bỏ sót [X] trong ngữ cảnh của tôi — hãy thực hiện lại với điều đó làm ràng buộc chính."
Bước 2 — Lưu trạng thái hiện tại để các checkpoint có một cơ sở sạch. Sau đó chuyển sang chế độ Agent (Cmd+I, bật chế độ Plan) và dán:
Làm việc ở Plan Mode. Chưa chỉnh sửa.
Kế hoạch đã được phê duyệt trong phiên trò chuyện trước: [dán tóm tắt kế hoạch gồm 3 gạch đầu dòng]
Lập kế hoạch thực thi:
1. Chỉnh sửa file chính xác theo thứ tự
2. Các lệnh cần chạy (chỉ liệt kê, không chạy)
3. Các bài kiểm tra cần thêm/cập nhật
4. Các điểm dừng mà tôi cần xem xét sự khác biệt trước khi bạn tiếp tục
Phạm vi:
- CHỈ chỉnh sửa các file được liệt kê ở trên
- KHÔNG cài đặt các dependency mà không hỏi ý kiến
- KHÔNG sửa đổi .env, cấu hình CI, file key hoặc các bản di chuyển mà không hỏi ý kiến
- KHÔNG chạy các lệnh gây hại (rm, DROP, force push, git reset --hard)
Chờ sự phê duyệt của tôi trước khi thực thi.
Bước 3 — Phê duyệt, sau đó để Agent thực thi kế hoạch.
Xem xét sự khác biệt của từng điểm dừng trong thanh bên. Nếu bất kỳ điều gì đi chệch khỏi phạm vi, hãy quay lại checkpoint và siết chặt kế hoạch.
Bước 4 — Sau khi Agent hoàn tất, hãy mở các file đã thay đổi trong trình chỉnh sửa.
Đối với bất kỳ file nào cần dọn dẹp, hãy chọn khối đó và nhấn Cmd+K với template này:
Dọn dẹp vùng chọn này theo các quy tắc sau:
- Giữ nguyên hành vi chính xác
- Giữ nguyên tất cả chữ ký hàm + xuất khẩu
- Chỉ cải thiện khả năng đọc hiểu — đổi tên các biến cục bộ không rõ ràng, trích xuất những biểu thức dài
- Phù hợp với kiểu được sử dụng trong code lân cận
- KHÔNG chỉnh sửa bất kỳ code nào bên ngoài vùng chọn này
Sau đó: liệt kê từng thay đổi và lý do.
Bước 5 — Tự chạy thử nghiệm. Sau đó, trong Chat (Cmd+L), dán prompt này để xem xét trước khi commit:
Sử dụng @[file đã thay đổi] và diff mà tôi sắp commit, hãy xem xét:
1. Lỗi logic (trường hợp ngoại lệ, sai lệch một đơn vị, null/undefined, lỗi tranh chấp bất đồng bộ)
2. Bảo mật (xác thực đầu vào, xác thực, injection, secrets)
3. Rò rỉ tài nguyên
4. Thay đổi gây lỗi (API xuất, hình dạng phản hồi)
5. Độ phủ kiểm thử — có thể có lỗi hồi quy mới không?
6. Vi phạm quy tắc dự án trong .cursor/rules
Phân loại các phát hiện thành Nghiêm trọng / Cao / Trung bình / Thấp.
Quy tắc:
- Đánh dấu bất cứ điều gì KHÔNG nên được triển khai hôm nay
- Nếu bạn thấy một secret được hardcode, hãy đánh dấu là Nghiêm trọng và bảo tôi xoay vòng (đừng lặp lại secret)
- KHÔNG đề xuất viết lại toàn bộ — chỉ cần các phát hiện + sửa lỗi 1 dòng
Bước 6 — Giải quyết các phát hiện, sau đó cam kết với một thông báo rõ ràng. KHÔNG đẩy lên cho đến khi các bài kiểm tra cục bộ thành công.
Bước 7 — Lưu ghi chú đánh giá lại vào .cursor/notes/retros/[feature-name].md:
Tính năng Cursor nào đã thực hiện từng bước: Plan → Agent → Cmd+K → Chat review
Agent đã đi chệch phạm vi ở đâu và điều gì đã giúp thu hẹp phạm vi lần chạy tiếp theo
Có quy tắc nào nên thêm vào .cursor/rules/ để mẫu này tự động được thực hiện vào lần sau không?
Tổng số phút hoạt động so với khi không sử dụng Cursor
CÁC QUY TẮC BẮT BUỘC cho toàn bộ quy trình dự án cuối khóa:
Không bao giờ bỏ qua Bước 1 (Plan) — Agent không có kế hoạch là nguyên nhân dẫn đến 14 file đã được sửa đổi
Không bao giờ bỏ qua Bước 5 (đánh giá trước khi commit) — ngay cả những bản diff tuyệt vời cũng che giấu lỗi
Nếu Agent cố gắng cài đặt một dependency mà bạn chưa phê duyệt, hãy từ chối và thu hẹp phạm vi
Nếu Agent muốn chỉnh sửa xác thực, thanh toán, di chuyển hoặc PII, hãy chạy các thay đổi đó thủ công bằng Cmd+K
Không bao giờ đẩy lên nhánh chính mà chưa được đồng đội xem xét đối với code nhóm
Commit thường xuyên — mỗi bản diff được chấp nhận là một checkpoint tốt
Nếu toàn bộ quá trình diễn ra nhanh hơn dự kiến, hãy chậm lại và đọc kỹ hơn phần so sánh code — đó chính là lúc các lỗi dễ bị phát hiện.
Những gì bạn sẽ thấy: Một tính năng hoàn chỉnh được triển khai bằng cách sử dụng Plan → Agent → Cmd+K → Chat review, với một mục ghi chép lại để phiên bản tuần sau được xử lý nhanh hơn — quy trình làm việc tích lũy biến Cursor từ "tính năng tự động hoàn thành cao cấp" thành một công cụ nhân rộng hiệu quả hàng ngày.
Câu 1:
Tác vụ Agent của bạn cho kết quả kém hơn trong một cuộc hội thoại dài. Điều gì đang xảy ra và làm thế nào để khắc phục?
GIẢI THÍCH:
Các cuộc hội thoại dài tích lũy ngữ cảnh: Những code cũ, các chỉ dẫn trước đó, những phương pháp trước đây đã bị bỏ rơi. AI cố gắng dung hòa tất cả những điều này với yêu cầu hiện tại của bạn, dẫn đến kết quả đầu ra khó hiểu. Hãy bắt đầu một cuộc hội thoại mới (Cmd+N), tham chiếu các file bạn cần bằng @ và đưa ra những chỉ dẫn rõ ràng. Ngữ cảnh mới hầu như luôn mang lại kết quả tốt hơn.
Câu 2:
Bạn sẽ sử dụng tính năng nào của Cursor cho mỗi tác vụ?
GIẢI THÍCH:
Mỗi công cụ đều có thế mạnh riêng. Tab vượt trội trong việc chỉnh sửa theo mẫu (đổi tên một trường hợp, Tab dự đoán phần còn lại). Cmd+K dùng để biến đổi có định hướng, chọn một đối tượng. Chat dùng để đặt câu hỏi và hiểu vấn đề. Agent dùng cho công việc tự động với nhiều file. Sử dụng đúng công cụ cho mỗi tác vụ sẽ nhanh hơn và cho kết quả tốt hơn so với việc ép buộc một công cụ làm mọi thứ.
Câu 3:
Một đồng nghiệp yêu cầu bạn giải thích sự khác biệt giữa Cursor và "chỉ là một tính năng tự động hoàn thành cao cấp hơn". Điểm khác biệt chính là gì?
GIẢI THÍCH:
Tính năng tự động hoàn thành gợi ý từ hoặc dòng tiếp theo. Cursor lập chỉ mục toàn bộ codebase của bạn, hiểu các mẫu kiến trúc, chỉnh sửa những file trong toàn bộ dự án của bạn, chạy các lệnh để xác minh hoạt động của nó và tuân theo những quy tắc liên tục về tiêu chuẩn lập trình của bạn. Sự khác biệt nằm ở chỗ giữa một công cụ giúp bạn gõ nhanh hơn và một đối tác hiểu những gì bạn đang xây dựng.
Câu 4:
Bạn đang bắt đầu một tính năng mới trong Cursor. Bước đầu tiên được khuyến nghị là gì?
GIẢI THÍCH:
Các quy tắc cung cấp cho Cursor những quy ước của dự án (thiết lập một lần). Chế độ Plan cho phép Agent phân tích codebase của bạn và đề xuất một phương pháp tiếp cận trước khi chỉnh sửa. Điều này giúp phát hiện các lỗi kiến trúc trước khi viết bất kỳ code nào. Nhảy thẳng vào chế độ Agent thường có nghĩa là bạn sẽ dành nhiều thời gian hơn để sửa các phương pháp sai so với thời gian bạn dành cho việc lập kế hoạch.
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây: