Tìm kiếm trang web

Tôi đã đưa cho Claude, ChatGPT và Gemini cùng một đoạn JavaScript bị lỗi để gỡ lỗi — chỉ có một người tìm ra nguyên nhân thực sự


LLMs có thể làm nhiều hơn là chỉ tạo mã; chúng cũng có thể giúp bạn gỡ lỗi. Khi lỗi không rõ ràng, và đầu ra của console đang trực tiếp làm bạn bối rối, việc đưa một đoạn mã cho trợ lý lập trình AI của bạn và để nó rà soát để tìm vấn đề là một cách tuyệt vời để cứu một ngày thứ Ba bị hỏng.

Chúng tôi có một số lựa chọn có sẵn cho việc này—miễn phí, trả phí, và bạn thậm chí có thể chạy các mô hình mở lớn nhất tại chỗ. Vì vậy, tôi đã tạo ra một bài kiểm tra nhỏ, một tệp JavaScript với ba lỗi khác nhau trong đó, và giao nó cho Gemini, ChatGPT và Claude để sửa. Những lỗi này—một vấn đề về phạm vi, một vấn đề race async, và một gán theo chỉ số gây ra thứ tự không xác định—có thể dễ dàng bị bỏ qua, và làm hỏng một buổi chiều hoàn hảo. Nhưng bạn có một vài công cụ AI để cứu trợ.

Gemini đã thử một bản vá

Những phỏng đoán nhanh — nhưng không hoàn toàn phải là vấn đề thực sự

Gemini giữ vị trí trung bình về tốc độ, thể hiện hai phản ứng khác nhau trước ChatGPT nhưng sau Claude. Nó phát hiện đúng vấn đề phạm vi và giải thích phạm vi khối như một phần của giải pháp. Tuy nhiên, nó hoàn toàn bỏ qua một điều kiện tranh chấp ngẫu nhiên do độ trễ xuất hiện sau đó trong mã.

Kết quả là, bản sửa mà họ gửi đi sẽ làm cho mã trông đúng, nhưng về mặt kỹ thuật thì không phải. Bạn sẽ chạy mã, kiểm tra bảng điều khiển, và vẫn gặp phải các vấn đề. Trong hai phản hồi mà Gemini hiển thị, một phản hồi thậm chí còn không giải thích các thay đổi hoặc cách chúng ảnh hưởng đến mã của bạn. Chạy lệnh nhắc nhiều lần cũng tạo ra kết quả khác nhau, bao gồm một trường hợp mà nó phát hiện vấn đề tranh chấp async, nhưng vẫn bỏ sót lỗi gán dựa trên chỉ số.

ChatGPT đã tiến gần

Lý luận tốt, chẩn đoán còn thiếu một phần






ChatGPT chậm hơn, nhưng nó xứng đáng với thời gian. Để bắt đầu, nó đã phát hiện cả ba lỗi—vấn đề phạm vi, thiếu await khiến các nhật ký cuối cùng in ra sớm, và thứ tự không xác định do các độ trễ ngẫu nhiên. Phần giải thích cũng có phương pháp và dễ hiểu đối với người mới bắt đầu.

Nó cũng đưa ra ba lựa chọn khác nhau để khắc phục với những hậu quả khác nhau. Khuyến nghị tốt nhất của nó là một giải pháp sẽ vá mã, giả định rằng phần khác sẽ tự động tuân theo. Về mặt kỹ thuật điều đó là đúng, nhưng bạn sẽ không giải quyết được nguyên nhân gốc rễ theo cách đó. Đó không phải là vá lỗi, mà là trì hoãn vấn đề.

Để công bằng với ChatGPT, nó đã cố gắng sửa nó theo cách đúng đắn, điều này bao gồm việc sửa một vòng lặp trong kịch bản như một giải pháp khác. Tuy nhiên, nó cũng chỉ ra rằng mặc dù việc sửa này là chính xác, việc triển khai nó sẽ chậm hơn.

