Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 3 — GitHub Copilot & Cursor: sức mạnh trong luồng viết code

Đã đọc 0/14 mục · còn khoảng 5 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Hai công cụ này phục vụ người ngồi trong editor nhiều nhất. Bài này đi sâu điểm mạnh, cách thiết lập và khi nào dùng cái nào.

GitHub Copilot — trợ lý gõ code

Điểm mạnh: gợi ý inline cực nhanh, quen thuộc, cài như một extension, không phá vỡ workflow. Copilot Chat trả lời câu hỏi ngay trong editor và có thể giải thích/viết test cho đoạn đang chọn.

Khi nào dùng: bạn viết nhiều code mới theo pattern lặp lại (CRUD, boilerplate, test), muốn giữ nguyên IDE và team đã dùng GitHub.

Các bước thiết lập Copilot

  • Cài extension GitHub Copilot trong VS Code (hoặc JetBrains).
  • Đăng nhập tài khoản GitHub có bật Copilot.
  • Mở một file, bắt đầu gõ; nhấn Tab để chấp nhận gợi ý.
  • Mở Copilot Chat để hỏi hoặc chọn code rồi ra lệnh.
Mẹo tăng chất lượng gợi ý: viết comment mô tả ý định ngay trước hàm.

# Trả về danh sách user active trong 30 ngày, sắp theo last_login giảm dần
def get_recent_active_users(users):
    # Copilot sẽ gợi ý phần thân dựa trên comment này

Cursor — IDE đặt AI làm trung tâm

Điểm mạnh: hiểu toàn bộ codebase qua index, edit nhiều file cùng lúc, Agent/Composer mode làm được task vừa và lớn, và tính năng "@" để đưa file/tài liệu vào ngữ cảnh chính xác.

Khi nào dùng: bạn thường xuyên refactor xuyên nhiều file, muốn ra lệnh bằng ngôn ngữ tự nhiên và xem diff trước khi apply, hoặc làm việc trên codebase lớn cần AI "hiểu cả dự án".

Các bước bắt đầu với Cursor

  • Tải và cài Cursor, import cấu hình VS Code (extension, phím tắt) khi được hỏi.
  • Mở dự án; để Cursor index codebase.
  • Dùng Cmd/Ctrl + K để sửa inline một vùng chọn.
  • Dùng Cmd/Ctrl + L để chat; gõ @filename để thêm file vào ngữ cảnh.
  • Bật Agent mode cho task nhiều bước, xem diff, nhấn Accept/Reject từng phần.

Ví dụ dùng @ để định ngữ cảnh chính xác

@services/auth.py @models/user.py
Thêm khóa tài khoản sau 5 lần đăng nhập sai. Cập nhật cả model lẫn service.

Khung tư duy: Copilot bổ trợ, Cursor thay thế

  • Copilot là lớp phủ lên IDE bạn đang dùng.
  • Cursor là IDE mới thay VS Code; đổi Cursor nghĩa là đổi nhà.
  • Nhiều người dùng Copilot cho gõ nhanh và chuyển sang Cursor khi cần AI hiểu cả dự án — nhưng bên trong Cursor thường không cần Copilot nữa vì đã có autocomplete riêng.

Checklist chọn giữa hai

  • [ ] Task chủ yếu là gõ code mới, một file? -> Copilot đủ.
  • [ ] Cần refactor/hiểu nhiều file? -> Cursor.
  • [ ] Muốn giữ nguyên môi trường hiện tại? -> Copilot.
  • [ ] Sẵn sàng đổi IDE để có trải nghiệm AI sâu? -> Cursor.

Sai lầm thường gặp

  • Không đưa ngữ cảnh cho Cursor: quên dùng @, agent đoán mò và sửa nhầm file.
  • Chấp nhận gợi ý Copilot mù quáng: nhất là với logic bảo mật/tính toán — luôn đọc lại.
  • Kỳ vọng Copilot làm task đa file: nó không phải agent tự chủ; sẽ hụt hơi.
  • Bật cả hai chồng chéo: chạy Copilot bên trong Cursor gây gợi ý trùng, gây rối; nên chọn một nguồn autocomplete.
<!--les-append-->

Autocomplete: rủi ro ít ai nói

Autocomplete có một rủi ro riêng, khác hẳn agent: nó làm bạn chấp nhận code bạn không thật sự đọc. Gợi ý xuất hiện đúng lúc bạn đang trong luồng, bấm Tab nhanh hơn đọc, và sau 200 lần bấm Tab trong ngày, bạn không nhớ dòng nào là của mình.

Bốn chỗ cần đọc chậm lại, luôn luôn:

Loại codeVì sao nguy hiểm
Điều kiện biên< và <=, off-by-one — gợi ý sai nhìn giống gợi ý đúng
Xử lý lỗiNó thường bắt lỗi rồi bỏ qua im lặng
Truy vấn dữ liệuThiếu điều kiện lọc, hoặc nối chuỗi thay vì tham số hoá
Bất cứ chỗ nào có sốTimeout, giới hạn, ngưỡng — nó đoán, và số đoán trông như số thật
Dòng thứ hai là dòng tốn nhiều giờ gỡ lỗi nhất: try { ... } catch { } là gợi ý AI rất hay đưa ra, và nó biến một lỗi ồn ào thành một lỗi âm thầm.

Cursor và ngữ cảnh: chỉ file đúng quan trọng hơn index

Cursor index toàn dự án, nhưng chỉ vào đúng file vẫn cho kết quả tốt hơn rõ rệt. Lý do: index giúp nó tìm, còn bạn chỉ file giúp nó biết cái nào là khuôn mẫu.

Thói quen hiệu quả: khi nhờ làm một việc mới, luôn kèm một ví dụ đã có trong dự án — "làm tương tự như file này". Đây là cách rẻ nhất để code sinh ra khớp quy ước của đội, và nó hiệu quả hơn mọi mô tả bằng lời.

Khi nào dùng cái nào

Tình huốngChọnVì sao
Viết code mới theo mẫu lặp lạiAutocompleteNhanh nhất, rủi ro thấp
Sửa một hàm, biết rõ muốn gìChat/Edit trong IDEThấy diff ngay
Sửa xuyên nhiều fileAgent modeCần ngữ cảnh rộng
Không biết code ở đâuHỏi với ngữ cảnh toàn dự ánĐây là việc AI làm tốt hơn grep
Hàng cuối là giá trị bị đánh giá thấp nhất khi bạn mới vào một codebase lạ: dùng AI để hỏi thay vì để viết.

Giữ diff nhỏ

Nguyên tắc áp dụng cho mọi công cụ trong bài này: một yêu cầu, một mục tiêu. Diff 60 dòng bạn đọc được; diff 600 dòng bạn sẽ bấm duyệt mà không đọc, và ở đó là nơi lỗi đi vào sản phẩm.

Nếu công cụ trả về diff quá lớn, đừng sửa nó — hãy chia lại yêu cầu và làm lại.

Làm ngay

Trong ngày làm việc tới, mỗi lần autocomplete gợi ý code thuộc bốn loại trong bảng đầu, dừng lại đọc kỹ. Đếm bao nhiêu lần bạn phát hiện gợi ý sai — con số đó cho bạn biết bạn đang bấm Tab quá nhanh ở mức nào. <!--/les-append-->

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi