Bí Kíp Dùng AI Lập Trình: Biến Copilot Thành 'Đồng Đội Ngon' Chứ Không Phải 'Nguồn Nợ Công Nghệ'!
Lê Lân
1
Hướng Dẫn Toàn Diện Làm Việc Hiệu Quả Với Trợ Lý Lập Trình AI Như GitHub Copilot
Mở Đầu
Trợ lý lập trình AI như GitHub Copilot đang ngày càng trở thành công cụ không thể thiếu trong quy trình làm việc của nhiều nhà phát triển phần mềm hiện nay.
Sự hỗ trợ từ các AI coding assistants mang lại khả năng tăng tốc phát triển phần mềm một cách đáng kinh ngạc. Tuy nhiên, việc sử dụng chúng một cách không có quy trình và cấu trúc rõ ràng có thể dẫn đến các vấn đề như technical debt, mô hình phát triển không đồng nhất, cũng như khó khăn trong việc bảo trì về lâu dài.
Bài viết này sẽ chia sẻ một lộ trình thực tiễn dựa trên kinh nghiệm làm việc với GitHub Copilot và Cursor trong nhiều dự án – từ frontend đến backend. Chúng ta sẽ cùng tìm hiểu cách thiết lập môi trường, xây dựng quy tắc sử dụng AI, định nghĩa các pattern và đảm bảo code tạo ra luôn sạch sẽ, dễ dàng kiểm thử và bảo trì.
1. Thiết Lập Quy Tắc Cơ Bản: Instruction Files và Chat Modes trong Copilot
1.1 Giới Thiệu Về Instruction Files
GitHub Copilot hỗ trợ sử dụng các file hướng dẫn (instruction files) viết bằng Markdown, giúp chúng ta:
Mô tả kiến trúc dự án
Quy định quy tắc đặt tên, phong cách code
Chiến lược testing cụ thể
Các file này được đặt trong thư mục .github/ với các cấp độ hỗ trợ khác nhau:
.github/copilot-instructions.md: áp dụng toàn bộ dự án
.github/copilot/<path>.md: áp dụng cho từng thành phần hay thư mục cụ thể
Mỗi file bắt đầu bằng phần frontmatter để quy định phạm vi áp dụng:
---
applyTo: "**/*.ts"
---
Giúp chúng ta duy trì tiêu chuẩn toàn cục và cục bộ một cách linh hoạt.
1.2 Ví Dụ Mẫu Instruction File
---
applyTo: "**/*.ts"
---
# Hướng Dẫn Phát Triển TypeScript
## Phong cách code
- Sử dụng async/await cho các thao tác bất đồng bộ
- Inject dependencies qua constructor
- Logging theo cấp độ: info, debug, error
- Định nghĩa custom error classes cho mọi ngoại lệ
## Kiến trúc dịch vụ
- Caching cho tất cả các cuộc gọi API bên ngoài
- Logic nghiệp vụ nằm ở services, không đặt trong controller
- Quy tắc đặt tên module đồng nhất
## Chiến lược testing
- Unit test tất cả các method dịch vụ
- Mock toàn bộ dependencies bên ngoài
- Bao gồm kịch bản test cả positive và negative
1.3 Tham Khảo Các Template Chuẩn
Bạn có thể tham khảo Awesome Copilot, kho mẫu instruction file dành cho nhiều stack phổ biến như Angular, React, NodeJS, Spring Boot, Go,... giúp tiết kiệm thời gian xây dựng quy chuẩn riêng.
1.4 Cursor và Cursor Rules
Tương tự, Cursor cung cấp bộ quy tắc Cursor Rules để định nghĩa hành vi AI, khuyến khích tính đồng bộ và có thể kiểm soát, chia sẻ, phiên bản trên phạm vi dự án lớn hoặc đội nhóm.
2. Định Nghĩa Hành Vi AI Theo Từng Nhiệm Vụ Với Custom Chat Modes
2.1 Tổng Quan Chat Modes
Copilot trong VS Code hỗ trợ tạo các chế độ chat tùy chỉnh (custom chat modes), cho phép bạn thiết lập các ngữ cảnh riêng biệt cho từng phần công việc như:
Lập kế hoạch triển khai
Review kiến trúc
Viết test cases
Mỗi chế độ kết hợp hướng dẫn, công cụ sử dụng và đôi khi là mô hình AI cụ thể, giúp chuyển đổi linh hoạt giữa các luồng công việc mà không cần cấu hình lại từng lần.
2.2 Cấu Trúc Custom Chat Mode
Các chat mode là file Markdown có đuôi .chatmode.md, nằm trong thư mục .github/chatmodes/, bao gồm:
Frontmatter Metadata (YAML): quy định mô tả, công cụ, mô hình dùng
Body Instructions: hướng dẫn chi tiết AI tuân theo, ví dụ:
# Planning Mode Instructions
You are in planning mode. Your task is to generate an implementation plan for a new feature or refactoring task. Do not generate any code.
The output should be a Markdown document including:
-**Overview**: Summary of feature
-**Requirements**: Functional and non-functional
-**Implementation Steps**: Ordered tasks
-**Testing**: Tests and validations
2.3 Cursor và Custom Chat Modes
Cursor đang thử nghiệm hỗ trợ tính năng này, người dùng có thể bật bằng: Settings → Chat → Custom Modes → Enable.
3. Thiết Lập Mẫu Code Tham Chiếu: Dạy AI Thế Nào Là “Code Chuẩn”
Ngay khi hệ thống cấu hình đã xong, bạn cần cung cấp các mẫu code tiêu chuẩn để AI hiểu rõ thông lệ, kiến trúc áp dụng trong dự án.
Tham chiếu một file implement mẫu như một "pattern" sẽ giúp Copilot tạo ra code mới đúng chuẩn.
3.1 Ví dụ Prompt Tham Chiếu
“Using UserService from services/user-service.ts as a reference, create a ProductService that:
Bằng cách này, AI sẽ "đọc" kiến trúc, quy tắc đặt tên, luồng xử lý trong file tham chiếu để tạo ra sản phẩm nhất quán hơn mô tả bằng lời.
4. Tích Hợp Sớm Kiểm Thử: AI Giúp Bạn Xây Dựng Và Xác Thực Test Cases
4.1 Lợi Ích Của Việc Viết Test Sớm
Viết test ngay từ đầu không chỉ giúp xác định xem code AI tạo ra có chạy đúng không mà còn trở thành vòng feedback để cải thiện chất lượng code được sinh ra.
4.2 Định Nghĩa Test Request Với Prompt
Dưới đây là ví dụ prompt để Copilot tạo unit tests cho ProductService:
Test tất cả CRUD methods
Mock HttpClient, CacheService, Logger
Kiểm tra cache vận hành đúng
Test xử lý lỗi và tình huống network failure, input không hợp lệ
Nếu dự án đã có framework test sẵn (Jest, Jasmine, Vitest…), AI sẽ tuân theo cấu trúc và cách mock hiện có.
4.3 Lời Khuyên
Bạn có thể tạo cả một chat mode riêng dành cho sinh test (.chatmode.md) liên kết chặt chẽ với instruction files, nhằm chuẩn hóa toàn bộ quy trình tạo test.
5. Ghi Chép Tài Liệu Ngay Trong Quá Trình Phát Triển
Sau khi hoàn thành tính năng phức tạp, thường chúng ta bỏ qua bước viết tài liệu, gây khó khăn cho bảo trì và onboarding về sau. AI có thể giúp bạn làm điều này một cách tự động và hiệu quả.
5.1 Ví dụ Prompt Ghi Tài Liệu Sau Khi Hoàn Thành
“Based on previous prompts and responses, generate:
5.2 Lợi Ích Của Việc Ghi Tài Liệu Kèm AI
Tài liệu API mới
Ví dụ sử dụng thư viện nội bộ
Hướng dẫn triển khai CI/CD
Tài liệu onboarding nhanh chóng cho thành viên mới
Giúp duy trì kiến thức dự án lâu dài, nhất quán
5.3 Chuẩn Hóa Tài Liệu
Kết hợp với các instruction files và chat modes, bạn hoàn toàn có thể bắt buộc định dạng tài liệu chuẩn mực cho toàn đội, giúp tăng cường khả năng tái sử dụng và hiểu biết chung.
Kết Luận
AI-assisted development không đơn thuần chỉ là công nghệ mới mà còn là một phương pháp làm việc có kỷ luật.
Sự thành công nằm ở môi trường xung quanh công cụ AI:
Instruction files định nghĩa chuẩn mực
Custom chat modes chuẩn hóa quy trình lặp lại
Mẫu code tham chiếu dẫn dắt tính đồng nhất
Testing sớm kiểm tra giả định
và hệ thống tài liệu rõ ràng, dễ hiểu
Khi được xem như một cộng tác viên thay vì "phím tắt", AI giúp nhà phát triển thực hiện ý tưởng nhanh hơn, tập trung vào những phần cần tư duy sâu hơn như kiến trúc, trải nghiệm người dùng và phát triển đội nhóm.
Đó chính là chìa khóa dẫn đến sự thành công bền vững trong phát triển phần mềm hiện đại.