Có một cuộc thảo luận đang diễn ra tại comp.lang.c ++. Được kiểm duyệt về việc có xác nhận hay không, trong C ++ chỉ tồn tại trong các bản dựng gỡ lỗi theo mặc định, nên được giữ trong mã sản xuất hay không.
Rõ ràng, mỗi dự án là duy nhất, vì vậy câu hỏi của tôi ở đây không phải là quá nhiều liệu có nên giữ các xác nhận hay không, nhưng trong trường hợp này điều này được khuyến khích / không phải là một ý tưởng tốt.
Theo khẳng định, ý tôi là:
- Kiểm tra thời gian chạy kiểm tra một điều kiện, khi sai, sẽ phát hiện ra lỗi trong phần mềm.
- Một cơ chế mà chương trình bị tạm dừng (có thể sau khi thực sự làm sạch tối thiểu).
Tôi không nhất thiết phải nói về C hoặc C ++.
Ý kiến riêng của tôi là nếu bạn là lập trình viên, nhưng không sở hữu dữ liệu (đó là trường hợp của hầu hết các ứng dụng máy tính để bàn thương mại), bạn nên giữ chúng, bởi vì một xác nhận thất bại cho thấy có lỗi và bạn không nên đi với một lỗi, với nguy cơ làm hỏng dữ liệu của người dùng. Điều này buộc bạn phải kiểm tra mạnh mẽ trước khi giao hàng và làm cho các lỗi dễ nhìn thấy hơn, do đó dễ dàng phát hiện và sửa chữa hơn.
Ý kiến / kinh nghiệm của bạn là gì?
Chúc mừng
Carl
Xem câu hỏi liên quan tại đây
Phản hồi và cập nhật
Này Graham
Một xác nhận là lỗi, thuần túy và đơn giản và do đó nên được xử lý như một. Vì một lỗi nên được xử lý trong chế độ phát hành nên bạn không thực sự cần xác nhận.
Đó là lý do tại sao tôi thích từ "lỗi" khi nói về các xác nhận. Nó làm cho mọi thứ rõ ràng hơn nhiều. Đối với tôi, từ "lỗi" quá mơ hồ. Một tập tin bị thiếu là một lỗi, không phải là một lỗi và chương trình nên xử lý nó. Cố gắng để vô hiệu hóa một con trỏ null là một lỗi và chương trình nên thừa nhận rằng một cái gì đó có mùi như phô mai xấu.
Do đó, bạn nên kiểm tra con trỏ bằng một xác nhận, nhưng sự hiện diện của tệp với mã xử lý lỗi thông thường.
Hơi lạc đề, nhưng một điểm quan trọng trong cuộc thảo luận.
Là một người đứng đầu, nếu các xác nhận của bạn đột nhập vào trình gỡ lỗi khi chúng thất bại, tại sao không. Nhưng có rất nhiều lý do khiến một tập tin không thể tồn tại nằm ngoài tầm kiểm soát của mã của bạn: quyền đọc / ghi, ổ đĩa đầy, thiết bị USB không được cắm, v.v. Vì bạn không kiểm soát được nó, tôi cảm thấy các xác nhận là không phải là cách đúng đắn để đối phó với điều đó.
Carl
Thomas,
Có, tôi có Code Complete và phải nói rằng tôi hoàn toàn không đồng ý với lời khuyên cụ thể đó.
Nói rằng bộ cấp phát bộ nhớ tùy chỉnh của bạn vặn lên và thay đổi một đoạn bộ nhớ vẫn còn được sử dụng bởi một số đối tượng khác. Tôi tình cờ nhận được một con trỏ mà đối tượng này thường xuyên tham gia và một trong những điều bất biến là con trỏ này không bao giờ là null và bạn có một vài xác nhận để đảm bảo rằng nó vẫn giữ nguyên như vậy. Bạn sẽ làm gì nếu con trỏ đột nhiên là null. Bạn chỉ nếu () xung quanh nó, hy vọng rằng nó hoạt động?
Hãy nhớ rằng, chúng ta đang nói về mã sản phẩm ở đây, vì vậy không có sự xâm nhập vào trình gỡ lỗi và kiểm tra trạng thái địa phương. Đây là một lỗi thực sự trên máy của người dùng.
Carl