Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Hãy học cách tạo ra code chất lượng sản phẩm với AI - không phải những ví dụ đơn giản, mà là code phù hợp với phong cách, mẫu và quy ước của codebase của bạn.
Đây là lỗi phổ biến nhất mà các nhà phát triển mắc phải khi tạo code bằng AI: họ nhập một prompt mơ hồ, nhận lại 50 dòng code chung chung, dán vào và dành cả giờ tiếp theo để sửa chữa cho phù hợp với codebase của họ.
Đó không phải là phát triển có sự hỗ trợ của AI. Đó là phát triển bị AI cản trở.
Giải pháp không phải là AI tốt hơn, mà là prompt tốt hơn. Khi bạn cung cấp cho AI ngữ cảnh phù hợp, nó không chỉ tạo ra code - mà còn tạo ra code trông giống như do chính nhóm của bạn viết.
Hãy để bài viết chỉ cho bạn sự khác biệt.
📍 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.
Viết một hàm để xử lý việc đăng ký người dùng.
✏️ 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 đầu vào mơ hồ sẽ tạo ra kết quả đầu ra 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 vào prompt ở trên. Hãy đọc kỹ và coi đó là bản nháp, không phải là câu trả lời cuối cùng.
📌 Nên làm gì với kết quả đầu ra: Lưu phản hồi vào file Notes. Chọn gợi ý 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ả mọi thứ cùng một lúc.
⚠️ Nếu thấy không ổn: Nếu các gợi ý có vẻ chung chung, hãy dán nội dung này: "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 đã thiếu [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ạn sẽ nhận được một cái gì đó chung chung. Có thể là Express.js, có thể là Flask, hoặc có thể là một cái gì đó không dùng framework nào cả. Nó sẽ sử dụng các quy ước mà bạn không tuân theo và những mẫu không khớp với codebase của bạn.
Viết một endpoint đăng ký người dùng cho API Express.js của chúng tôi.
Các mẫu của chúng tôi:
- Chúng tôi sử dụng TypeScript với chế độ strict
- Controller là các lớp với những phương thức tĩnh
- Xác thực sử dụng Zod schema
- Lỗi ném ra AppError(statusCode, message)
- Mật khẩu được mã hóa bằng bcrypt (12 vòng)
- Phản hồi tuân theo { success: boolean, data?: T, error?: string }
Đây là một endpoint hiện có để tham khảo:
static async login(req: Request, res: Response) {
const { email, password } = LoginSchema.parse(req.body);
const user = await UserRepository.findByEmail(email);
if (!user) throw new AppError(401, 'Invalid credentials');
const valid = await bcrypt.compare(password, user.passwordHash);
if (!valid) throw new AppError(401, 'Invalid credentials');
const token = generateToken(user.id);
res.json({ success: true, data: { token, user: sanitize(user) } });
}
Viết phương thức đăng ký theo cùng một mẫu.Prompt thứ hai tạo ra code được đưa thẳng vào codebase của bạn. Cùng một mẫu, cùng cách xử lý lỗi, cùng định dạng phản hồi. Tại sao ư? Bởi vì bạn đã cho AI thấy chính xác "đúng" trông như thế nào.
Khi tạo code, hãy nghĩ về ngữ cảnh ở ba lớp:
Bạn đang sử dụng ngăn xếp nào? Nhóm của bạn tuân theo những quy ước nào? Những mẫu nào đã được thiết lập?
Dự án: API REST Node.js/TypeScript
Framework: Express với mô hình middleware
Cơ sở dữ liệu: PostgreSQL thông qua Prisma ORM
Xác thực: JWT với token làm mới
Test: Jest + SupertestBạn không cần lặp lại điều này mỗi lần - nhưng đối với các cuộc hội thoại AI mới, tóm tắt ngắn gọn dự án sẽ tiết kiệm rất nhiều thời gian trao đổi qua lại.
Code hiện có nào liên quan? Đây là ngữ cảnh mạnh mẽ nhất bạn có thể cung cấp. Dán vào:
File bạn đang thêm vào (hoặc ít nhất là các phần liên quan)
Các giao diện hoặc kiểu liên quan
Các hàm tương tự thể hiện mô hình của bạn
Các schema hoặc mô hình cơ sở dữ liệu liên quan
Điều gì cụ thể cần phải xảy ra? Hãy cụ thể hơn:
Thêm endpoint PATCH /users/:id/preferences với các chức năng sau:
- Chấp nhận cập nhật một phần tùy chọn người dùng
- Xác thực rằng notification_email là email hợp lệ nếu được cung cấp
- Xác thực rằng theme là một trong các giá trị: 'light', 'dark', 'system'
- Trả về đối tượng tùy chọn đã cập nhật
- Yêu cầu xác thực (sử dụng authMiddleware của chúng tôi)Các tác vụ lớn thường cho kết quả kém hơn những tác vụ nhỏ. Lý do là: Khi bạn yêu cầu toàn bộ một tính năng cùng một lúc, AI phải xử lý quá nhiều vấn đề - kiểu dữ liệu, xác thực, logic nghiệp vụ, xử lý lỗi, truy vấn cơ sở dữ liệu, định dạng phản hồi.
Thay vào đó, hãy chia nhỏ nó ra:
Dựa trên Prisma schema của chúng ta cho người dùng, hãy tạo một schema xác thực Zod
để cập nhật tùy chọn người dùng.
Các trường: theme (sáng/tối/hệ thống), notification_email
(email hợp lệ), language (code ISO 639-1).
Tất cả các trường đều tùy chọn cho những bản cập nhật một phần.Viết phương thức updatePreferences cho UserService.
Nó nên chấp nhận userId và đối tượng tùy chọn một phần đã được xác thực.
Sử dụng mẫu hiện có của chúng ta từ
UserService.updateProfile (được hiển thị bên dưới).
[Dán phương thức updateProfile]Tạo phương thức controller và đăng ký định tuyến
cho PATCH /users/:id/preferences. Làm theo mẫu
từ các định tuyến người dùng hiện có của chúng ta (hiển thị bên dưới).
[Dán file định tuyến liên quan]Mỗi phần đều được tập trung. Mỗi phần được xây dựng dựa trên kết quả đã được xác minh từ bước trước. Và nếu có gì đó sai, bạn sẽ biết chính xác ở đâu.
Đây là một prompt mà một nhà phát triển có thể viết. Bạn sẽ cải thiện nó như thế nào?
Tạo một lớp cache cho API của tôi.Hãy nghĩ về những gì còn thiếu. Bạn sẽ thêm gì? Đây là một phiên bản được cải tiến:
Thêm cache phản hồi dựa trên Redis vào API Express của chúng ta.
Yêu cầu:
- Mặc định lưu vào cache các phản hồi GET trong 5 phút
- Sử dụng URL yêu cầu + tham số truy vấn làm cache key
- Bỏ qua việc lưu vào cache cho các yêu cầu đã được xác thực (có tiêu đề Authorization)
- Vô hiệu hóa cache khi POST/PUT/DELETE truy cập cùng một tài nguyên
- Triển khai dưới dạng middleware của Express để có thể thêm vào cho từng route
Mẫu middleware hiện tại của chúng tôi:
[dán ví dụ middleware]
Thiết lập Redis client:
[dán cấu hình Redis]Sự khác biệt là rất lớn.
Code do AI tạo ra đôi khi sẽ sai. Không phải sai nghiêm trọng - thường là sai tinh tế. Dưới đây là các mẫu cần chú ý:
API ảo. AI tạo ra một phương thức không tồn tại trong phiên bản thư viện bạn đang sử dụng. Luôn luôn xác minh rằng các phương thức, tham số và kiểu trả về tồn tại trong phiên bản của bạn.
# AI might generate this for pandas 2.x
df.append(new_row) # WRONG: .append() was removed in pandas 2.0
# Correct:
df = pd.concat([df, pd.DataFrame([new_row])])
Các mẫu lỗi thời. Dữ liệu huấn luyện AI bao gồm code cũ. Bạn có thể nhận được componentWillMount trong React hoặc var trong JavaScript hiện đại. Hãy chỉ định rõ phiên bản của bạn.
Thiếu xử lý lỗi. AI có xu hướng tạo ra trường hợp thành công một cách hoàn hảo và bỏ qua các trường hợp ngoại lệ. Sau khi tạo code, hãy luôn hỏi: "code này thiếu xử lý lỗi nào?"
Giả định sai về dữ liệu của bạn. AI có thể giả định một trường luôn hiện diện trong khi nó có thể là null, hoặc một mảng không bao giờ trống. Hãy đối chiếu với schema thực tế của bạn.
Điểm mù về bảo mật. Code do AI tạo ra đôi khi bỏ qua việc làm sạch đầu vào, sử dụng các phương thức mã hóa lỗi thời hoặc tạo ra những lỗ hổng tấn công SQL injection. Đừng bao giờ tin tưởng để AI tạo những code quan trọng về bảo mật mà không xem xét cẩn thận.
Mô hình tạo code hiệu quả nhất là thể hiện cho AI thấy những gì bạn muốn thông qua các ví dụ thay vì mô tả bằng lời.
Nói (kém hiệu quả hơn):
Viết các hàm tuân theo các nguyên tắc lập trình hàm
với tính bất biến và các hàm thuần túy.
Thể hiện (hiệu quả hơn nhiều):
Hãy viết hàm calculateDiscount theo cùng
một mẫu như các hàm hiện có sau:
const calculateTax = (price: number, rate: number): Money => ({
amount: Math.round(price * rate * 100) / 100,
currency: 'USD',
});
const calculateShipping = (weight: number, zone: Zone): Money => ({
amount: ZONE_RATES[zone] * Math.ceil(weight),
currency: 'USD',
});AI ngay lập tức nắm bắt được các mẫu của bạn: TypeScript với các kiểu dữ liệu rõ ràng, những hàm thuần túy, kiểu trả về Money, quy ước làm tròn. Bạn không cần phải giải thích bất kỳ điều gì trong số đó.
Hãy thử ngay với codebase của bạn:
Chọn một tính năng bạn cần xây dựng (hoặc đã xây dựng gần đây)
Tìm 1-2 thành phần/chức năng tương tự hiện có
Viết một prompt bao gồm:
Ngữ cảnh dự án của bạn (2-3 dòng)
Các ví dụ code hiện có
Các yêu cầu cụ thể cho code mới
Tạo code
So sánh nó với những gì bạn sẽ viết thủ công
Lưu ý những gì AI đã làm đúng và những gì cần điều chỉnh. Khoảng cách đó sẽ thu hẹp đáng kể khi bạn giỏi hơn trong việc cung cấp ngữ cảnh.
Prompt cụ thể kèm ví dụ luôn tốt hơn các yêu cầu mơ hồ
Cung cấp ba lớp ngữ cảnh: dự án, code và nhiệm vụ
Chia nhỏ các nhiệm vụ tạo code phức tạp thành những bước nhỏ hơn, tập trung hơn
Luôn xác minh đầu ra của AI - hãy chú ý đến các API ảo và việc thiếu xử lý lỗi
Cho AI thấy các mẫu của bạn thông qua những ví dụ code, không phải mô tả bằng văn bản
Code do AI tạo ra là bản nháp đầu tiên, không phải sản phẩm cuối cùng
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Xây dựng bộ công cụ tự động hóa Python với AI
TOP ứng dụng ghi chú AI tốt nhất cho học tập và công việc
Cách xây dựng app tự học trên Google AI Studio
Hướng dẫn tạo video intro từ ảnh logo
Phát triển kỹ năng code với sự hỗ trợ của AI
Gỡ và phân tích lỗi code bằng AI
Test và đảm bảo chất lượng code tạo bằng AI
Tạo code thực sự hoạt động với AI
TOP công cụ AI tạo website hiệu quả và dễ sử dụng nhất
Đánh giá và tái cấu trúc code với AI
Prompt tạo video intro từ logo chuyên nghiệp nhiều phong cách
Tạo tài liệu và chia sẻ kiến thức code với AI
TOP công cụ AI tạo video từ ảnh chân thực nhất
Các quyết định về kiến trúc và thiết kế code hệ thống với AI
Chuyển ảnh bài tập thành trò chơi tương tác trên Canva AI
Cách dùng Cursor Rules File (.mdc)
10 công cụ AI miễn phí đang âm thầm giúp hàng triệu người làm việc hiệu quả hơn
TOP công cụ AI tạo bài hát tốt nhất để sáng tác những bản nhạc ấn tượng
Tạo video giới thiệu thành phố siêu điện ảnh trên Flow