Cách dùng Gemini sửa lỗi code
Bùi Tấn Lực
- 104
- 10/10/2026
Trong quá trình lập trình, một lỗi cú pháp nhỏ, một biến chưa được khai báo hoặc một truy vấn cơ sở dữ liệu sai cũng có thể khiến toàn bộ chức năng không hoạt động. Với những dự án có nhiều tệp và logic phức tạp, việc tự tìm nguyên nhân đôi khi mất khá nhiều thời gian, đặc biệt khi thông báo lỗi không chỉ rõ vị trí cần sửa.
Gemini có thể hỗ trợ lập trình viên đọc thông báo lỗi, phân tích đoạn code, xác định nguyên nhân có khả năng gây ra sự cố và đề xuất phương án khắc phục. Công cụ này hữu ích khi làm việc với PHP, JavaScript, Python, HTML, CSS và nhiều ngôn ngữ lập trình khác. Tuy nhiên, để nhận được kết quả chính xác, bạn cần cung cấp đủ thông tin về lỗi, mô tả hành vi mong muốn và kiểm tra lại phần code sau khi sửa.
Bài viết này hướng dẫn cách sử dụng Gemini để sửa lỗi code theo quy trình thực tế, từ việc chuẩn bị dữ liệu, viết yêu cầu, phân tích nguyên nhân đến kiểm tra kết quả. Mục tiêu không chỉ là làm cho chương trình chạy trở lại mà còn giúp bạn hiểu vì sao lỗi xuất hiện và hạn chế tình trạng lỗi tái diễn.

