Nó tiếp tục astounds tôi rằng, trong thời đại ngày nay, các sản phẩm đó có nhiều năm sử dụng dưới vành đai của họ, được xây dựng bởi các nhóm của các chuyên gia, vẫn còn cho đến ngày nay - không cung cấp được các thông báo lỗi hữu ích cho người dùng. Trong một số trường hợp, việc bổ sung chỉ một chút thông tin bổ sung có thể giúp người dùng tránh được hàng giờ rắc rối.
Một chương trình tạo ra lỗi, tạo ra nó vì một lý do. Nó có mọi thứ theo ý mình để thông báo cho người dùng nhiều nhất có thể, tại sao một cái gì đó thất bại. Tuy nhiên, dường như việc cung cấp thông tin để hỗ trợ người dùng là ưu tiên thấp. Tôi nghĩ rằng đây là một thất bại lớn.
Một ví dụ là từ SQL Server. Khi bạn thử và khôi phục cơ sở dữ liệu đang sử dụng, nó hoàn toàn không cho phép bạn. SQL Server biết các quy trình và ứng dụng đang truy cập vào nó. Tại sao nó không thể bao gồm thông tin về (các) quá trình đang sử dụng cơ sở dữ liệu? Tôi biết không phải ai cũng vượt qua một Applicatio_Name
thuộc tính trên chuỗi kết nối của họ, nhưng ngay cả một gợi ý về máy đang được đề cập cũng có thể hữu ích.
Một ứng cử viên khác, cũng là SQL Server (và myQuery) là string or binary data would be truncated
thông báo lỗi đáng yêu và tương đương. Rất nhiều thời gian, một dấu hiệu đơn giản của câu lệnh SQL đã được tạo và bảng cho biết cột nào là thủ phạm. Điều này không phải lúc nào cũng đúng, và nếu công cụ cơ sở dữ liệu phát hiện ra lỗi, tại sao nó không thể giúp chúng ta tiết kiệm thời gian đó và chỉ cho chúng ta biết đó là cột chết tiệt nào? Trong ví dụ này, bạn có thể lập luận rằng có thể có một điểm nhấn hiệu năng để kiểm tra nó và điều này sẽ cản trở người viết. Tốt thôi, tôi sẽ mua cái đó. Làm thế nào, một khi công cụ cơ sở dữ liệu biết có lỗi, nó sẽ so sánh nhanh sau thực tế, giữa các giá trị sẽ được lưu trữ, so với độ dài cột. Sau đó hiển thị nó cho người dùng.
Bộ điều hợp bảng khủng khiếp của ASP.NET cũng có tội. Các truy vấn có thể được thực thi và người ta có thể nhận được một thông báo lỗi nói rằng một ràng buộc ở đâu đó đang bị vi phạm. Cảm ơn vì điều đó. Thời gian để so sánh mô hình dữ liệu của tôi với cơ sở dữ liệu, bởi vì các nhà phát triển quá lười biếng để cung cấp ngay cả một số hàng hoặc dữ liệu ví dụ. (Đối với bản ghi, tôi không bao giờ sử dụng phương thức truy cập dữ liệu này theo lựa chọn , đó chỉ là một dự án tôi đã kế thừa!).
Bất cứ khi nào tôi ném một ngoại lệ từ mã C # hoặc C ++ của mình, tôi sẽ cung cấp mọi thứ tôi có trong tay cho người dùng. Quyết định đã được đưa ra để ném nó, vì vậy tôi càng cung cấp nhiều thông tin thì càng tốt. Tại sao chức năng của tôi ném một ngoại lệ? Những gì đã được thông qua, và những gì được mong đợi? Tôi chỉ mất một chút thời gian để đặt một cái gì đó có ý nghĩa trong cơ thể của một thông điệp ngoại lệ. Chết tiệt, nó chẳng giúp được gì cho tôi trong khi tôi phát triển, vì tôi biết mã của tôi ném những thứ có ý nghĩa.
Người ta có thể lập luận rằng các thông báo ngoại lệ phức tạp không nên được hiển thị cho người dùng. Trong khi tôi không đồng ý với điều đó, thì đó là một đối số có thể dễ dàng được xoa dịu bằng cách có mức độ chi tiết khác nhau tùy thuộc vào bản dựng của bạn. Ngay cả khi đó, người dùng ASP.NET và SQL Server không phải là người dùng thông thường của bạn và sẽ thích một cái gì đó đầy đủ thông tin chi tiết và có ích vì họ có thể theo dõi vấn đề của họ nhanh hơn.
Tại sao các nhà phát triển nghĩ rằng không sao, trong thời đại ngày nay, để cung cấp lượng thông tin tối thiểu khi xảy ra lỗi?
Đó là năm 2011 chàng trai, đi trên .