Claude thực sự đã tìm thấy những lỗi

Người duy nhất đã tìm ra vấn đề thực sự






Claude là người nhanh nhất trong việc đưa ra phản hồi và với giải pháp hoàn chỉnh nhất trong tay. Nó không cung cấp nhiều câu trả lời hoặc mã để khắc phục vấn đề theo các cách khác nhau. Chatbot đã xác định ba vấn đề và một cách có phương pháp giải thích và vá chúng. Lưu ý rằng tôi đã sử dụng Claude Chat cho bài kiểm tra này, chứ không phải Claude Code. Tuy nhiên, Claude đã đề xuất chuyển sang Claude Code ngay sau khi phản hồi.

Kết quả đầu ra cũng không đơn giản như Gemini hay ChatGPT. Mặc dù Claude về mặt kỹ thuật giải thích chính xác, bạn sẽ cần kiến thức về JavaScript để hiểu những gì nó đang nói. Điều đó không vấn đề gì với một lập trình viên giàu kinh nghiệm, nhưng một người mới chơi với một đoạn script họ tìm thấy trực tuyến sẽ phải yêu cầu giải thích đơn giản hơn như một bước tiếp theo. Dù sao, Claude cũng giỏi trong việc dọn dẹp mã do ChatGPT tạo ra, vì vậy nếu bạn đang tìm một công cụ gỡ lỗi, có thể đây chính là nó.

Tốc độ không có nghĩa gì nếu không chính xác

Đúng quan trọng hơn nhanh

Đã có những lúc Claude chính xác nhưng chậm, còn ChatGPT chính xác nhưng nhanh. Về mặt kỹ thuật, bạn có thể gọi đó là một trận hòa giữa ChatGPT và Claude, nhưng các phản hồi của Claude thường đầy đủ, chính xác và có cấu trúc tốt hơn—trong khi hai cái còn lại chỉ quản lý được các phản hồi một phần trong cùng thời gian, nếu không muốn nói là lâu hơn.

Sự kết hợp đó có giá trị thực tế mà tích lũy theo suốt quá trình gỡ lỗi. Nếu bạn đang làm việc với một cơ sở mã đặc biệt lớn, mỗi phút bạn tiết kiệm có thể cộng dồn thành hàng giờ khi bạn hoàn thành. Chưa kể sự nhầm lẫn mà nó sẽ gây ra khi bạn vá một cái gì đó bằng một bản sửa bề mặt và cuối cùng lại có nhiều vấn đề hơn hoặc hoàn toàn khác.

Chọn AI phù hợp cho công việc gỡ lỗi thực sự

Điều này thực sự có ý nghĩa gì đối với các nhà phát triển

Có một số nhiệm vụ mà LLMs hay tưởng tượng sai, nhưng chúng vẫn cực kỳ hữu ích cho việc tạo mã và gỡ lỗi. Gemini hữu ích cho nhiều nhiệm vụ, đặc biệt với sự tích hợp trong hệ sinh thái Google của nó, và ChatGPT sẽ phát hiện hầu hết (nếu không muốn nói là tất cả) các lỗi và vá chúng, mặc dù đôi khi với các giải pháp gây nhầm lẫn. Claude nhanh hơn và đồng nhất hơn cùng lúc là một lợi thế khó có thể bỏ qua.

Khi bạn đang làm việc với các vấn đề yêu cầu theo dõi nguyên nhân và kết quả qua một luồng thực thi không dễ nhận biết, khả năng suy luận tốt hơn này sẽ cẩn thận và đầy đủ hơn—nghĩa là bạn sẽ sửa nguyên nhân gốc rễ thường xuyên hơn. Đối với các kiểm tra nhanh để đảm bảo hợp lý, bất kỳ trong ba phương án đều được. Nhưng khi bạn đang làm việc với các lỗi gây hiểu lầm hoặc mang tính kỹ thuật hơn, Claude có thể là lựa chọn tốt hơn.

Bài viết liên quan