Gemini có thể giúp sửa những lỗi lập trình nào?
Gemini có thể hỗ trợ phân tích nhiều nhóm lỗi lập trình khác nhau. Khả năng xử lý thực tế phụ thuộc vào độ phức tạp của chương trình, lượng thông tin bạn cung cấp, phiên bản mô hình đang sử dụng và những giới hạn của môi trường lập trình.
Lỗi cú pháp và lỗi khai báo
Lỗi cú pháp xảy ra khi code không tuân thủ quy tắc của ngôn ngữ lập trình. Chẳng hạn, bạn quên dấu chấm phẩy trong một ngôn ngữ yêu cầu dấu này, thiếu dấu ngoặc đóng, viết sai tên hàm hoặc đặt câu lệnh không đúng vị trí.
Gemini có thể đọc đoạn code và chỉ ra vị trí đáng nghi, giải thích nguyên nhân khiến trình biên dịch hoặc trình thông dịch báo lỗi, sau đó đề xuất phiên bản đã chỉnh sửa. Với lỗi khai báo, công cụ cũng có thể giúp kiểm tra những vấn đề như sử dụng biến chưa được định nghĩa, truyền sai số lượng tham số hoặc gọi một hàm không tồn tại.
Tuy nhiên, vị trí được báo lỗi không phải lúc nào cũng là nơi bắt nguồn sự cố. Một dấu ngoặc bị thiếu ở phía trên có thể khiến hệ thống báo lỗi tại dòng phía dưới. Vì vậy, cần kiểm tra cả đoạn code liên quan thay vì chỉ sửa đúng dòng được đánh dấu.
Lỗi logic khiến chương trình cho kết quả sai
Không phải lỗi nào cũng khiến chương trình dừng hoạt động. Có những trường hợp code chạy bình thường nhưng kết quả không đúng với yêu cầu, chẳng hạn tính sai tổng tiền, lọc thiếu dữ liệu, phân trang không chính xác hoặc điều kiện kiểm tra bị đảo ngược.
Đối với dạng lỗi này, bạn nên mô tả rõ đầu vào, kết quả thực tế và kết quả mong muốn. Gemini có thể đối chiếu luồng xử lý, kiểm tra các điều kiện rẽ nhánh và đề xuất cách sửa logic.
Ví dụ, một hàm tính giảm giá luôn trả về mức giảm bằng 0 dù dữ liệu đầu vào có giá trị. Thay vì chỉ yêu cầu sửa hàm, bạn nên cung cấp giá sản phẩm, tỷ lệ giảm, kết quả nhận được và kết quả đúng cần đạt. Những dữ kiện này giúp Gemini xác định vấn đề cụ thể hơn.
Lỗi kết nối cơ sở dữ liệu và xử lý dữ liệu
Với các ứng dụng web, lỗi thường xuất hiện khi kết nối cơ sở dữ liệu thất bại, truy vấn SQL sai, dữ liệu có kiểu không phù hợp hoặc chương trình xử lý trường hợp dữ liệu rỗng chưa đúng.
Gemini có thể hỗ trợ đọc câu lệnh SQL, kiểm tra cách truyền tham số, phân tích điều kiện truy vấn và tìm những điểm bất hợp lý trong quá trình xử lý dữ liệu. Nếu cung cấp thông báo lỗi cùng cấu trúc bảng đã loại bỏ thông tin nhạy cảm, bạn cũng có thể yêu cầu công cụ giải thích nguyên nhân khiến truy vấn không trả về kết quả như mong đợi.
Dù vậy, không nên gửi mật khẩu cơ sở dữ liệu, chuỗi kết nối chứa thông tin xác thực, dữ liệu khách hàng hoặc bản sao dữ liệu sản xuất có thông tin cá nhân. Hãy thay thế các giá trị nhạy cảm bằng dữ liệu giả lập trước khi chia sẻ.
Lỗi giao diện và tương tác giữa các thành phần
Gemini có thể hỗ trợ tìm lỗi trong HTML, CSS và JavaScript, chẳng hạn nút bấm không hoạt động, biểu mẫu không gửi dữ liệu, giao diện bị lệch hoặc sự kiện JavaScript không được thực thi như dự kiến.
Để phân tích hiệu quả, bạn nên cung cấp đoạn HTML liên quan, CSS đang áp dụng, JavaScript xử lý sự kiện và thông báo trong bảng điều khiển của trình duyệt nếu có. Khi lỗi xuất hiện do nhiều thành phần phối hợp, chỉ gửi riêng một dòng JavaScript thường không đủ để xác định nguyên nhân.
Đối với lỗi phụ thuộc vào trình duyệt, thiết bị, thư viện bên ngoài hoặc môi trường triển khai, Gemini có thể đưa ra giả thuyết để kiểm tra nhưng không thể tự xác nhận toàn bộ điều kiện thực tế nếu chưa có dữ liệu tương ứng.
Cách chuẩn bị thông tin trước khi nhờ Gemini sửa code
Chất lượng thông tin đầu vào ảnh hưởng trực tiếp đến chất lượng phương án sửa lỗi. Nếu chỉ gửi một câu như “code của tôi bị lỗi, hãy sửa giúp”, Gemini có thể đưa ra nhiều phỏng đoán nhưng khó xác định chính xác nguyên nhân.
Trước khi đặt câu hỏi, hãy chuẩn bị những thông tin cần thiết dưới đây.
- Đoạn code gây lỗi: Cung cấp hàm, phương thức hoặc phần chương trình liên quan trực tiếp đến sự cố. Nếu lỗi có thể bắt nguồn từ nhiều tệp, hãy bổ sung những đoạn phụ thuộc cần thiết.
- Thông báo lỗi nguyên bản: Sao chép đầy đủ nội dung lỗi từ trình duyệt, terminal, máy chủ hoặc công cụ phát triển, bao gồm tên tệp và số dòng nếu có.
- Hành vi hiện tại: Mô tả chương trình đang làm gì, chẳng hạn trả về dữ liệu rỗng, xuất hiện màn hình trắng hoặc dừng xử lý khi nhấn nút.
- Kết quả mong muốn: Giải thích chương trình cần hoạt động như thế nào khi được sửa đúng.
- Môi trường chạy: Nêu ngôn ngữ lập trình, phiên bản liên quan, framework, thư viện hoặc hệ quản trị cơ sở dữ liệu đang sử dụng nếu chúng có ảnh hưởng đến lỗi.
- Những thay đổi gần đây: Cho biết lỗi bắt đầu xuất hiện sau khi cập nhật thư viện, thay đổi cấu trúc dữ liệu, chỉnh sửa hàm hoặc triển khai phiên bản mới nếu bạn biết.
Không phải lỗi nào cũng cần cung cấp tất cả thông tin trên. Với lỗi cú pháp đơn giản, đoạn code và thông báo lỗi có thể đã đủ. Nhưng với lỗi xảy ra ngẫu nhiên, lỗi phân quyền hoặc lỗi chỉ xuất hiện trên máy chủ, thông tin về môi trường và cách tái hiện sự cố thường rất quan trọng.
Nếu chương trình đang hoạt động trên môi trường thật, hãy tạo bản sao để kiểm tra trước khi chỉnh sửa. Đồng thời, loại bỏ khóa API, mật khẩu, mã truy cập, thông tin cá nhân và các dữ liệu bí mật khác khỏi đoạn code gửi lên Gemini.
Cách dùng Gemini sửa lỗi code từng bước
Để tránh việc sửa đi sửa lại nhiều lần mà không giải quyết được nguyên nhân, bạn nên sử dụng Gemini theo một quy trình có kiểm soát. Mỗi bước cần có mục tiêu rõ ràng và kết quả có thể kiểm tra được.
Bước 1: Mở Gemini và chuẩn bị đoạn code cần kiểm tra
Truy cập Gemini bằng trình duyệt, sau đó đăng nhập nếu được yêu cầu. Giao diện và các tính năng có thể khác nhau tùy tài khoản, khu vực và phiên bản dịch vụ.
Tiếp theo, xác định phần code có liên quan đến lỗi. Nếu chương trình chỉ gặp sự cố trong một hàm xử lý dữ liệu, bạn nên bắt đầu bằng hàm đó cùng những biến, hàm phụ thuộc hoặc đoạn gọi hàm cần thiết.
Không nên gửi toàn bộ dự án ngay từ đầu nếu chỉ có một lỗi nhỏ. Một lượng code quá lớn có thể làm loãng thông tin quan trọng, khiến việc phân tích khó tập trung. Ngược lại, nếu lỗi liên quan đến cách nhiều tệp phối hợp, hãy cung cấp thêm các phần phụ thuộc thay vì cắt đoạn code đến mức mất ngữ cảnh.
Bước 2: Cung cấp thông báo lỗi và mô tả hiện tượng
Dán thông báo lỗi nguyên bản vào cuộc trò chuyện. Sau đó, mô tả ngắn gọn thời điểm xảy ra lỗi, thao tác dẫn đến lỗi và kết quả bạn đang nhận được.
Ví dụ, thay vì viết “PHP bị lỗi khi lưu dữ liệu”, bạn có thể nói rõ rằng biểu mẫu vẫn gửi được yêu cầu nhưng dữ liệu không xuất hiện trong bảng tương ứng, đồng thời cung cấp thông báo lỗi từ PHP hoặc cơ sở dữ liệu nếu có.
Cách mô tả này giúp Gemini phân biệt giữa lỗi ở biểu mẫu, quá trình gửi yêu cầu, đoạn xử lý phía máy chủ và câu lệnh lưu dữ liệu. Đây là bước quan trọng để tránh sửa nhầm thành phần vốn không phải nguyên nhân gây ra sự cố.
Bước 3: Yêu cầu Gemini phân tích nguyên nhân trước khi sửa
Không nhất thiết phải yêu cầu viết lại code ngay trong câu lệnh đầu tiên. Bạn có thể yêu cầu Gemini chỉ ra nguyên nhân có khả năng cao nhất, bằng chứng trong đoạn code và cách kiểm tra giả thuyết đó.
Hãy phân tích đoạn code dưới đây để tìm nguyên nhân gây lỗi.
Yêu cầu:
- Đọc kỹ thông báo lỗi và đối chiếu với code.
- Chỉ ra vị trí có vấn đề và giải thích nguyên nhân.
- Phân biệt lỗi chắc chắn xác định được với những giả thuyết cần kiểm tra.
- Chưa viết lại toàn bộ chương trình.
- Đề xuất cách kiểm tra để xác nhận nguyên nhân.
Ngôn ngữ: PHP
Môi trường: PHP 8.x
Thông báo lỗi:
[Dán thông báo lỗi tại đây]
Đoạn code:
[Dán code cần kiểm tra tại đây]
Yêu cầu phân tích trước giúp bạn hiểu vấn đề thay vì chỉ nhận một phiên bản code mới. Nếu Gemini đưa ra nhiều nguyên nhân có thể xảy ra, hãy yêu cầu sắp xếp chúng theo mức độ phù hợp với thông báo lỗi và hướng dẫn cách kiểm tra từng nguyên nhân.
Đừng mặc định rằng lời giải thích đầu tiên luôn chính xác. Nếu giả thuyết không phù hợp với kết quả kiểm tra thực tế, hãy cung cấp dữ liệu mới để Gemini đánh giá lại.
Bước 4: Yêu cầu sửa đúng phần code có vấn đề
Sau khi xác định được nguyên nhân hợp lý, hãy yêu cầu Gemini đưa ra phương án sửa. Nên giới hạn phạm vi thay đổi, giữ nguyên những phần đang hoạt động và yêu cầu giải thích các chỉnh sửa quan trọng.
Dựa trên nguyên nhân đã phân tích, hãy sửa lỗi trong đoạn code này.
Yêu cầu:
- Chỉ thay đổi những phần cần thiết để khắc phục lỗi.
- Giữ nguyên chức năng hiện có và cách gọi hàm nếu không bắt buộc phải đổi.
- Không tự ý thêm thư viện hoặc thay đổi cấu trúc dự án.
- Trả về đoạn code hoàn chỉnh của phần cần sửa.
- Giải thích những dòng đã thay đổi và lý do.
- Nêu các trường hợp cần kiểm tra sau khi sửa.
Nếu chưa đủ thông tin để đưa ra phương án chắc chắn,
hãy hỏi lại thay vì tự suy đoán.
Nếu Gemini đề xuất thay đổi lớn, hãy yêu cầu giải thích vì sao không thể sửa bằng một thay đổi nhỏ hơn. Đối với dự án đang vận hành, việc hạn chế phạm vi chỉnh sửa giúp giảm nguy cơ làm hỏng những chức năng khác.
Bước 5: Chạy thử và phản hồi kết quả cho Gemini
Sao lưu phiên bản ban đầu, áp dụng phần code đã sửa trong môi trường thử nghiệm rồi thực hiện lại thao tác từng gây lỗi. Nếu chương trình vẫn không hoạt động, hãy cung cấp thông báo lỗi mới và mô tả chính xác điều gì đã thay đổi.
Ví dụ, lỗi cú pháp đã biến mất nhưng dữ liệu vẫn chưa được lưu. Điều này có thể cho thấy bạn đã khắc phục một lỗi ban đầu nhưng vẫn còn vấn đề ở truy vấn, dữ liệu đầu vào hoặc quyền truy cập. Không nên coi việc hết thông báo lỗi là bằng chứng duy nhất cho thấy chức năng đã hoạt động đúng.
Hãy tiếp tục trao đổi với Gemini dựa trên kết quả kiểm tra thực tế. Khi phương án sửa đã giải quyết được lỗi, hãy kiểm tra thêm các trường hợp đầu vào khác và những chức năng liên quan trước khi triển khai lên môi trường thật.
Prompt giúp Gemini sửa lỗi code chính xác hơn
Khi sử dụng Gemini để sửa lỗi lập trình, cách đặt câu hỏi ảnh hưởng đáng kể đến chất lượng câu trả lời. Một prompt tốt cần nêu rõ vấn đề, cung cấp ngữ cảnh cần thiết và giới hạn phạm vi chỉnh sửa. Thay vì yêu cầu Gemini sửa code một cách chung chung, bạn nên xây dựng câu lệnh phù hợp với từng loại lỗi.
Dưới đây là những mẫu prompt có thể áp dụng trực tiếp trong quá trình phát triển website và phần mềm. Bạn chỉ cần thay phần thông tin trong dấu ngoặc vuông bằng dữ liệu của dự án.
Prompt tìm nguyên nhân gây lỗi trong code
Khi chưa biết chính xác nguyên nhân, hãy yêu cầu Gemini phân tích trước khi đề xuất giải pháp. Cách này đặc biệt hữu ích với những lỗi khó tái hiện hoặc thông báo lỗi không chỉ rõ vị trí phát sinh.
Tôi đang gặp lỗi trong chương trình và cần xác định nguyên nhân.
Ngôn ngữ lập trình: [Tên ngôn ngữ]
Framework hoặc thư viện: [Tên và phiên bản nếu có]
Mô tả hiện tượng: [Điều đang xảy ra]
Kết quả mong muốn: [Điều cần đạt được]
Thông báo lỗi: [Nội dung lỗi đầy đủ]
Đoạn code liên quan:
[Dán code tại đây]
Hãy thực hiện các yêu cầu sau:
1. Phân tích nguyên nhân có khả năng gây ra lỗi.
2. Chỉ ra vị trí liên quan trong đoạn code.
3. Giải thích vì sao lỗi xuất hiện.
4. Đề xuất cách kiểm tra để xác nhận nguyên nhân.
5. Chưa viết lại toàn bộ code khi chưa cần thiết.
Nếu thiếu dữ liệu, hãy nêu rõ thông tin cần bổ sung.
Ưu điểm của prompt này là yêu cầu Gemini phân biệt giữa những gì có thể xác định từ code và những gì cần kiểm tra thêm. Nhờ đó, bạn hạn chế được tình trạng nhận một lời giải thích nghe hợp lý nhưng chưa có căn cứ thực tế.
Prompt sửa lỗi nhưng giữ nguyên cấu trúc chương trình
Trong dự án đang hoạt động, viết lại toàn bộ một hàm hoặc tệp tin có thể làm phát sinh lỗi mới. Nếu chỉ cần khắc phục một vấn đề cụ thể, bạn nên yêu cầu Gemini giữ nguyên cấu trúc và thay đổi tối thiểu.
Hãy sửa lỗi trong đoạn code tôi cung cấp với các điều kiện sau:
- Xác định đúng nguyên nhân trước khi chỉnh sửa.
- Chỉ thay đổi những dòng cần thiết.
- Giữ nguyên tên biến, tên hàm, tham số và giá trị trả về
nếu không có lý do kỹ thuật bắt buộc phải thay đổi.
- Không xóa chức năng đang hoạt động.
- Không tự ý thay đổi cấu trúc cơ sở dữ liệu.
- Không thêm thư viện mới nếu chưa thực sự cần thiết.
- Trả về code hoàn chỉnh của phần được chỉnh sửa.
- Giải thích từng thay đổi quan trọng.
- Nêu những trường hợp cần kiểm thử.
Code hiện tại:
[Dán code tại đây]
Thông báo lỗi:
[Dán lỗi tại đây]
Yêu cầu giữ nguyên cấu trúc không có nghĩa là phải bảo toàn mọi dòng code bằng mọi giá. Nếu nguyên nhân nằm ở thiết kế hiện tại, Gemini nên giải thích giới hạn đó và đề xuất phương án thay đổi phù hợp thay vì cố sửa theo cách thiếu an toàn.
Prompt sửa lỗi khi Gemini đã đưa ra code nhưng vẫn chạy sai
Đôi khi bạn đã áp dụng phương án sửa từ Gemini nhưng chương trình vẫn gặp lỗi. Trong tình huống này, không nên gửi lại yêu cầu ban đầu mà không có thông tin mới. Hãy cung cấp phiên bản code sau khi chỉnh sửa và kết quả chạy thử để công cụ có cơ sở phân tích tiếp.
Tôi đã áp dụng phương án sửa lỗi trước đó nhưng chương trình
vẫn chưa hoạt động đúng.
Code hiện tại:
[Dán phiên bản code mới nhất]
Phương án đã áp dụng:
[Mô tả những thay đổi đã thực hiện]
Kết quả thực tế:
[Mô tả kết quả sau khi chạy thử]
Thông báo lỗi mới:
[Dán thông báo lỗi hoặc ghi rõ không có thông báo lỗi]
Kết quả mong muốn:
[Mô tả hành vi đúng]
Hãy đối chiếu các thông tin trên để xác định vấn đề còn tồn tại.
Không lặp lại giải pháp cũ nếu chưa giải thích được vì sao nó
chưa hiệu quả. Hãy đề xuất bước kiểm tra tiếp theo và chỉ sửa
code khi có đủ căn cứ.
Việc duy trì thông tin giữa các bước giúp Gemini theo dõi quá trình xử lý tốt hơn. Tuy nhiên, nếu cuộc trò chuyện đã quá dài hoặc có nhiều lần thay đổi code, bạn nên tổng hợp lại trạng thái hiện tại và cung cấp phiên bản mới nhất để tránh nhầm lẫn giữa các phương án cũ.
Ví dụ thực tế: Dùng Gemini sửa lỗi PHP
PHP là ngôn ngữ thường được sử dụng để xây dựng website, xử lý biểu mẫu và kết nối cơ sở dữ liệu. Khi chương trình PHP báo lỗi, bạn có thể nhờ Gemini phân tích thông báo, tìm nguyên nhân và đưa ra phương án sửa. Dưới đây là một số tình huống minh họa.
Ví dụ 1: Sửa lỗi biến chưa được khai báo
Giả sử bạn có đoạn code tính tổng tiền đơn hàng như sau:
<?php
$price = 200000;
$quantity = 3;
$total = $price * $quantitty;
echo $total;
?>
Trong ví dụ này, biến được khai báo là quantity nhưng khi tính tổng, chương trình lại sử dụng quantitty. Đây là lỗi đánh máy tên biến. Tùy phiên bản PHP và cấu hình, việc sử dụng biến chưa được khởi tạo có thể tạo ra cảnh báo hoặc thông báo lỗi, đồng thời làm kết quả tính toán không đúng.
Bạn có thể gửi đoạn code cho Gemini kèm yêu cầu:
Hãy kiểm tra đoạn PHP này để tìm lỗi khiến kết quả tính tổng đơn hàng không chính xác. Chỉ ra sự khác biệt giữa tên biến được khai báo và tên biến được sử dụng. Sửa lỗi nhưng giữ nguyên logic tính toán và giải thích nguyên nhân.
Phương án sửa là sử dụng thống nhất tên biến đã khai báo:
<?php
$price = 200000;
$quantity = 3;
$total = $price * $quantity;
echo $total;
?>
Kết quả là 600000. Đây là lỗi đơn giản mà Gemini có thể hỗ trợ phát hiện nhanh. Dù vậy, bạn vẫn nên chạy thử chương trình để xác nhận kết quả và kiểm tra các biến liên quan nếu đoạn code thực tế phức tạp hơn.
Ví dụ 2: Sửa lỗi xử lý dữ liệu từ biểu mẫu
Giả sử một biểu mẫu đăng ký gửi dữ liệu bằng phương thức POST nhưng chương trình PHP không nhận được giá trị tên người dùng. Đoạn code minh họa dưới đây có sự không thống nhất giữa tên trường dữ liệu và khóa được đọc trong PHP.
<form method="post" action="">
<input type="text" name="username" required>
<button type="submit">Đăng ký</button>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['user_name'];
echo $username;
}
?>
Trường nhập liệu gửi dữ liệu với khóa username, trong khi PHP lại đọc khóa user_name. Hai tên này không giống nhau nên chương trình không lấy được giá trị như mong đợi.
Khi nhờ Gemini sửa, bạn nên yêu cầu kiểm tra toàn bộ luồng dữ liệu từ biểu mẫu đến phần xử lý phía máy chủ, thay vì chỉ yêu cầu sửa thông báo lỗi. Phương án chỉnh sửa phù hợp là thống nhất tên khóa:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'] ?? '';
echo htmlspecialchars(
$username,
ENT_QUOTES,
'UTF-8'
);
}
?>
Toán tử ?? cung cấp giá trị mặc định khi khóa không tồn tại, còn htmlspecialchars() giúp mã hóa các ký tự đặc biệt khi xuất dữ liệu ra HTML. Trong ứng dụng thực tế, bạn vẫn cần xác thực dữ liệu đầu vào và xử lý phù hợp với mục đích sử dụng. Nếu dữ liệu được lưu vào cơ sở dữ liệu, hãy dùng truy vấn có tham số thay vì nối trực tiếp chuỗi do người dùng nhập vào câu lệnh SQL.
Ví dụ 3: Nhờ Gemini phân tích lỗi truy vấn MySQL
Một tình huống khác là chương trình PHP không lấy được danh sách sản phẩm dù bảng dữ liệu vẫn tồn tại. Nguyên nhân có thể là tên bảng hoặc cột không đúng, điều kiện truy vấn không phù hợp, kết nối cơ sở dữ liệu sai hoặc dữ liệu chưa được lưu.
Trong trường hợp này, bạn nên cung cấp cho Gemini câu truy vấn, thông báo lỗi đầy đủ và cấu trúc bảng đã loại bỏ dữ liệu nhạy cảm. Có thể sử dụng prompt sau:
Tôi đang sử dụng PHP và MySQL.
Mục tiêu:
Lấy danh sách sản phẩm từ bảng products.
Truy vấn hiện tại:
[Dán câu lệnh SQL]
Thông báo lỗi:
[Dán lỗi đầy đủ]
Cấu trúc bảng:
[Liệt kê tên cột và kiểu dữ liệu cần thiết]
Hãy kiểm tra tên bảng, tên cột, cú pháp SQL, điều kiện
truy vấn và cách truyền tham số từ PHP. Phân biệt lỗi cú pháp
với trường hợp truy vấn hợp lệ nhưng không trả về dữ liệu.
Đề xuất cách sửa và một truy vấn kiểm tra để xác nhận nguyên nhân.
Không nên yêu cầu Gemini tự đoán cấu trúc bảng khi bạn chưa cung cấp thông tin. Nếu tên cột thực tế khác với tên cột trong câu truy vấn, công cụ có thể đưa ra giải pháp không phù hợp. Cung cấp đúng cấu trúc dữ liệu sẽ giúp quá trình phân tích có cơ sở hơn.
Những lỗi thường gặp khi dùng Gemini để sửa code
Gemini có thể giúp rút ngắn thời gian tìm lỗi, nhưng cách sử dụng thiếu kiểm soát có thể khiến bạn mất nhiều thời gian hơn để khắc phục hậu quả. Một số sai lầm dưới đây cần được chú ý trong quá trình làm việc.
Chỉ gửi thông báo lỗi mà không cung cấp code
Thông báo lỗi thường cho biết loại sự cố hoặc vị trí đáng nghi, nhưng không phải lúc nào cũng thể hiện đầy đủ nguyên nhân. Nếu chỉ gửi một dòng lỗi mà không có đoạn code liên quan, Gemini có thể đưa ra nhiều giả thuyết khác nhau.
Cách khắc phục là cung cấp đoạn code đủ ngữ cảnh, thông báo lỗi nguyên bản và kết quả mong muốn. Nếu chưa thể chia sẻ code, hãy mô tả luồng xử lý và môi trường chạy để công cụ có thêm cơ sở phân tích.
Chấp nhận phương án sửa mà không kiểm tra
Code do Gemini đề xuất có thể chứa lỗi cú pháp, sử dụng API không phù hợp với phiên bản thư viện hoặc bỏ sót một trường hợp đặc biệt. Ngay cả khi code chạy được, kết quả vẫn có thể sai về mặt nghiệp vụ hoặc tạo ra vấn đề bảo mật.
Vì vậy, hãy chạy thử trong môi trường an toàn, kiểm tra kết quả với dữ liệu đại diện và thực hiện các bài kiểm thử liên quan. Với những thay đổi quan trọng, nên xem lại từng phần trước khi đưa vào hệ thống đang vận hành.
Để Gemini viết lại toàn bộ chương trình khi chỉ cần sửa một lỗi nhỏ
Việc viết lại quá nhiều code có thể làm thay đổi cách hoạt động của những chức năng không liên quan. Nếu dự án đã có cấu trúc ổn định, hãy yêu cầu Gemini chỉ ra phần cần sửa và giải thích lý do thay đổi.
Nếu cần tái cấu trúc toàn bộ, hãy tách công việc thành các bước riêng biệt: xác định vấn đề, xây dựng phương án, chỉnh sửa từng phần và kiểm thử sau mỗi bước. Cách làm này giúp bạn dễ phát hiện thay đổi nào gây ra lỗi mới.
Cung cấp dữ liệu nhạy cảm khi yêu cầu sửa lỗi
Không nên đưa mật khẩu, khóa API, thông tin đăng nhập, dữ liệu cá nhân của khách hàng hoặc mã nguồn bí mật vào cuộc trò chuyện nếu chưa được phép và chưa đánh giá các điều kiện bảo mật phù hợp.
Trước khi gửi code, hãy thay thông tin xác thực bằng giá trị giả lập, loại bỏ dữ liệu không cần thiết và kiểm tra những phần có thể tiết lộ cấu trúc nội bộ của hệ thống. Nếu nghi ngờ một khóa truy cập đã bị lộ, hãy thu hồi hoặc thay khóa theo quy trình bảo mật của dịch vụ tương ứng.
Cách dùng Gemini sửa lỗi JavaScript, HTML và CSS
Ngoài PHP, Gemini còn có thể hỗ trợ tìm lỗi trong JavaScript, HTML và CSS. Với website, một sự cố giao diện đôi khi không xuất phát từ một đoạn code riêng lẻ mà là kết quả của nhiều thành phần hoạt động không đúng với nhau. Vì vậy, khi yêu cầu Gemini phân tích, bạn nên cung cấp đủ code liên quan và mô tả chính xác hiện tượng xảy ra trên trình duyệt.
Sửa lỗi JavaScript khi nút bấm không hoạt động
Nếu nhấn nút nhưng không có phản hồi, nguyên nhân có thể nằm ở việc chọn sai phần tử HTML, gắn sự kiện không đúng thời điểm, lỗi JavaScript trước đó làm gián đoạn quá trình thực thi hoặc một điều kiện khiến hàm xử lý không được gọi.
Ví dụ, HTML sử dụng ID là submitBtn nhưng JavaScript lại tìm phần tử có ID là submitButton. Khi đó, chương trình không thể lấy đúng phần tử để gắn sự kiện.
<button id="submitBtn" type="button">Gửi dữ liệu</button>
<script>
const button = document.getElementById('submitButton');
button.addEventListener('click', function () {
console.log('Đã nhấn nút');
});
</script>
Để tìm nguyên nhân, bạn có thể yêu cầu Gemini đối chiếu ID giữa HTML và JavaScript, kiểm tra khả năng phần tử chưa tồn tại tại thời điểm chạy và đề xuất cách sửa phù hợp. Với ví dụ trên, phương án trực tiếp là đổi submitButton thành submitBtn.
Nếu đã sửa tên ID nhưng nút vẫn không hoạt động, hãy mở công cụ dành cho nhà phát triển của trình duyệt, kiểm tra tab Console và cung cấp thông báo lỗi mới cho Gemini. Đừng chỉ thay đổi code liên tục mà không xác nhận nguyên nhân của từng lần sửa.
Khắc phục lỗi HTML khiến biểu mẫu hoạt động sai
HTML có cấu trúc không phù hợp có thể khiến trình duyệt hiển thị giao diện khác dự kiến hoặc làm các thành phần biểu mẫu hoạt động không đúng. Một số nguyên nhân thường gặp là đặt sai thuộc tính, sử dụng ID trùng lặp, thiếu thuộc tính cần thiết hoặc tổ chức các phần tử không hợp lý.
Khi nhờ Gemini kiểm tra HTML, hãy yêu cầu công cụ xác định lỗi về cấu trúc, kiểm tra mối liên hệ giữa các phần tử và giữ nguyên nội dung cũng như chức năng đang hoạt động. Nếu biểu mẫu không gửi dữ liệu, cần xem thêm thuộc tính name, phương thức gửi dữ liệu và đoạn JavaScript có can thiệp vào quá trình gửi hay không.
Bạn cũng nên phân biệt lỗi HTML với lỗi xử lý phía máy chủ. Một biểu mẫu hiển thị đúng chưa có nghĩa dữ liệu đã được gửi hoặc lưu thành công. Nếu HTML không có vấn đề, hãy tiếp tục kiểm tra yêu cầu mạng và phần xử lý dữ liệu phía sau.
Tìm nguyên nhân giao diện CSS bị lệch
Khi giao diện bị tràn khung, các thành phần chồng lên nhau hoặc hiển thị không đồng đều giữa máy tính và điện thoại, Gemini có thể hỗ trợ phân tích những quy tắc CSS liên quan. Tuy nhiên, chỉ gửi một thuộc tính CSS riêng lẻ thường chưa đủ để xác định nguyên nhân.
Để nhận được phương án phù hợp, bạn nên cung cấp HTML của khu vực bị lỗi, CSS áp dụng cho khu vực đó, kích thước màn hình gặp sự cố và ảnh chụp giao diện nếu cần. Hãy yêu cầu Gemini kiểm tra những yếu tố như chiều rộng phần tử, mô hình hộp, Flexbox, Grid, khoảng cách và các quy tắc responsive.
Ví dụ, một phần tử có chiều rộng cố định có thể vượt khỏi màn hình điện thoại. Gemini có thể đề xuất điều chỉnh chiều rộng theo không gian khả dụng, nhưng bạn cần kiểm tra xem giải pháp đó có ảnh hưởng đến bố cục trên máy tính hay không.
Thay vì yêu cầu viết lại toàn bộ CSS, hãy giới hạn phạm vi sửa trong thành phần gặp lỗi. Sau đó, kiểm tra giao diện ở nhiều kích thước màn hình để bảo đảm việc khắc phục không tạo ra vấn đề mới.
Cách dùng Gemini xử lý lỗi code khó tìm
Không phải lỗi nào cũng xuất hiện ngay khi chạy chương trình. Một số sự cố chỉ xảy ra với dữ liệu đặc biệt, chỉ xuất hiện trên máy chủ hoặc phát sinh sau khi nhiều chức năng phối hợp với nhau. Với những trường hợp này, bạn nên dùng Gemini như một công cụ hỗ trợ điều tra theo từng giả thuyết thay vì yêu cầu đưa ra đáp án ngay lập tức.
Phân tích lỗi không có thông báo rõ ràng
Khi chương trình chạy nhưng không cho kết quả mong muốn, trước tiên hãy mô tả các bước dẫn đến lỗi. Nếu có thể, hãy cung cấp dữ liệu đầu vào mẫu, kết quả thực tế và kết quả kỳ vọng.
Yêu cầu Gemini liệt kê các nguyên nhân có khả năng xảy ra, sắp xếp theo mức độ phù hợp với dữ kiện và đề xuất cách kiểm tra từng nguyên nhân. Bạn nên ưu tiên những phép kiểm tra có thể phân biệt rõ giữa các giả thuyết.
Chẳng hạn, nếu một trang web không hiển thị danh sách sản phẩm, nguyên nhân có thể nằm ở truy vấn cơ sở dữ liệu, điều kiện lọc, dữ liệu trả về hoặc phần dựng giao diện. Kiểm tra lần lượt từng khâu sẽ giúp thu hẹp phạm vi tìm lỗi nhanh hơn so với việc sửa tất cả các phần cùng lúc.
Xử lý lỗi chỉ xuất hiện trên máy chủ
Trong một số trường hợp, code chạy bình thường trên máy tính cá nhân nhưng thất bại sau khi triển khai lên máy chủ. Nguyên nhân có thể liên quan đến phiên bản PHP, quyền truy cập tệp, biến môi trường, đường dẫn, cấu hình máy chủ hoặc sự khác biệt giữa các môi trường.
Khi nhờ Gemini phân tích, hãy cung cấp thông tin về môi trường phát triển và môi trường triển khai, phiên bản phần mềm liên quan cùng nhật ký lỗi đã loại bỏ thông tin nhạy cảm. Đồng thời, cho biết những thao tác nào thành công trên môi trường thử nghiệm nhưng thất bại trên máy chủ.
Không nên yêu cầu Gemini tự suy đoán toàn bộ cấu hình máy chủ khi chưa có dữ liệu. Nếu cần thay đổi quyền truy cập, cấu hình bảo mật hoặc thiết lập máy chủ, hãy kiểm tra tác động của từng thay đổi và tránh áp dụng những giải pháp cấp quyền quá rộng chỉ để làm cho chương trình chạy được.
Kiểm tra lỗi phát sinh sau khi cập nhật thư viện
Một bản cập nhật thư viện có thể thay đổi cách gọi hàm, định dạng dữ liệu hoặc yêu cầu phiên bản tương thích. Nếu lỗi xuất hiện ngay sau khi cập nhật, hãy cung cấp phiên bản trước và sau khi thay đổi, thông báo lỗi cùng đoạn code đang sử dụng thư viện.
Yêu cầu Gemini xác định những điểm khác biệt có khả năng ảnh hưởng đến chương trình và đối chiếu với tài liệu phù hợp của phiên bản đang dùng. Không nên mặc định rằng hàm đã sử dụng trước đây vẫn hoạt động theo cách cũ trong phiên bản mới.
Nếu cần quay về phiên bản trước, hãy cân nhắc ảnh hưởng đến bảo mật và những thành phần phụ thuộc khác. Việc khôi phục phiên bản chỉ nên là giải pháp có kiểm soát, không thay thế cho quá trình xác định nguyên nhân và xây dựng phương án nâng cấp phù hợp.
Cách kiểm thử code sau khi Gemini sửa lỗi
Một đoạn code được Gemini chỉnh sửa chưa thể xem là hoàn thành chỉ vì không còn thông báo lỗi. Bạn cần xác nhận rằng chương trình hoạt động đúng, các chức năng liên quan vẫn ổn định và thay đổi không tạo ra lỗ hổng mới.
Kiểm tra lại trường hợp gây lỗi ban đầu
Hãy thực hiện lại chính xác các thao tác đã khiến chương trình phát sinh lỗi. Nếu trước đây lỗi xảy ra khi gửi biểu mẫu rỗng, nhập dữ liệu đặc biệt hoặc truy vấn một nhóm sản phẩm cụ thể, hãy dùng lại tình huống đó để xác nhận kết quả.
Nếu lỗi không tái hiện được, hãy kiểm tra thêm nhật ký và điều kiện thực thi. Đối với lỗi xảy ra không thường xuyên, một lần chạy thành công chưa đủ chứng minh vấn đề đã được giải quyết hoàn toàn.
Kiểm tra các trường hợp biên
Ngoài tình huống thông thường, bạn nên kiểm tra những đầu vào có thể gây ra hành vi khác biệt, chẳng hạn dữ liệu rỗng, giá trị bằng 0, chuỗi dài, ký tự đặc biệt, số lượng lớn hoặc dữ liệu không đúng định dạng.
Với chức năng tính toán, hãy kiểm tra cả giá trị nhỏ nhất, lớn nhất và các trường hợp làm thay đổi điều kiện xử lý. Với biểu mẫu, cần xác nhận cách chương trình phản hồi khi người dùng bỏ trống trường bắt buộc hoặc gửi dữ liệu không hợp lệ.
Kiểm tra hồi quy và bảo mật
Kiểm thử hồi quy nhằm bảo đảm phần code vừa sửa không làm hỏng những chức năng đã hoạt động trước đó. Nếu thay đổi một hàm dùng chung, bạn nên kiểm tra tất cả những nơi gọi hàm đó thay vì chỉ thử một trang.
Đối với các chức năng nhận dữ liệu từ người dùng, hãy kiểm tra thêm việc xác thực đầu vào, phân quyền, xử lý lỗi và cách truy vấn cơ sở dữ liệu. Không chấp nhận phương án sửa chỉ làm mất thông báo lỗi nhưng bỏ qua nguyên nhân bảo mật.
Nếu dự án có bộ kiểm thử tự động, hãy chạy các bài kiểm thử liên quan trước khi triển khai. Với thay đổi lớn, nên lưu lại phiên bản trước khi sửa và sử dụng quy trình quản lý mã nguồn để có thể xem lại hoặc khôi phục khi cần thiết.
Gemini sửa lỗi code có chính xác không?
Gemini có thể giúp phát hiện lỗi cú pháp, giải thích thông báo lỗi, đề xuất phương án sửa và hỗ trợ xây dựng các bước kiểm thử. Tuy nhiên, độ chính xác không được bảo đảm trong mọi trường hợp.
Với những lỗi đơn giản, có thông báo rõ ràng và đoạn code đầy đủ, việc phân tích thường thuận lợi hơn. Ngược lại, những lỗi phụ thuộc vào cấu hình máy chủ, trạng thái dữ liệu, thư viện riêng hoặc nhiều thành phần tương tác có thể cần thêm thông tin và kiểm tra trực tiếp.
Một số hạn chế bạn cần lưu ý gồm:
- Đưa ra nguyên nhân chưa chính xác: Gemini có thể chọn một giả thuyết hợp lý nhưng không đúng với môi trường thực tế.
- Sử dụng API hoặc cú pháp không phù hợp: Code đề xuất có thể không tương thích với phiên bản ngôn ngữ hoặc thư viện của dự án.
- Bỏ sót yêu cầu nghiệp vụ: Một phương án có thể chạy được nhưng không đáp ứng đầy đủ quy tắc của ứng dụng.
- Tạo ra lỗi mới: Việc thay đổi một phần code có thể ảnh hưởng đến các thành phần phụ thuộc hoặc những trường hợp chưa được kiểm thử.
- Thiếu thông tin về môi trường: Nếu không có nhật ký, dữ liệu đầu vào hoặc cấu hình liên quan, công cụ không thể xác nhận chắc chắn nguyên nhân của mọi sự cố.
Do đó, nên xem code do Gemini đề xuất là phương án cần được đánh giá và kiểm thử. Đối với hệ thống quan trọng, hãy để lập trình viên có chuyên môn rà soát những thay đổi ảnh hưởng đến dữ liệu, quyền truy cập, thanh toán và bảo mật.
Kinh nghiệm dùng Gemini sửa code hiệu quả khi làm website
Đối với dự án website, hiệu quả của việc sử dụng Gemini không chỉ nằm ở khả năng tạo ra code mà còn ở cách tổ chức quá trình tìm lỗi. Một quy trình rõ ràng giúp bạn hạn chế sửa sai, tiết kiệm thời gian và dễ kiểm soát chất lượng.
- Mỗi lần tập trung vào một vấn đề: Tránh yêu cầu Gemini sửa quá nhiều lỗi không liên quan trong cùng một lượt nếu chưa xác định được nguyên nhân.
- Cung cấp phiên bản code mới nhất: Khi tiếp tục xử lý, hãy bảo đảm đoạn code gửi lên phản ánh đúng những thay đổi đã áp dụng.
- Yêu cầu giải thích thay vì chỉ lấy code: Hiểu nguyên nhân sẽ giúp bạn nhận biết lỗi tương tự và chủ động bảo trì dự án.
- Ưu tiên thay đổi có phạm vi nhỏ: Giữ lại những phần đang hoạt động nếu không có lý do cần chỉnh sửa.
- Đối chiếu tài liệu kỹ thuật: Kiểm tra tài liệu chính thức của ngôn ngữ, framework hoặc thư viện khi giải pháp phụ thuộc vào phiên bản cụ thể.
- Lưu lại phiên bản trước khi sửa: Sử dụng Git hoặc phương pháp sao lưu phù hợp để so sánh thay đổi và khôi phục khi cần.
- Không đưa dữ liệu bí mật vào prompt: Loại bỏ thông tin xác thực, dữ liệu khách hàng và những nội dung không được phép chia sẻ.
- Kiểm thử trước khi triển khai: Thực hiện kiểm tra chức năng, trường hợp biên và các vấn đề bảo mật có liên quan.
Nếu bạn đang phát triển website bằng PHP, hãy kết hợp Gemini với nhật ký lỗi PHP, công cụ kiểm tra truy vấn cơ sở dữ liệu và môi trường thử nghiệm. Nếu làm việc với JavaScript, hãy sử dụng thêm Console và Network trong công cụ dành cho nhà phát triển của trình duyệt. Những dữ liệu này giúp việc phân tích dựa trên bằng chứng thay vì chỉ dựa vào suy đoán.
Với dự án lớn, bạn cũng nên chia nhỏ công việc theo từng chức năng hoặc tệp tin có liên quan. Cách làm này giúp Gemini tập trung vào phạm vi cần xử lý, đồng thời giúp bạn dễ dàng kiểm tra từng thay đổi trước khi tích hợp vào toàn bộ hệ thống.
Kết luận
Gemini là công cụ hỗ trợ hữu ích khi cần tìm nguyên nhân và sửa lỗi code trong quá trình phát triển website hoặc phần mềm. Để tận dụng hiệu quả, bạn nên cung cấp đoạn code đủ ngữ cảnh, thông báo lỗi nguyên bản, mô tả kết quả thực tế và yêu cầu Gemini phân tích trước khi đề xuất chỉnh sửa.
Điều quan trọng là không sao chép code do AI tạo ra rồi đưa thẳng lên môi trường thật. Hãy kiểm tra từng thay đổi, chạy thử các tình huống liên quan, đánh giá tác động đến chức năng hiện có và rà soát bảo mật trước khi triển khai.
Khi kết hợp Gemini với kỹ năng đọc lỗi, công cụ gỡ lỗi và quy trình kiểm thử phù hợp, bạn có thể rút ngắn thời gian xử lý sự cố, hiểu rõ hơn về chương trình và nâng cao chất lượng mã nguồn trong quá trình phát triển.
- 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 *