Gỡ lỗi là một phần thiết yếu của quá trình phát triển phần mềm, chiếm một lượng lớn thời gian. Các công cụ gỡ lỗi phù hợp giúp tiết kiệm thời gian, duy trì sự tỉnh táo và nâng cao năng suất của nhà phát triển.
1. Chrome DevTools – Cứu tinh của Frontend
Chrome DevTools là công cụ không thể thiếu để sửa lỗi frontend. Nó được tích hợp sẵn trong trình duyệt Google Chrome. Công cụ này cho phép kiểm tra các phần tử, chỉnh sửa CSS trực tiếp, theo dõi các cuộc gọi mạng và gỡ lỗi JavaScript từng bước. [[1]](//developer.chrome.com/docs/devtools/javascript?hl=vi)[[2]](//viblo.asia/p/chrome-devtools-Ljy5Vy29lra)
- Ưu điểm: Được tích hợp sẵn, miễn phí và rất mạnh mẽ. [[1]](//developer.chrome.com/docs/devtools/javascript?hl=vi)
- Nhược điểm: Có thể gây khó khăn cho người mới bắt đầu.
- Ứng dụng thực tế: Đã từng giúp sửa lỗi bố cục trên môi trường sản phẩm bằng cách chỉnh sửa CSS trực tiếp trong DevTools trước khi triển khai bản vá chính thức.
2. Postman – Gỡ lỗi API dễ dàng
Postman là công cụ lý tưởng để tái hiện các vấn đề về API mà không cần khởi động toàn bộ giao diện người dùng. [[3]](//learning.postman.com/docs/sending-requests/response-data/troubleshooting-api-requests/)[[4]](//elispostman.github.io/docs/v6/postman/sending_api_requests/troubleshooting_api_requests)
- Ưu điểm: Giao diện người dùng tốt, cho phép lưu và chia sẻ các yêu cầu. [[3]](//learning.postman.com/docs/sending-requests/response-data/troubleshooting-api-requests/)
- Nhược điểm: Có thể nặng cho các yêu cầu nhanh, nhưng đáng giá.
- Ứng dụng thực tế: Đã phát hiện một yêu cầu POST bị lỗi do định dạng JSON sai lệch, được tìm thấy chỉ trong vài phút với Postman. [[5]](//apidog.com/vi/blog/postman-400-bad-request-vi/)
3. VS Code Debugger – Gỡ lỗi chuyên nghiệp
Trình gỡ lỗi của VS Code cho phép chạy từng bước qua mã, kiểm tra biến và bỏ qua các thông báo log không cần thiết. [[6]](//www.polimetro.com/vi/como-hacer-debug-en-visual-studio-code/)[[7]](//www.iostream.co/article/huong-dan-lap-trinh-c-va-go-loi-voi-visual-studio-code-B3YG31)
- Ưu điểm: Hoạt động ngay lập tức cho hầu hết các thiết lập. [[8]](//code.visualstudio.com/docs/debugtest/debugging)
- Nhược điểm: Cần cấu hình một chút cho các ứng dụng Node hoặc SSR React.
- Ứng dụng thực tế: Đã sử dụng để theo dõi một lỗi rò rỉ bộ nhớ trong ứng dụng Node, một lỗi mà nếu chỉ dùng log sẽ mất hàng giờ để tìm ra.
4. Git Bisect – Truy tìm commit gây lỗi
Git Bisect là công cụ giúp tìm ra commit nào đã gây ra lỗi. [[9]](//dev.to/alvesjessica/using-git-bisect-to-find-the-faulty-commit-25gf)[[10]](//www.mikestreety.co.uk/blog/find-a-troublesome-commit-with-git-bisect/)
- Ưu điểm: Rất nhanh chóng cho các lỗi hồi quy. [[9]](//dev.to/alvesjessica/using-git-bisect-to-find-the-faulty-commit-25gf)
- Nhược điểm: Cần một trường hợp kiểm thử có thể tái hiện được để hoạt động. [[9]](//dev.to/alvesjessica/using-git-bisect-to-find-the-faulty-commit-25gf)
- Ứng dụng thực tế: Đã từng truy tìm một lỗi tồn tại hai tuần về một commit duy nhất; nếu không có Bisect, có thể đã đổ lỗi sai mã.
5. Sentry – Theo dõi lỗi sản phẩm
Sentry hiển thị chính xác nơi xảy ra lỗi, kèm theo stack trace và ngữ cảnh người dùng. [[11]](//sentry.io/)[[12]](//bizflycloud.vn/tin-tuc/sentry-la-gi-20190322142903761.htm)
- Ưu điểm: Cảnh báo, báo cáo chi tiết và phiên người dùng. [[12]](//bizflycloud.vn/tin-tuc/sentry-la-gi-20190322142903761.htm)[[13]](//200lab.io/blog/tim-hieu-sentry-cong-cu-theo-doi-loi-va-hieu-suat-tu-dong)
- Nhược điểm: Gói miễn phí có giới hạn. [[13]](//200lab.io/blog/tim-hieu-sentry-cong-cu-theo-doi-loi-va-hieu-suat-tu-dong)
- Ứng dụng thực tế: Đã tìm thấy một lỗi chỉ xảy ra trên Safari thông qua Sentry mà người dùng gặp phải mà không biết.
6. Wireshark – Gỡ lỗi mạng chuyên sâu
Wireshark là phương án cuối cùng khi các yêu cầu mạng biến mất. [[14]](//bkhost.vn/blog/wireshark/)[[15]](//vietnix.vn/wireshark-la-gi/)
- Ưu điểm: Cho phép kiểm tra chi tiết các gói mạng. [[14]](//bkhost.vn/blog/wireshark/)[[15]](//vietnix.vn/wireshark-la-gi/)
- Nhược điểm: Đường cong học tập dốc nếu bạn là người mới. [[14]](//bkhost.vn/blog/wireshark/)
- Ứng dụng thực tế: Đã tìm thấy một cấu hình proxy sai gây mất các yêu cầu ngẫu nhiên; nếu không có công cụ này, vẫn sẽ phải đoán mò.
7. Docker Logs & Exec – Gỡ lỗi bên trong container
Đối với các ứng dụng được đóng gói trong container, docker logs và docker exec là những công cụ không thể thiếu. [[16]](//docs.docker.com/reference/cli/docker/container/logs/)[[17]](//stackoverflow.com/questions/42958854/docker-run-docker-exec-and-logs)
- Ưu điểm: Cho phép gỡ lỗi các container đang chạy một cách dễ dàng. [[18]](//www.tpisoftware.vn/blog/enterprise-management/giam-sat-log-docker)
- Nhược điểm: Yêu cầu kiến thức về Docker.
- Ứng dụng thực tế: Đã truy cập vào một container đang chạy để kiểm tra biến môi trường, tìm thấy một cấu hình bị thiếu chỉ trong vài phút.
8. ESLint & Prettier – Ngăn chặn lỗi từ sớm
Mã sạch đồng nghĩa với ít lỗi hơn. ESLint bắt các lỗi nhỏ, và Prettier giữ cho mã nhất quán. [[19]](//medium.com/@thanhtrung_united/eslint-2c4d8a01fd93)[[20]](//manhhomienbienthuy.github.io/2018/05/20/tai-sao-nen-su-dung-eslint-cho-du-an.html)
- Ưu điểm: Ngăn chặn các lỗi nhỏ từ giai đoạn đầu. [[21]](//topdev.vn/blog/setup-eslint-va-prettier-cho-du-an-react/)
- Nhược điểm: Có thể gây khó chịu nếu các quy tắc không được thiết lập đúng. [[21]](//topdev.vn/blog/setup-eslint-va-prettier-cho-du-an-react/)
- Ứng dụng thực tế: ESLint đã từng phát hiện một biến không sử dụng gây lỗi âm thầm trên môi trường sản phẩm.
9. Công cụ giám sát nhật ký (Graylog, Kibana)
Khi có sự cố xảy ra trên môi trường sản phẩm, nhật ký sẽ kể lại câu chuyện. Việc tập trung nhật ký giúp tiết kiệm hàng giờ đoán mò. [[22]](//www.itstar.vn/Tin-tuc-cong-nghe/tin-tuc-26/GIAM-SAT-HE-THONG-SU-DUNG-GRAYLOG.html)[[23]](//blog.desdelinux.net/vi/greylog-m%E1%BB%99t-c%C3%B4ng-c%E1%BB%A5-%C4%91%E1%BB%83-qu%E1%BA%A3n-l%C3%BD-v%C3%A0-ph%C3%A2n-t%C3%ADch-nh%E1%BA%ADt-k%C3%BD/)
- Ưu điểm: Xem nhật ký từ nhiều dịch vụ ở một nơi. [[22]](//www.itstar.vn/Tin-tuc-cong-nghe/tin-tuc-26/GIAM-SAT-HE-THONG-SU-DUNG-GRAYLOG.html)[[24]](//viblo.asia/p/trien-khai-bo-luu-tru-log-tap-trung-voi-graylog-RQqKLLR4K7z)
- Nhược điểm: Cần thiết lập và tài nguyên máy chủ. [[22]](//www.itstar.vn/Tin-tuc-cong-nghe/tin-tuc-26/GIAM-SAT-HE-THONG-SU-DUNG-GRAYLOG.html)
- Ứng dụng thực tế: Đã theo dõi luồng thanh toán bị lỗi trên các microservice chỉ trong vài phút mà không cần chạm vào mã nguồn.
10. Gỡ lỗi bằng vịt cao su (Rubber Duck Debugging)
Kỹ thuật gỡ lỗi bằng vịt cao su là một phương pháp cũ nhưng hiệu quả. Việc giải thích lỗi cho người khác (hoặc một con vịt cao su) hoạt động rất tốt. [[25]](//codelearn.io/sharing/ky-thuat-debug-dinh-cao-rubber-ducking)[[26]](//vi.wikipedia.org/wiki/G%E1%BB%A1_l%E1%BB%97i_v%E1%BB%8Bt_cao_su)
- Ưu điểm: Miễn phí, mang lại sự rõ ràng ngay lập tức. [[25]](//codelearn.io/sharing/ky-thuat-debug-dinh-cao-rubber-ducking)[[27]](//viblo.asia/p/rubber-ducking-ky-thuat-debug-thuong-thua-bJzKmxNO59N)
- Nhược điểm: Mọi người có thể nhìn bạn một cách kỳ lạ. [[28]](//codegym.vn/blog/vit-cao-su-ki-thuat-debug-dinh-cao-cua-lap-trinh-vien/)
- Ứng dụng thực tế: Nhiều lần, chỉ cần viết một tin nhắn Slack mô tả lỗi đã giúp tìm ra giải pháp trước khi gửi.
Lưu ý của biên tập viên: Tôi không liên kết với bất kỳ công cụ, trang web hoặc dịch vụ nào được đề cập trong bài viết này. Tất cả các liên kết và tham chiếu được chia sẻ hoàn toàn vì mục đích giáo dục dựa trên kinh nghiệm cá nhân và để giúp các nhà phát triển khám phá các công cụ gỡ lỗi hữu ích.
Gỡ lỗi không chỉ là sửa lỗi; đó là việc có đúng công cụ để làm cho công việc của bạn dễ dàng hơn. Bắt đầu với những công cụ này, làm quen với chúng, và bạn sẽ giảm một nửa thời gian gỡ lỗi của mình.
—
Learn more:
1. [Gỡ lỗi JavaScript | Chrome DevTools](//developer.chrome.com/docs/devtools/javascript?hl=vi)
2. [Chrome Devtools – Viblo](//viblo.asia/p/chrome-devtools-Ljy5Vy29lra)
3. [Debug API requests in Postman](//learning.postman.com/docs/sending-requests/response-data/troubleshooting-api-requests/)
4. [Troubleshooting API requests](//elispostman.github.io/docs/v6/postman/sending_api_requests/troubleshooting_api_requests)
5. [\[Đã giải quyết\] Postman 400 Yêu cầu không hợp lệ – Apidog](//apidog.com/vi/blog/postman-400-bad-request-vi/)
6. [Cách gỡ lỗi trong Visual Studio Code từng bước – Polimetro](//www.polimetro.com/vi/como-hacer-debug-en-visual-studio-code/)
7. [Hướng Dẫn Lập Trình C++ và Gỡ Lỗi với Visual Studio Code – IO Stream](//www.iostream.co/article/huong-dan-lap-trinh-c-va-go-loi-voi-visual-studio-code-B3YG31)
8. [Debug code with Visual Studio Code](//code.visualstudio.com/docs/debugtest/debugging)
9. [Using \`git bisect\` to find the faulty commit – DEV Community](//dev.to/alvesjessica/using-git-bisect-to-find-the-faulty-commit-25gf)
10. [Find a troublesome commit with Git Bisect – Mike Street](//www.mikestreety.co.uk/blog/find-a-troublesome-commit-with-git-bisect/)
11. [Sentry: Application Performance Monitoring & Error Tracking Software](//sentry.io/)
12. [Sentry là gì? Theo dõi và khắc phục lỗi trong Javascript – Bizfly Cloud](//bizflycloud.vn/tin-tuc/sentry-la-gi-20190322142903761.htm)
13. [Tìm hiểu Sentry: Công cụ Theo dõi Lỗi và Hiệu suất tự động | 200Lab Blog](//200lab.io/blog/tim-hieu-sentry-cong-cu-theo-doi-loi-va-hieu-suat-tu-dong)
14. [Wireshark là gì? Hướng dẫn sử dụng Wireshark cực đơn giản – BKHOST](//bkhost.vn/blog/wireshark/)
15. [Wireshark là gì? Chức năng và hướng dẫn sử dụng Wireshark toàn tập – Vietnix](//vietnix.vn/wireshark-la-gi/)
16. [docker container logs](//docs.docker.com/reference/cli/docker/container/logs/)
17. [docker run, docker exec and logs – Stack Overflow](//stackoverflow.com/questions/42958854/docker-run-docker-exec-and-logs)
18. [Giám Sát Log Docker: Hướng Dẫn Toàn Diện Cho DevOps 2025 – TPIsoftware](//www.tpisoftware.vn/blog/enterprise-management/giam-sat-log-docker)
19. [ESlint VS Prettier. Lời mở đầu : Trong bài viết này mình sẽ… | by Thanhtrung – Medium](//medium.com/@thanhtrung_united/eslint-2c4d8a01fd93)
20. [Tại sao nên sử dụng ESLint cho dự án? – manhhomienbienthuy](//manhhomienbienthuy.github.io/2018/05/20/tai-sao-nen-su-dung-eslint-cho-du-an.html)
21. [Setup Eslint và Prettier cho dự án React theo chuẩn coding style guide của Airbnb – TopDev](//topdev.vn/blog/setup-eslint-va-prettier-cho-du-an-react/)
22. [GIÁM SÁT HỆ THỐNG SỬ DỤNG GRAYLOG – itstarvn](//www.itstar.vn/Tin-tuc-cong-nghe/tin-tuc-26/GIAM-SAT-HE-THONG-SU-DUNG-GRAYLOG.html)
23. [Graylog, một công cụ để quản lý và phân tích nhật ký – Desde Linux](//blog.desdelinux.net/vi/greylog-m%E1%BB%99t-c%C3%B4ng-c%E1%BB%A5-%C4%91%E1%BB%83-qu%E1%BA%A3n-l%C3%BD-v%C3%A0-ph%C3%A2n-t%C3%ADch-nh%E1%BA%ADt-k%C3%BD/)
24. [Triển khai bộ lưu trữ log tập trung với Graylog – Viblo](//viblo.asia/p/trien-khai-bo-luu-tru-log-tap-trung-voi-graylog-RQqKLLR4K7z)
25. [Kỹ thuật debug đỉnh cao: Rubber ducking – CodeLearn](//codelearn.io/sharing/ky-thuat-debug-dinh-cao-rubber-ducking)
26. [Gỡ lỗi vịt cao su – Wikipedia tiếng Việt](//vi.wikipedia.org/wiki/G%E1%BB%A1_l%E1%BB%97i_v%E1%BB%8Bt_cao_su)
27. [Rubber Ducking – Kỹ thuật Debug thượng thừa – Viblo](//viblo.asia/p/rubber-ducking-ky-thuat-debug-thuong-thua-bJzKmxNO59N)
28. [Vịt cao su- kĩ thuật debug ”đỉnh cao” của lập trình viên – CodeGym](//codegym.vn/blog/vit-cao-su-ki-thuat-debug-dinh-cao-cua-lap-trinh-vien/)
Tham khảo: medium.com

Bài viết liên quan: