Gỡ lỗi là một công cụ rất hữu ích để kiểm tra trạng thái của các đối tượng và các biến trong mã của bạn trong thời gian chạy.
Như đã đề cập trước đây trong các câu trả lời ở trên, gỡ lỗi là cực kỳ hữu ích, nhưng có một số trường hợp bị hạn chế.
Theo kinh nghiệm của tôi, tôi thấy việc sử dụng trình gỡ lỗi rất hữu ích vì nó giúp tiết lộ các giả định sai mà tôi đang đưa ra về trạng thái mã của mình. Một số người không thông minh khi đọc mã để tìm lỗi, vì vậy việc gỡ lỗi có thể giúp tiết lộ các giả định sai mà bạn hoặc nhà phát triển khác đưa ra về trạng thái của mã.
Có thể bạn mong đợi rằng một tham số sẽ không bao giờ là null khi được truyền cho một phương thức, vì vậy bạn không bao giờ kiểm tra trường hợp đó và tiếp tục trong phương thức như thể tham số đó sẽ không bao giờ là null. Thực tế là tham số đó cuối cùng sẽ trở thành null ngay cả khi bạn đặt làm điều kiện tiên quyết cho phương thức mà tham số không bao giờ nên null. Nó sẽ luôn xảy ra.
Trái ngược với tính hữu dụng của trình gỡ lỗi trong các ví dụ đã nói ở trên, tôi thấy khó sử dụng và có phần không hữu ích khi sử dụng đa luồng (nghĩa là xử lý đồng thời, xử lý không đồng bộ). Nó có thể giúp ích, nhưng rất dễ để mất định hướng của bạn trong sương mù đa luồng khi các điểm dừng của trình gỡ lỗi đang bị tấn công trong một luồng tại điểm A và một luồng hoàn toàn riêng biệt tại điểm B. Nhà phát triển buộc phải đẩy điểm dừng mới " quá trình suy nghĩ "trên đỉnh" ngăn xếp "của bộ não và tự hướng đến mã ở điểm dừng mới. Sau khi mức độ liên quan của điểm dừng B giảm, nhà phát triển sau đó chuyển trở lại điểm dừng đầu tiên và phải nhớ lại những gì anh ta / cô ta đang tìm kiếm trước khi kích hoạt điểm dừng B. Tôi biết rằng đây có thể là một lời giải thích khó hiểu,
Ngoài ra, việc không thể đoán trước được mã đồng thời có thể khiến nhà phát triển mất tập trung hơn trong việc gỡ lỗi mã đồng thời.
Tóm lại, theo ý kiến trung thực của tôi:
- Gỡ lỗi khi sử dụng đồng thời = xu hướng tăng mất tập trung vào "mô hình suy nghĩ gỡ lỗi"
và
- bất cứ lúc nào khác = tăng năng suất gỡ lỗi b / c sự chú ý của bạn không bị gián đoạn bởi các điểm dừng bất ngờ (bất ngờ do điều kiện cuộc đua).