Cách dùng ChatGPT viết code
Bùi Tấn Lực
- 105
- 03/10/2026
ChatGPT có thể hỗ trợ nhiều công việc lập trình như viết đoạn code mới, giải thích mã nguồn, tìm lỗi, tối ưu cấu trúc, chuyển đổi ngôn ngữ lập trình và xây dựng từng phần của một tính năng. Tuy nhiên, kết quả nhận được phụ thuộc rất nhiều vào cách mô tả yêu cầu. Một yêu cầu càng rõ về mục tiêu, môi trường chạy và dữ liệu đầu vào thì mã nguồn tạo ra càng sát với nhu cầu thực tế.
Thay vì chỉ yêu cầu “viết code cho tôi”, nên xem ChatGPT như một trợ lý lập trình có thể cùng phân tích bài toán, đề xuất hướng xử lý và hoàn thiện từng phần. Cách làm này đặc biệt hữu ích khi dự án có nhiều yêu cầu hoặc cần sửa một đoạn mã đang hoạt động nhưng còn lỗi.

ChatGPT có thể hỗ trợ những công việc lập trình nào?
ChatGPT có thể tham gia vào nhiều giai đoạn khác nhau của quá trình phát triển phần mềm. Mức độ hỗ trợ không chỉ nằm ở việc tạo ra một đoạn mã hoàn chỉnh mà còn bao gồm phân tích vấn đề trước khi bắt đầu viết.
- Tạo code mới: xây dựng hàm, class, API, truy vấn cơ sở dữ liệu hoặc một tính năng theo yêu cầu.
- Giải thích code: phân tích từng đoạn mã để người học hoặc lập trình viên dễ hiểu cách chương trình hoạt động.
- Tìm và sửa lỗi: phân tích thông báo lỗi, xác định nguyên nhân có thể xảy ra và đề xuất cách khắc phục.
- Tối ưu code: cải thiện cấu trúc, khả năng đọc, hiệu suất hoặc khả năng bảo trì.
- Chuyển đổi code: chuyển logic từ một ngôn ngữ hoặc cách triển khai sang dạng khác khi yêu cầu phù hợp.
- Viết truy vấn: hỗ trợ SQL và các thao tác liên quan đến dữ liệu.
- Viết tài liệu: tạo chú thích, hướng dẫn sử dụng hàm, mô tả API hoặc tài liệu kỹ thuật.
- Học lập trình: giải thích khái niệm bằng ví dụ và đưa ra bài tập thực hành theo từng mức độ.
Điểm quan trọng là không nên mặc định rằng đoạn code được tạo ra luôn đúng. Mã nguồn vẫn cần được kiểm tra trong đúng môi trường chạy, đặc biệt khi liên quan đến dữ liệu thật, xác thực người dùng, thanh toán, quyền truy cập hoặc các chức năng quan trọng của hệ thống.
Cách đặt yêu cầu để nhận được code sát với bài toán
Chất lượng câu trả lời thường thay đổi đáng kể khi yêu cầu được mô tả đầy đủ. Một yêu cầu tốt nên cho ChatGPT biết ít nhất mục tiêu cần đạt, công nghệ đang sử dụng, dữ liệu đầu vào, kết quả mong muốn và những giới hạn cần tuân thủ.
Ví dụ, yêu cầu “viết PHP xử lý form đăng nhập” còn khá chung chung. Có thể mô tả cụ thể hơn rằng hệ thống đang sử dụng PHP và MySQL, form nhận email cùng mật khẩu, dữ liệu nằm trong một bảng cụ thể, cần kiểm tra tài khoản tồn tại, sử dụng phương pháp xác thực an toàn và trả về thông báo lỗi khi thông tin không hợp lệ.
Khi có đủ bối cảnh, ChatGPT có cơ sở để xây dựng giải pháp phù hợp thay vì phải tự đoán những phần còn thiếu.
Nêu rõ ngôn ngữ và môi trường chạy
Hãy cho biết chính xác ngôn ngữ lập trình và phiên bản nếu phiên bản đó ảnh hưởng đến cách triển khai. Với ứng dụng web, có thể bổ sung framework, hệ quản trị cơ sở dữ liệu, máy chủ hoặc thư viện đang sử dụng.
Chẳng hạn, PHP thuần, Laravel và Node.js có thể cùng giải quyết một bài toán nhưng cách tổ chức code hoàn toàn khác nhau. Nếu không nói rõ môi trường, câu trả lời có thể sử dụng phương pháp không phù hợp với dự án hiện tại.
Mô tả đầu vào và đầu ra
Đây là một trong những thông tin quan trọng nhất khi yêu cầu viết hàm hoặc xử lý dữ liệu. Hãy mô tả dữ liệu mà chương trình nhận vào và kết quả cần trả về.
Ví dụ, thay vì yêu cầu “viết hàm lọc sản phẩm”, có thể nói rằng hàm nhận danh sách sản phẩm, giá tối thiểu và giá tối đa, sau đó trả về những sản phẩm nằm trong khoảng giá. Nếu có trường hợp đặc biệt như giá trị rỗng, dữ liệu sai kiểu hoặc danh sách không có phần tử, cũng nên nêu rõ cách xử lý mong muốn.
Nêu các điều kiện và giới hạn cần giữ nguyên
Nếu đang sửa một hệ thống có sẵn, hãy cho biết phần nào được phép thay đổi và phần nào phải giữ nguyên. Điều này giúp hạn chế việc ChatGPT viết lại quá nhiều code khiến những chức năng đang hoạt động bị ảnh hưởng.
Có thể yêu cầu giữ nguyên tên biến, cấu trúc dữ liệu, tên API, giao diện hiện tại hoặc chỉ sửa đúng hàm đang gặp lỗi. Với dự án thực tế, phạm vi thay đổi càng rõ thì việc kiểm tra kết quả càng dễ dàng.
Công thức yêu cầu code dễ áp dụng
Một yêu cầu lập trình có thể được xây dựng theo trình tự: mục tiêu → công nghệ → dữ liệu → yêu cầu xử lý → kết quả → giới hạn. Không nhất thiết lúc nào cũng phải cung cấp đủ tất cả các phần, nhưng những thông tin liên quan trực tiếp đến bài toán nên được đưa vào.
Có thể hình dung một yêu cầu tốt như sau:
Hãy viết một hàm PHP xử lý danh sách sản phẩm.
Mục tiêu:
- Lọc sản phẩm theo khoảng giá.
- Chỉ lấy sản phẩm đang hoạt động.
Đầu vào:
- Mảng sản phẩm có id, name, price, status.
- Giá tối thiểu.
- Giá tối đa.
Kết quả:
- Trả về mảng sản phẩm phù hợp.
Yêu cầu:
- PHP thuần.
- Không thay đổi dữ liệu gốc.
- Nếu khoảng giá không hợp lệ thì trả về mảng rỗng.
- Giải thích ngắn gọn cách hoạt động sau phần code.
Cấu trúc này rõ hơn rất nhiều so với một câu yêu cầu ngắn như “viết PHP lọc sản phẩm”. Khi cần code dùng trực tiếp trong dự án, có thể tiếp tục bổ sung cấu trúc thư mục, tên bảng, tên cột hoặc đoạn code hiện tại để kết quả bám sát hệ thống hơn.
Có nên yêu cầu ChatGPT viết toàn bộ chương trình một lần?
Với những bài toán nhỏ, việc yêu cầu tạo một đoạn code hoàn chỉnh trong một lần có thể phù hợp. Nhưng với ứng dụng lớn, cách chia nhỏ vấn đề thường dễ kiểm soát hơn.
Ví dụ một hệ thống quản lý thành viên có thể được tách thành các phần như thiết kế dữ liệu, đăng ký tài khoản, đăng nhập, phân quyền, quản lý hồ sơ và xử lý các trường hợp lỗi. Mỗi phần được xác định rõ trước khi ghép lại sẽ giúp giảm tình trạng code dài nhưng thiếu logic hoặc khó kiểm tra.
Đặc biệt, nếu dự án đã có code sẵn, nên đưa từng phần liên quan vào cuộc trao đổi thay vì yêu cầu viết lại toàn bộ hệ thống. ChatGPT có thể tập trung vào đúng vị trí cần thay đổi và giữ lại những thành phần không liên quan.
Cách dùng ChatGPT khi đã có code sẵn
Khi gặp lỗi trong dự án, đừng chỉ gửi thông báo lỗi rồi yêu cầu sửa. Hãy cung cấp đoạn code liên quan, mô tả hành vi hiện tại và kết quả mà bạn mong muốn.
Một yêu cầu hữu ích có thể gồm ba phần: code hiện tại, vấn đề đang xảy ra và kết quả đúng cần đạt được. Nếu có thông báo lỗi cụ thể, nên giữ nguyên nội dung lỗi thay vì diễn giải lại.
Ví dụ, nếu một truy vấn PHP không trả về dữ liệu, hãy cung cấp đoạn PHP tạo truy vấn, cấu trúc dữ liệu liên quan và thông báo lỗi nếu có. ChatGPT khi đó có thể phân tích luồng xử lý thay vì chỉ đoán nguyên nhân.
Yêu cầu phân tích trước khi sửa
Trong trường hợp code phức tạp, có thể yêu cầu ChatGPT giải thích nguyên nhân trước rồi mới đưa ra phiên bản sửa. Cách này giúp người lập trình hiểu vấn đề và tránh áp dụng một thay đổi mà chưa biết nó ảnh hưởng đến phần nào.
Đối với lỗi khó xác định, có thể yêu cầu liệt kê các vị trí có khả năng gây lỗi, giải thích dấu hiệu nhận biết từng trường hợp và sau đó đề xuất cách kiểm tra. Đây là cách sử dụng hữu ích hơn việc chỉ yêu cầu “sửa lỗi giúp tôi”.
Yêu cầu chỉ ra phần code đã thay đổi
Khi chỉnh sửa một file dài, nên yêu cầu giữ nguyên những phần không liên quan và đánh dấu rõ phần được thay đổi. Điều này giúp dễ so sánh với phiên bản cũ và giảm nguy cơ vô tình ghi đè những logic đang hoạt động.
Nếu thay đổi nhiều phần, có thể yêu cầu giải thích ngắn gọn lý do của từng thay đổi. Khi đó, code không chỉ được sửa mà còn trở thành tài liệu giúp người phát triển hiểu rõ hơn về hệ thống.
Cách yêu cầu ChatGPT giải thích code để dễ học
ChatGPT không chỉ phù hợp với người đã biết lập trình. Người mới học có thể sử dụng nó để phân tích code theo từng bước thay vì chỉ sao chép kết quả.
Thay vì yêu cầu “giải thích đoạn code này”, hãy xác định mức độ kiến thức mong muốn. Ví dụ có thể yêu cầu giải thích dành cho người mới học, giải thích từng câu lệnh, chỉ ra dữ liệu thay đổi như thế nào sau mỗi bước hoặc mô tả luồng chạy từ đầu đến cuối.
Cách này đặc biệt hữu ích khi học những khái niệm khó như vòng lặp, hàm, class, bất đồng bộ, API, truy vấn cơ sở dữ liệu hoặc xử lý dữ liệu JSON.
Yêu cầu giải thích bằng ví dụ nhỏ hơn
Nếu một đoạn code thực tế quá dài, hãy yêu cầu rút logic thành một ví dụ đơn giản trước. Sau khi hiểu nguyên lý, có thể quay lại đoạn code ban đầu để xem cách nguyên lý đó được áp dụng trong dự án.
Phương pháp này giúp việc học đi từ khái niệm đến thực hành, thay vì phải hiểu toàn bộ một hệ thống ngay từ đầu.
Cách dùng ChatGPT để tìm và sửa lỗi trong code
Debug là một trong những trường hợp ChatGPT có thể hỗ trợ hiệu quả nếu cung cấp đủ thông tin. Thay vì chỉ gửi một câu như “code bị lỗi”, nên đưa cả đoạn mã liên quan, thông báo lỗi, thao tác đã thực hiện và kết quả thực tế.
Một lỗi có thể xuất phát từ cú pháp, dữ liệu đầu vào, điều kiện xử lý, môi trường chạy hoặc sự tương tác giữa nhiều thành phần. Vì vậy, việc cung cấp bối cảnh giúp quá trình phân tích có cơ sở hơn.
Cung cấp thông báo lỗi chính xác
Nếu chương trình hiển thị thông báo lỗi, hãy gửi nguyên văn thông báo đó cùng vị trí file và dòng code nếu có. Không nên tự thay đổi nội dung lỗi vì một chi tiết nhỏ đôi khi có thể giúp xác định nguyên nhân.
Với lỗi xảy ra trên trình duyệt, có thể cung cấp thông báo từ Developer Tools. Với lỗi phía máy chủ, nên cung cấp log liên quan nếu không chứa thông tin nhạy cảm như mật khẩu, khóa API hoặc dữ liệu cá nhân.
Mô tả kết quả thực tế và kết quả mong muốn
Hai thông tin này giúp phân biệt giữa lỗi kỹ thuật và hành vi chưa được triển khai đúng yêu cầu. Ví dụ, nếu người dùng bấm nút nhưng danh sách không thay đổi, cần nói rõ danh sách hiện đang hiển thị gì và đáng lẽ phải hiển thị gì.
Không nên chỉ nói “không chạy”. Một mô tả cụ thể như “khi truyền ID bằng 15 thì API trả về dữ liệu, nhưng khi truyền ID không tồn tại thì chương trình dừng thay vì trả về thông báo phù hợp” sẽ giúp việc phân tích chính xác hơn.
Yêu cầu tìm nguyên nhân trước khi đưa ra bản sửa
Đối với lỗi quan trọng, có thể yêu cầu ChatGPT phân tích nguyên nhân trước, sau đó mới viết phiên bản sửa. Cách này giúp tránh việc thay đổi code theo kiểu thử và sai mà không hiểu vấn đề nằm ở đâu.
Nếu có nhiều khả năng gây lỗi, hãy yêu cầu phân biệt từng trường hợp bằng cách kiểm tra dữ liệu hoặc luồng thực thi. Khi đã xác định được nguyên nhân, phần sửa code sẽ có cơ sở rõ ràng hơn.
Dùng ChatGPT để cải thiện code hiện có
Không phải lúc nào code cũng cần viết lại từ đầu. Nhiều trường hợp chương trình vẫn hoạt động nhưng khó đọc, có đoạn lặp lại hoặc khó mở rộng. Khi đó, có thể dùng ChatGPT để refactor từng phần.
Trước khi yêu cầu chỉnh sửa, nên xác định mục tiêu cụ thể. Chẳng hạn, muốn giảm code trùng lặp, tách một hàm quá dài, cải thiện cách đặt tên hoặc làm cho một module dễ bảo trì hơn.
Không nên yêu cầu tối ưu một cách chung chung nếu chưa xác định tiêu chí. “Tối ưu code” có thể mang nhiều ý nghĩa khác nhau như tăng tốc độ, giảm truy vấn cơ sở dữ liệu, giảm bộ nhớ hoặc chỉ đơn giản là làm code dễ đọc hơn.
Yêu cầu giữ nguyên hành vi hiện tại
Nếu chương trình đang chạy ổn định, hãy nói rõ rằng việc refactor không được làm thay đổi kết quả đầu ra. Đây là điều quan trọng khi xử lý code đang được sử dụng trong thực tế.
ChatGPT có thể đề xuất cấu trúc mới, nhưng người phát triển vẫn cần kiểm tra các trường hợp biên để chắc chắn hành vi cũ được bảo toàn.
So sánh trước và sau khi tối ưu
Khi nhận được phiên bản mới, có thể yêu cầu giải thích những thay đổi chính và lý do thay đổi. Nếu mục tiêu là hiệu suất, nên yêu cầu chỉ ra phần nào được kỳ vọng cải thiện và cách kiểm tra thay vì mặc định rằng code mới chắc chắn nhanh hơn.
Đối với những tối ưu liên quan đến cơ sở dữ liệu hoặc thuật toán, việc đo lường trên dữ liệu thực tế vẫn quan trọng hơn nhận định dựa trên code.
Cách dùng ChatGPT với cơ sở dữ liệu
ChatGPT có thể hỗ trợ viết SQL, thiết kế câu truy vấn, phân tích quan hệ giữa các bảng và tìm vấn đề trong câu lệnh hiện tại. Tuy nhiên, kết quả phụ thuộc vào cấu trúc dữ liệu được cung cấp.
Khi yêu cầu viết SQL, nên cung cấp tên bảng, các cột quan trọng, kiểu dữ liệu nếu cần và kết quả mong muốn. Nếu có quan hệ giữa nhiều bảng, hãy mô tả khóa liên kết để tránh việc tạo JOIN không đúng.
Đưa cấu trúc bảng thay vì chỉ mô tả bằng lời
Ví dụ, nếu cần lấy danh sách đơn hàng cùng thông tin khách hàng, hãy cung cấp cấu trúc của bảng khách hàng và bảng đơn hàng. ChatGPT sẽ có cơ sở để xác định cột liên kết và xây dựng truy vấn phù hợp.
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
total DECIMAL(10,2),
created_at DATETIME
);
Sau đó có thể yêu cầu lấy những đơn hàng trong một khoảng thời gian, kèm tên khách hàng và tổng tiền. Nếu cần xử lý trường hợp không có đơn hàng, cũng nên nêu rõ kết quả mong muốn.
Yêu cầu kiểm tra các trường hợp dữ liệu đặc biệt
SQL có thể cho kết quả khác với dự kiến khi dữ liệu chứa giá trị NULL, bản ghi trùng, quan hệ không đầy đủ hoặc điều kiện lọc không chính xác. Vì vậy, khi nhờ kiểm tra truy vấn, nên yêu cầu xem xét cả những trường hợp này.
Đặc biệt, không nên đưa dữ liệu thật chứa mật khẩu, token, thông tin thanh toán hoặc thông tin cá nhân nhạy cảm vào cuộc trò chuyện. Có thể thay bằng dữ liệu mẫu nhưng vẫn giữ nguyên cấu trúc cần thiết cho việc phân tích.
Dùng ChatGPT để xây dựng API
Khi tạo API, không nên chỉ yêu cầu “viết API đăng nhập”. Một API hoàn chỉnh còn liên quan đến phương thức HTTP, dữ liệu đầu vào, định dạng phản hồi, xác thực, mã trạng thái và cách xử lý lỗi.
Có thể yêu cầu ChatGPT xây dựng API theo từng lớp. Trước tiên xác định endpoint và dữ liệu cần nhận, sau đó xử lý nghiệp vụ, truy cập dữ liệu và cuối cùng là định dạng phản hồi.
Xác định rõ dữ liệu gửi lên
Ví dụ, một API đăng nhập có thể nhận email và mật khẩu. Cần quy định trường nào bắt buộc, dữ liệu không hợp lệ được xử lý ra sao và phản hồi khi tài khoản không tồn tại như thế nào.
Nếu API sử dụng JSON, hãy nói rõ cấu trúc JSON mong muốn. Việc này giúp tránh tình trạng code phía máy chủ và phía giao diện sử dụng hai định dạng dữ liệu khác nhau.
Quy định cấu trúc phản hồi
Một API dễ sử dụng nên có quy tắc phản hồi nhất quán. Có thể yêu cầu ChatGPT xây dựng cấu trúc gồm trạng thái, thông báo và dữ liệu, đồng thời quy định cách phản hồi khi xảy ra lỗi.
Ví dụ:
{
"success": true,
"message": "Đăng nhập thành công",
"data": {
"id": 15,
"name": "Nguyen Van A"
}
}
Điều quan trọng không phải là sử dụng đúng một cấu trúc cố định, mà là xác định quy tắc thống nhất để phần frontend có thể xử lý phản hồi một cách rõ ràng.
Cách dùng ChatGPT để tạo một tính năng hoàn chỉnh
Với một tính năng lớn, hãy chia công việc thành các bước nhỏ thay vì yêu cầu tạo toàn bộ code trong một lần. Cách này giúp kiểm soát kiến trúc và phát hiện vấn đề sớm hơn.
Ví dụ, một chức năng quản lý sản phẩm có thể được triển khai theo trình tự: xác định dữ liệu, tạo danh sách, thêm sản phẩm, sửa sản phẩm, xóa sản phẩm, tìm kiếm và kiểm tra quyền truy cập.
Sau mỗi bước, nên kiểm tra kết quả trước khi chuyển sang phần tiếp theo. Nếu phát hiện vấn đề, có thể sửa ngay phần đang thực hiện thay vì để lỗi lan sang nhiều module khác.
Yêu cầu xây dựng theo từng phần
Trước tiên hãy yêu cầu ChatGPT đề xuất cấu trúc triển khai. Sau khi thống nhất hướng đi, có thể yêu cầu viết từng thành phần theo đúng cấu trúc đó.
Cách làm này đặc biệt hữu ích với dự án có nhiều file. Người phát triển có thể biết file nào chịu trách nhiệm cho giao diện, xử lý nghiệp vụ, dữ liệu hoặc cấu hình trước khi bắt đầu viết code.
Kiểm tra từng phần trước khi ghép lại
Sau khi tạo một module, hãy chạy thử trong môi trường thực tế. Nếu hoạt động đúng, mới tiếp tục kết nối với module tiếp theo.
Đừng đợi đến khi toàn bộ tính năng hoàn thành mới kiểm tra. Một lỗi nhỏ được phát hiện sớm thường dễ xử lý hơn nhiều so với một lỗi xuất hiện sau khi nhiều thành phần đã phụ thuộc vào nhau.
Cách yêu cầu ChatGPT viết code an toàn hơn
Code chạy được chưa đồng nghĩa với code đã sẵn sàng đưa vào sử dụng. Khi làm việc với dữ liệu người dùng, tài khoản, file hoặc cơ sở dữ liệu, cần đặc biệt chú ý đến bảo mật.
Có thể yêu cầu ChatGPT kiểm tra các vấn đề phổ biến như dữ liệu đầu vào không đáng tin cậy, truy vấn SQL, xác thực quyền truy cập, quản lý phiên đăng nhập, xử lý file và dữ liệu được xuất ra giao diện.
Yêu cầu kiểm tra dữ liệu đầu vào
Mọi dữ liệu nhận từ người dùng nên được xem là dữ liệu chưa đáng tin cậy. Khi viết form, API hoặc chức năng tìm kiếm, hãy yêu cầu kiểm tra dữ liệu trước khi xử lý.
Ví dụ, một giá trị được kỳ vọng là số không nên được sử dụng trực tiếp như thể chắc chắn nó luôn là số. Tương tự, dữ liệu văn bản hiển thị trên trang web cần được xử lý phù hợp với ngữ cảnh để hạn chế nguy cơ bảo mật.
Không đưa thông tin bí mật vào yêu cầu
Khi gửi code cho ChatGPT để phân tích, hãy loại bỏ mật khẩu, khóa bí mật, token, chuỗi kết nối cơ sở dữ liệu hoặc thông tin cá nhân không cần thiết. Có thể thay chúng bằng giá trị giả nhưng vẫn giữ nguyên cấu trúc.
Ví dụ, thay vì cung cấp thông tin xác thực thật, có thể dùng các giá trị minh họa:
$dbHost = 'example-host';
$dbUser = 'example-user';
$dbPass = 'example-password';
$dbName = 'example-database';
Cách này vẫn đủ để phân tích cấu trúc code mà không cần tiết lộ thông tin nhạy cảm.
Cách kiểm tra code do ChatGPT tạo ra
Sau khi nhận code, bước tiếp theo không nên là sao chép ngay vào website hoặc hệ thống đang hoạt động. Hãy đọc qua logic, chạy thử và kiểm tra những trường hợp khác nhau.
Có thể yêu cầu ChatGPT tự rà soát đoạn code theo một danh sách tiêu chí cụ thể, nhưng việc tự kiểm tra trong môi trường chạy thực tế vẫn cần thiết.
Kiểm tra trường hợp bình thường
Trước tiên hãy thử dữ liệu hợp lệ mà chức năng được thiết kế để xử lý. Điều này giúp xác nhận luồng chính hoạt động đúng.
Kiểm tra trường hợp sai và dữ liệu rỗng
Tiếp theo, thử dữ liệu thiếu, sai định dạng, giá trị quá lớn, giá trị không tồn tại hoặc trường hợp danh sách không có phần tử. Những tình huống này thường làm lộ ra các lỗi mà ví dụ đơn giản chưa thể hiện.
Kiểm tra tác động đến phần khác
Nếu sửa code trong một dự án có sẵn, hãy kiểm tra những chức năng đang sử dụng cùng dữ liệu hoặc hàm đó. Một thay đổi nhỏ trong hàm dùng chung có thể ảnh hưởng đến nhiều nơi mà không biểu hiện ngay tại vị trí vừa chỉnh sửa.
Cách dùng ChatGPT để đọc và phân tích một đoạn code dài
Khi dự án đã phát triển trong thời gian dài, việc tự đọc một file có hàng trăm hoặc hàng nghìn dòng code có thể mất nhiều thời gian. ChatGPT có thể hỗ trợ phân tích bằng cách xác định cấu trúc, mô tả luồng xử lý và chỉ ra mối liên hệ giữa các phần trong đoạn mã.
Thay vì yêu cầu giải thích toàn bộ một file ngay lập tức, nên chia vấn đề thành những phần có ý nghĩa. Có thể bắt đầu bằng việc yêu cầu xác định nhiệm vụ chính của file, sau đó đi sâu vào từng hàm hoặc nhóm chức năng.
Xác định luồng xử lý chính
Đối với code chưa quen thuộc, hãy yêu cầu mô tả chương trình bắt đầu từ đâu, dữ liệu đi qua những hàm nào và kết quả cuối cùng được tạo ra như thế nào. Cách này giúp hình thành bức tranh tổng thể trước khi đọc từng câu lệnh.
Nếu đoạn code có nhiều điều kiện hoặc nhiều hàm gọi lẫn nhau, có thể yêu cầu trình bày luồng xử lý theo thứ tự thực thi. Điều này đặc biệt hữu ích khi tiếp quản một dự án được viết bởi người khác.
Tách phần quan trọng khỏi phần phụ trợ
Một file có thể chứa cả logic chính, hàm tiện ích, kiểm tra dữ liệu và những phần phục vụ giao diện. Có thể yêu cầu ChatGPT phân loại chúng để biết phần nào ảnh hưởng trực tiếp đến chức năng đang cần tìm hiểu.
Việc xác định đúng phần liên quan giúp giảm thời gian đọc và tránh thay đổi nhầm những đoạn code chỉ đóng vai trò hỗ trợ.
Cách dùng ChatGPT để viết code theo codebase có sẵn
Khi phát triển một tính năng mới trong dự án cũ, điều quan trọng là code mới phải phù hợp với cách tổ chức hiện tại. Một đoạn code độc lập có thể chạy tốt nhưng vẫn gây khó khăn nếu không tuân theo kiến trúc hoặc quy ước của dự án.
Trong trường hợp này, nên cung cấp cho ChatGPT những phần code đại diện cho cách dự án đang hoạt động. Có thể bao gồm một controller, model, service hoặc component tương tự với tính năng cần xây dựng.
Sau đó yêu cầu tạo phần mới dựa trên cách tổ chức hiện có thay vì tự xây dựng một kiến trúc hoàn toàn khác.
Cho biết quy ước của dự án
Nếu dự án có quy tắc đặt tên, cấu trúc thư mục hoặc cách viết code riêng, hãy nói rõ ngay từ đầu. Ví dụ, tên hàm sử dụng camelCase, class sử dụng PascalCase hoặc các thao tác truy cập dữ liệu đều phải đi qua một lớp cụ thể.
Những quy ước này có thể không ảnh hưởng trực tiếp đến việc code chạy hay không, nhưng lại ảnh hưởng lớn đến khả năng bảo trì về sau.
Đưa code tương tự làm mẫu
Một ví dụ thực tế trong chính dự án thường có giá trị hơn một mô tả chung chung. Nếu muốn tạo chức năng thêm sản phẩm, có thể cung cấp chức năng thêm danh mục đang hoạt động để ChatGPT hiểu cách dự án hiện xử lý dữ liệu.
Sau đó có thể yêu cầu giữ nguyên phong cách và cấu trúc, chỉ thay đổi phần nghiệp vụ cần thiết. Cách này giúp code mới đồng nhất hơn với phần còn lại của hệ thống.
Cách dùng ChatGPT để viết JavaScript cho website
Với JavaScript, ChatGPT có thể hỗ trợ từ những đoạn xử lý nhỏ trên giao diện đến các chức năng tương tác với API. Khi yêu cầu viết JavaScript, nên nói rõ sự kiện nào kích hoạt code, dữ liệu lấy từ đâu và giao diện cần thay đổi như thế nào.
Ví dụ, nếu muốn xử lý một nút gửi biểu mẫu bằng AJAX, hãy mô tả cả phần tử HTML, dữ liệu cần gửi, địa chỉ API và hành vi mong muốn sau khi nhận phản hồi.
Kết hợp HTML, CSS và JavaScript đúng ngữ cảnh
Một lỗi phổ biến khi yêu cầu code giao diện là chỉ cung cấp JavaScript trong khi vấn đề thực tế liên quan đến cả HTML hoặc CSS. Nếu đoạn JavaScript tìm phần tử bằng ID hoặc class cụ thể, hãy cung cấp cấu trúc HTML tương ứng.
Nhờ đó, ChatGPT có thể kiểm tra xem selector có khớp với phần tử hay không, sự kiện có được gắn đúng vị trí không và dữ liệu có được cập nhật vào giao diện đúng cách không.
Yêu cầu xử lý trạng thái giao diện
Với những chức năng có thao tác bất đồng bộ, nên xác định rõ giao diện cần làm gì trong lúc chờ kết quả. Ví dụ, nút gửi có thể cần khóa tạm thời, hiển thị trạng thái đang xử lý và sau đó thông báo thành công hoặc lỗi.
Nếu không mô tả những trạng thái này, code có thể chỉ xử lý phần gửi dữ liệu mà bỏ qua trải nghiệm thực tế của người dùng.
Cách dùng ChatGPT để viết PHP cho website
PHP có thể được sử dụng để xử lý biểu mẫu, truy cập cơ sở dữ liệu, xây dựng API, quản lý phiên đăng nhập và nhiều chức năng phía máy chủ khác. Khi yêu cầu PHP, nên mô tả rõ code nằm ở tầng nào và dữ liệu đến từ đâu.
Ví dụ, xử lý dữ liệu POST từ form sẽ khác với xử lý dữ liệu lấy từ cơ sở dữ liệu. Nếu code liên quan đến session, file upload hoặc API bên ngoài, những thông tin này cũng nên được nêu rõ.
Yêu cầu code phù hợp với phiên bản PHP
Nếu dự án đang chạy một phiên bản PHP cụ thể, hãy cung cấp thông tin đó. Một số cú pháp và tính năng phụ thuộc vào phiên bản, vì vậy việc xác định môi trường giúp hạn chế trường hợp code sử dụng tính năng không được hỗ trợ.
Với dự án cũ, việc này càng quan trọng vì code được tạo theo cách hiện đại chưa chắc có thể đưa trực tiếp vào môi trường cũ.
Tách xử lý dữ liệu khỏi giao diện
Khi xây dựng website, nên tránh trộn quá nhiều logic xử lý dữ liệu với HTML nếu kiến trúc dự án không yêu cầu như vậy. Có thể yêu cầu ChatGPT tổ chức code thành những phần riêng để dễ đọc và bảo trì.
Cách tổ chức cụ thể phụ thuộc vào dự án, nhưng mục tiêu chung là mỗi phần code nên có trách nhiệm tương đối rõ ràng thay vì một file phải xử lý tất cả mọi việc.
Cách dùng ChatGPT để chuyển đổi code giữa các ngôn ngữ
ChatGPT có thể hỗ trợ chuyển logic từ một ngôn ngữ sang ngôn ngữ khác. Tuy nhiên, chuyển đổi tốt không chỉ là thay cú pháp từng dòng. Hai ngôn ngữ có thể có cách quản lý dữ liệu, lỗi, bất đồng bộ hoặc cấu trúc chương trình khác nhau.
Vì vậy, hãy yêu cầu giữ nguyên logic nghiệp vụ thay vì yêu cầu dịch từng dòng code một cách máy móc.
Ví dụ, khi chuyển một hàm xử lý dữ liệu từ PHP sang JavaScript, cần xác định dữ liệu đầu vào, điều kiện xử lý và kết quả đầu ra. Sau đó mới lựa chọn cách triển khai phù hợp với JavaScript.
Yêu cầu giải thích những điểm khác biệt
Sau khi chuyển đổi, có thể yêu cầu ChatGPT chỉ ra những phần không thể chuyển nguyên trạng và lý do phải thay đổi. Điều này giúp người lập trình hiểu bản chất thay vì chỉ nhận một đoạn code mới.
Nếu code phụ thuộc vào thư viện hoặc framework của ngôn ngữ ban đầu, cần xác định thư viện tương ứng ở môi trường mới hoặc thiết kế lại phần đó.
Cách dùng ChatGPT để tạo test cho code
Một đoạn code được xem là đáng tin cậy hơn khi có các trường hợp kiểm thử phù hợp. ChatGPT có thể hỗ trợ tạo danh sách test case dựa trên yêu cầu và những trường hợp đặc biệt của hàm.
Không nên chỉ yêu cầu “viết test”. Hãy cung cấp quy tắc mà chức năng phải tuân thủ và những kết quả được xem là đúng.
Xác định trường hợp hợp lệ
Trước tiên cần có những dữ liệu đầu vào bình thường mà chức năng phải xử lý thành công. Đây là nhóm kiểm thử cơ bản để xác nhận luồng chính.
Xác định trường hợp biên
Các giá trị nhỏ nhất, lớn nhất, chuỗi rỗng, danh sách rỗng, dữ liệu NULL hoặc dữ liệu nằm sát giới hạn thường cần được kiểm tra riêng. Những trường hợp này có thể phát hiện lỗi logic mà dữ liệu thông thường không cho thấy.
Kiểm tra dữ liệu không hợp lệ
Cũng nên kiểm tra dữ liệu sai kiểu, thiếu trường bắt buộc hoặc giá trị không tồn tại. Nếu chức năng cần trả về lỗi, hãy xác định rõ loại phản hồi mong muốn.
Có thể yêu cầu ChatGPT trình bày test case dưới dạng bảng gồm dữ liệu đầu vào, hành động, kết quả mong đợi và kết quả thực tế. Sau khi chạy thử, bảng này trở thành tài liệu hữu ích cho quá trình kiểm tra.
Cách dùng ChatGPT để tạo tài liệu cho code
Code tốt không chỉ cần chạy đúng mà còn cần dễ hiểu đối với người tiếp quản sau này. ChatGPT có thể hỗ trợ viết mô tả cho hàm, module, API hoặc cấu trúc dữ liệu.
Tài liệu nên tập trung vào những thông tin thực sự cần thiết: chức năng của thành phần, dữ liệu đầu vào, kết quả trả về, điều kiện đặc biệt và những lưu ý khi sử dụng.
Không nên biến mọi dòng code thành một chú thích dài. Những phần code đã rõ ràng về mặt cú pháp không nhất thiết phải có lời giải thích dư thừa.
Những lỗi thường gặp khi nhờ ChatGPT viết code
Sử dụng ChatGPT hiệu quả không chỉ phụ thuộc vào câu hỏi mà còn phụ thuộc vào cách kiểm soát kết quả. Một số cách sử dụng có thể khiến code nhanh chóng trở nên khó kiểm tra.
Yêu cầu quá chung chung
“Viết website bán hàng” hoặc “tạo hệ thống đăng nhập” là những yêu cầu quá rộng nếu muốn nhận một giải pháp có thể sử dụng ngay. Với bài toán lớn, nên chia thành các chức năng và xác định yêu cầu từng phần.
Sao chép code mà không kiểm tra
Code có thể chứa giả định không phù hợp với dự án, sử dụng thư viện khác với môi trường hiện tại hoặc bỏ sót trường hợp đặc biệt. Vì vậy, code do AI tạo ra nên được xem là một đề xuất cần kiểm chứng.
Không cung cấp code hiện tại khi cần sửa
Nếu vấn đề nằm trong một hệ thống đang tồn tại, việc không cung cấp đoạn code liên quan khiến ChatGPT phải đoán cấu trúc và cách triển khai. Điều này dễ dẫn đến một bản sửa không phù hợp với dự án.
Đưa quá nhiều code không liên quan
Cung cấp toàn bộ dự án khi chỉ cần sửa một hàm cũng không phải lúc nào là lựa chọn tốt. Hãy bắt đầu với phần trực tiếp liên quan và bổ sung thêm các file cần thiết nếu việc phân tích cho thấy chúng có ảnh hưởng.
Cách xây dựng quy trình làm việc hiệu quả với ChatGPT
Một quy trình thực tế có thể bắt đầu bằng việc mô tả bài toán, xác định yêu cầu, đề xuất hướng triển khai, viết từng phần code, kiểm tra, sửa lỗi và cuối cùng rà soát lại toàn bộ.
- Xác định mục tiêu: mô tả chức năng cần xây dựng hoặc vấn đề cần giải quyết.
- Cung cấp bối cảnh: nêu ngôn ngữ, framework, phiên bản và cấu trúc liên quan.
- Đưa dữ liệu mẫu: cung cấp đầu vào và kết quả mong muốn.
- Thống nhất cách triển khai: xác định cấu trúc trước khi viết phần code lớn.
- Viết từng phần: hoàn thiện module nhỏ rồi mới kết nối với phần khác.
- Kiểm tra: chạy thử dữ liệu bình thường, dữ liệu sai và các trường hợp biên.
- Rà soát: kiểm tra khả năng đọc, bảo mật, hiệu suất và tác động đến code hiện có.
Quy trình này giúp ChatGPT trở thành một công cụ hỗ trợ trong quá trình phát triển thay vì chỉ là nơi lấy những đoạn code có sẵn. Người lập trình vẫn giữ vai trò quyết định kiến trúc, kiểm tra kết quả và chịu trách nhiệm về code được đưa vào hệ thống.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *