Tất cả chúng ta đều đã cảm thấy điều đó: sự khó chịu đột ngột khi trợ lý lập trình AI của bạn từ một lập trình viên thiên tài biến thành một con khỉ phá hoại xóa mã. Mặc dù các trợ lý AI hứa hẹn năng suất mang tính cách mạng, kết quả không nhất quán có thể làm trì trệ quy trình làm việc của bạn. Bài viết này dành cho các nhà phát triển muốn khai thác hiệu quả sức mạnh của các công cụ lập trình AI như Windsurf hoặc Cursor. Bạn sẽ học được một quy trình chi tiết, từng bước—hoàn chỉnh với các quy tắc vàng, mẫu lập kế hoạch và ví dụ thực tế—để tạo ra mã chất lượng cao một cách nhất quán và tăng tốc độ phát triển của bạn một cách đáng kể.
Nghịch Lý Lập Trình AI: Thiên Tài hay Hỗn Loạn?
Mọi người đều biết trợ lý lập trình AI đang thay đổi cuộc chơi. Nếu bạn không sử dụng một trợ lý như vậy, bạn có nguy cơ bị tụt hậu. Nhưng vấn đề là ở chỗ: việc chỉ đơn giản là đưa ra các prompt cho một AI IDE thường dẫn đến sự bực bội. Một phút trước, bạn cảm thấy như đang lập trình cặp (pair-programming) với một kỹ sư cấp cao; phút tiếp theo, nó giống như một đàn khỉ đang gõ phím ngẫu nhiên trên bàn phím của bạn, xóa mã quan trọng hoặc triển khai các tính năng kỳ lạ.
Bạn hiểu nỗi đau đó. Để có được kết quả chất lượng cao, nhất quán từ AI, bạn cần một quy trình được xác định rõ ràng. Nếu bạn thiếu quy trình tinh chỉnh đó, hãy ở lại đây. Đến cuối hướng dẫn này, bạn sẽ có một lộ trình rõ ràng để nâng cao khả năng phát triển có sự hỗ trợ của AI.
Tôi sẽ hướng dẫn bạn qua quy trình đầy đủ của mình, từng bước một, bao gồm các chi tiết cụ thể. Quy trình này được thiết kế để:
- Đơn giản: Không có thiết lập quá phức tạp.
- Thực tế: Chúng ta sẽ minh họa nó bằng cách xây dựng một ví dụ thực tế: một server Supabase MCP.
- Phổ quát: Có thể thích ứng bất kể tech stack hoặc AI IDE cụ thể của bạn.
Cùng bắt đầu nào!
Cẩm Nang Lập Trình AI Của Bạn: Tổng Quan Quy Trình & Tài Nguyên
Toàn bộ quy trình này được ghi lại trong một hướng dẫn có thể chia sẻ. Chúng ta sẽ tham chiếu đến nó trong suốt bài viết này, vì vậy hãy thoải mái sử dụng nó như tài nguyên của riêng bạn:
- Tài liệu Quy trình Lập trình AI Đầy đủ: Xem Google Doc
Trọng tâm của quy trình này là các Quy Tắc Vàng.
Các Quy Tắc Vàng cho Lập Trình AI
Những nguyên tắc này là nền tảng cho toàn bộ quy trình và là chìa khóa để có được kết quả nhất quán:
- Sử dụng Tài liệu Markdown Cấp cao: Duy trì các tệp như
planning.md
vàtasks.md
chứa kế hoạch dự án, nhiệm vụ, hướng dẫn cài đặt và các liên kết tài liệu quan trọng. Sử dụng chúng để cung cấp ngữ cảnh cho LLM (Mô hình Ngôn ngữ Lớn) trong suốt quá trình phát triển. - Đừng Làm Quá Tải LLM: Độ dài ngữ cảnh rất quan trọng. Các cửa sổ ngữ cảnh dài làm tăng khả năng xảy ra ảo giác (hallucinations) và lỗi.
- Giữ các tệp mã dưới ~500 dòng.
- Bắt đầu các cuộc trò chuyện mới thường xuyên.
- Yêu cầu LLM chỉ thực hiện một tính năng hoặc nhiệm vụ cho mỗi prompt.
- Viết Test: Luôn yêu cầu AI viết test cho mã của nó, lý tưởng nhất là sau khi triển khai mỗi tính năng mới. Điều này rất quan trọng để xác minh tính đúng đắn và duy trì chất lượng.
- Hãy Cụ Thể: Cung cấp hướng dẫn rõ ràng, chi tiết. Đừng chỉ mô tả mục tiêu cấp cao; hãy chỉ định công nghệ, thư viện, định dạng đầu ra mong muốn và các ràng buộc.
- Viết Tài liệu & Bình luận Song song: Yêu cầu LLM cập nhật tài liệu (cả các tệp cấp cao và bình luận nội tuyến trong mã) liên tục. Điều này hỗ trợ cả sự hiểu biết của bạn và khả năng duy trì ngữ cảnh của AI.
- Tự Thực Hiện Bảo Mật: Không bao giờ tin tưởng LLM với thông tin nhạy cảm như API keys hoặc cấu hình bảo mật cơ sở dữ liệu. Bạn phải tự mình hiểu và quản lý các khía cạnh bảo mật. Hiểu rõ mã mà AI tạo ra, đặc biệt là các phần nhạy cảm về bảo mật.
Cảnh báo: Chỉ dựa vào AI cho bảo mật là rất nguy hiểm. Có những câu chuyện kinh dị trên mạng – đừng trở thành một trong số đó!
Bây giờ, hãy xem các quy tắc này chuyển thành một quy trình theo từng giai đoạn như thế nào.
Giai Đoạn 1: Lập Kế Hoạch - Thiết Lập Định Hướng
Trước khi viết một dòng mã nào, hãy tạo hai tệp Markdown thiết yếu:
planning.md
: Ghi lại tầm nhìn cấp cao, kiến trúc, tech stack, các ràng buộc và thông tin quan trọng khác của dự án. Tệp này đóng vai trò như một tệp ngữ cảnh liên tục cho LLM.task.md
: Theo dõi tất cả các nhiệm vụ phát triển – đã hoàn thành, đang chờ xử lý và đang tiến hành. LLM có thể cập nhật tệp này khi nó hoạt động, cho phép bạn đóng vai trò là người quản lý dự án.
Tôi thường sử dụng một trợ lý chatbot như Claude để tạo bản nháp ban đầu của các tệp này trước cả khi mở AI IDE của mình. Đối với ví dụ về server Supabase MCP, một prompt như thế này hoạt động tốt:
Plan a project to build a Supabase MCP server in Python.
The server should allow interacting with Supabase tables (create, read, update, delete records).
Use the Brave MCP server implementation as a reference for the structure if possible: [Link to Brave MCP server repo if available, or describe structure].
Output two markdown files:
1. planning.md: Include project overview, scope, technical architecture, technology stack (Python, supabase-py), constraints, and potential challenges.
2. task.md: Outline the necessary steps/tasks to build and test this server. Start with setup, then core CRUD functionalities, testing, and documentation.
Xem xét và tinh chỉnh kết quả đầu ra của AI. Loại bỏ các định nghĩa soạn sẵn và đảm bảo kế hoạch phản ánh chính xác mục tiêu của bạn.
Mẹo Chuyên Nghiệp: Sử dụng nhiều LLM khác nhau (ví dụ: Claude, Deepseek Coder, v.v.) để lập kế hoạch. Cung cấp cho mỗi LLM cùng một prompt và tổng hợp những ý tưởng tốt nhất từ kết quả đầu ra của chúng để có một kế hoạch mạnh mẽ hơn.
Giai Đoạn 2: Quy Tắc Toàn Cục - Dạy Trợ Lý AI Của Bạn
Quy tắc toàn cục hoạt động như các system prompt cho AI IDE của bạn. Chúng cung cấp các hướng dẫn cấp cao mà AI nên tuân theo một cách nhất quán mà không cần lặp lại trong mỗi prompt. Hãy coi chúng như những mệnh lệnh thường trực.
Ví dụ: bạn có thể hướng dẫn AI luôn đọc planning.md
khi bắt đầu một cuộc trò chuyện mới hoặc luôn tạo test sau khi triển khai một tính năng.
Tài liệu quy trình chứa một mẫu bạn có thể điều chỉnh. Đây là cách thiết lập chúng trong Windsurf (các IDE khác có các tính năng tương tự):
- Sao chép văn bản quy tắc toàn cục từ mẫu.
- Trong Windsurf, đi tới "Additional Options" -> "Manage Memories".
- Chọn "Global Rules" (áp dụng cho tất cả các dự án) hoặc "Workspace Rules" (chỉ áp dụng cho dự án hiện tại). Workspace rules thường tốt hơn cho các yêu cầu cụ thể của dự án.
- Dán các quy tắc đã điều chỉnh của bạn.
Các quy tắc này thường bao gồm việc sử dụng tệp markdown, tuân thủ giới hạn độ dài tệp, quy trình kiểm thử, phong cách lập trình, bảo trì README, v.v. Thiết lập những quy tắc này giúp đơn giản hóa đáng kể các prompt tiếp theo của bạn.
Giai Đoạn 3: Cấu Hình Các Server MCP - Mở Rộng Khả Năng Của AI
MCP (Membrane Control Protocol) cung cấp các công cụ (server) giúp tăng cường khả năng của AI IDE, cho phép nó tương tác với các hệ thống bên ngoài như hệ thống tệp của bạn, web hoặc Git.
Ba server MCP này là cần thiết:
- File System Server: Cho phép AI truy cập các tệp và thư mục bên ngoài thư mục dự án hiện tại.
- Web Search Server (ví dụ: Brave Search API): Cho phép tra cứu web để tìm tài liệu, ví dụ hoặc nghiên cứu. Một số IDE có tính năng tìm kiếm tích hợp, nhưng các server chuyên dụng có thể cung cấp các tính năng nâng cao hơn như tóm tắt do AI hỗ trợ.
- Git Server: Cho phép AI tương tác với Git repository của bạn (commit, checkout branches, v.v.).
Cực kỳ quan trọng: Luôn sử dụng Git! Thiết lập một repository cho mọi dự án. Yêu cầu AI thực hiện các commit thường xuyên (
Make a git commit to save the current state
). AI sẽ làm hỏng mọi thứ đôi khi; Git là mạng lưới an toàn của bạn để hoàn nguyên về các phiên bản hoạt động.
Tài liệu quy trình bao gồm các liên kết và hướng dẫn cài đặt cho các server này trong các IDE khác nhau. Trong Windsurf, bạn cấu hình chúng trong tệp MCP config.json
.
Giai Đoạn 4: Prompt Ban Đầu - Khởi Động Quá Trình Phát Triển
Với kế hoạch, quy tắc và các server MCP đã sẵn sàng, đã đến lúc cho prompt ban đầu quan trọng. Hãy nhớ Quy Tắc Vàng #4: Hãy Cụ Thể. Cung cấp ngữ cảnh, tài liệu và ví dụ.
Đây là các cách để cung cấp ngữ cảnh cho AI:
- Tính năng Tích hợp của IDE: Sử dụng các lệnh như
@mcp
trong Windsurf để bao gồm tài liệu cụ thể. - Tìm kiếm Web qua MCP: Yêu cầu AI sử dụng server tìm kiếm web:
Search the web for documentation on the Supabase Python client.
- Cung cấp Thủ công: Dán trực tiếp các liên kết đến tài liệu, ví dụ GitHub hoặc các đoạn mã liên quan vào prompt.
Đây là prompt ban đầu được sử dụng cho ví dụ server Supabase MCP:
Create a Supabase MCP server in Python based on the planning.md and task.md files.
Refer to the official MCP documentation [@mcp] and the Superbase Python client documentation [Search web if needed, or provide link: https://github.com/supabase-community/supabase-py].
Use this existing Python MCP server implementation as a structural example: [https://github.com/different-ai/brave-mcp]
Implement the core functionalities outlined in task.md:
- Connect to Supabase using environment variables (SUPABASE_URL, SUPABASE_KEY - I will handle setting these).
- Implement tools for:
- Creating records in a specified table.
- Reading records from a specified table (allow filtering).
- Updating records in a specified table.
- Deleting records from a specified table.
Follow Python best practices and include type hints. Generate a requirements.txt file.
Một AI IDE như Windsurf sẽ xử lý điều này bằng cách:
- Đọc
planning.md
vàtask.md
(theo quy tắc toàn cục). - Kết hợp ngữ cảnh được chỉ định (
@mcp
). - Phân tích các liên kết/ví dụ được cung cấp.
- Tạo cấu trúc mã ban đầu (
server.py
,requirements.txt
, có thể làtests/
). - Cập nhật
task.md
.
Kết quả trong ví dụ là một tệp server.py
gần như hoàn chỉnh với các công cụ CRUD, chứng tỏ sức mạnh của việc cung cấp ngữ cảnh phong phú.
Giai Đoạn 5: Kiểm Thử Bản Build Đầu Tiên
Trước khi lặp lại, kiểm thử phiên bản đầu tiên. Đối với server Supabase MCP:
- Cấu hình: Thiết lập server mới trong một ứng dụng tương thích MCP (như Claude Desktop). Điều này thường liên quan đến việc chỉnh sửa tệp cấu hình để trỏ đến tập lệnh server và cung cấp các biến môi trường.
- Khởi động lại: Tải lại ứng dụng.
- Xác minh: Kiểm tra xem các công cụ Supabase mới có xuất hiện trong ứng dụng không.
- Kiểm thử: Gửi một prompt để sử dụng một trong các công cụ (ví dụ:
What records do I have in my document_meta_data table?
).
Trong phần trình diễn, server đã hoạt động chính xác ngay lần thử đầu tiên – một minh chứng cho quy trình có cấu trúc.
Giai Đoạn 6: Quản Lý Phiên Bản với Git - Lưu Tiến Trình Của Bạn!
Bạn đã có một phiên bản cơ sở hoạt động. Hãy commit nó!
- Khởi tạo Git:
git init
(nếu chưa thực hiện). - Tạo
.gitignore
: Yêu cầu AI giúp tạo một tệp cho các dự án Python. - Chuẩn bị tệp:
git add .
- Commit:
git commit -m "Initial implementation of Supabase MCP server"
Dùng Git MCP server hoặc terminal của bạn. Điểm kiểm tra này là vô giá trước khi thêm test hoặc tính năng.
Giai Đoạn 7: Lặp Lại và Kiểm Thử - Tinh Chỉnh và Xác Minh
Bây giờ, lặp lại dựa trên task.md
của bạn. Hãy nhớ Quy Tắc Vàng #2: Mỗi lần một thay đổi.
Giải quyết mọi mục còn thiếu, như các bài test.
Viết Test: Quy tắc toàn cục của bạn sẽ hướng dẫn AI:
- Sử dụng thư mục
tests/
. - Mô phỏng (mock) các phụ thuộc bên ngoài (cơ sở dữ liệu, API) để kiểm thử nhanh chóng, độc lập.
- Bao gồm các trường hợp thành công, xử lý lỗi và các trường hợp biên.
Yêu cầu AI:
Create unit tests for server.py in the tests directory. Follow the testing guidelines in the global rules.
AI sẽ tạo các tệp test (thường dài hơn mã nguồn!). Chạy chúng (ví dụ: pytest tests/
) và lặp lại với AI để sửa bất kỳ lỗi nào.
Giai Đoạn 8: Lặp Lại Thêm và Viết Tài Liệu
Tiếp tục tinh chỉnh:
- Thêm các tính năng mới từng cái một.
- Yêu cầu AI tạo hoặc cập nhật
README.md
với hướng dẫn cài đặt và sử dụng. - Đảm bảo
planning.md
vàtask.md
luôn được cập nhật. Điều này duy trì ngữ cảnh cho AI, đặc biệt là qua các phiên trò chuyện khác nhau.
Giai Đoạn 9: Triển Khai - Chia Sẻ Sản Phẩm Của Bạn
Khi đã sẵn sàng, hãy yêu cầu AI giúp đóng gói dự án của bạn. Docker rất tuyệt vời cho việc này, và các LLM thường rất giỏi trong việc tạo Dockerfiles.
Prompt Ví dụ:
Write a Dockerfile for this Python MCP server. Use requirements.txt for dependencies. Also, provide the Docker commands to build and run the container.
AI có thể tạo Dockerfile
và các lệnh cần thiết. Cập nhật README.md
của bạn với hướng dẫn Docker.
Dự án Ví dụ: Bạn có thể tìm thấy server Supabase MCP hoàn chỉnh được xây dựng bằng quy trình này, bao gồm cả Dockerfile, trên GitHub: https://github.com/coleam00/supabase-mcp
Kết Luận: Hướng Tới Lập Trình AI Nhất Quán
Chúng ta đã đi qua một quy trình có cấu trúc để phát triển được hỗ trợ bởi AI: từ lập kế hoạch tỉ mỉ với các tệp markdown và quy tắc vàng, thông qua việc đưa ra prompt cụ thể, kiểm thử nghiêm ngặt, quản lý phiên bản, tinh chỉnh lặp đi lặp lại và cuối cùng là triển khai. Quy trình này cung cấp các lan can bảo vệ giúp biến các trợ lý AI khó đoán thành các đối tác lập trình đáng tin cậy, dẫn đến kết quả nhất quán, chất lượng cao hơn.
Mặc dù quy trình này cung cấp một nền tảng vững chắc, hãy nhớ rằng quy trình tốt nhất là quy trình phù hợp với bạn. Hãy thử nghiệm, điều chỉnh các bước này cho phù hợp với nhu cầu cụ thể của bạn và tận hưởng trải nghiệm lập trình với AI hiệu quả hơn và ít gây bực bội hơn.