Câu hỏi về các giá trị mặc định nói chung - giá trị hàm trả về mặc định, giá trị tham số mặc định, logic mặc định khi thiếu thứ gì đó, logic mặc định để xử lý ngoại lệ, logic mặc định để xử lý các điều kiện cạnh, v.v.
Trong một thời gian dài, tôi coi các giá trị mặc định là một thứ "xấu xa thuần túy", một thứ "che giấu thảm họa" và dẫn đến một lỗi rất khó tìm ra. Nhưng gần đây tôi bắt đầu nghĩ về các giá trị mặc định như một loại nợ kỹ thuật ... đó không phải là một điều xấu hoàn toàn mà là thứ có thể cung cấp một số "tài chính ngắn hạn" giúp chúng tôi tồn tại trong dự án (bao nhiêu người trong chúng ta có thể đủ khả năng mua nhà mà không cần thế chấp?).
Khi tôi nói "ngắn hạn" - ý tôi không phải là - "hãy làm điều gì đó nhanh chóng trước và thực hiện tái cấu trúc nó sau đó trước khi nó bắt đầu sản xuất". Không - Tôi đang nói về việc dựa vào các giá trị mặc định được mã hóa cứng trong một phần mềm sản xuất. Cấp - nó có thể gây ra một số vấn đề, nhưng nếu nó chỉ gây ra một rắc rối trong cả năm.
Một lần nữa - tôi đang nói về phần mềm chính "trung bình" ở đây (không phải là phần mềm cho nhà máy điện hạt nhân) - trang web trung bình hoặc ứng dụng UI cho phần mềm kế toán, có nghĩa là mọi người không bị đe dọa, cũng không phải hàng triệu đô la .
Một lần nữa, từ kinh nghiệm của tôi, người dùng doanh nghiệp thà sống với phần mềm "hoạt động bằng cách nào đó", thay vì chờ đợi một phần mềm hoàn hảo. Và việc sử dụng các giá trị mặc định sẽ giúp ích rất nhiều nếu bạn phát triển một phần mềm theo kiểu RAD. Nhưng một lần nữa - các phiên gỡ lỗi dài nhất tôi đã trải qua là do các lỗi được giới thiệu bởi một giá trị mặc định đã dừng là "mặc định" trên đường đi hoặc do một hệ thống con nhỏ gần đây đã được nâng cấp và do nâng cấp này, nó đã không được nâng cấp xử lý chính xác mặc định (ví dụ: danh sách trống so với null hoặc chuỗi null so với chuỗi rỗng).
Vì vậy, câu hỏi của tôi là - là các giá trị mặc định tốt hay xấu. Và nếu chúng là một khoản nợ kỹ thuật - làm thế nào để đo lường số tiền bạn có thể vay để bạn có thể đủ khả năng trả nợ?
Sẽ thực sự đánh giá cao bất kỳ đầu vào.
Chúc mừng.
BIÊN TẬP:
Nếu tôi đang sử dụng các giá trị mặc định như một cách để cắt các góc trong quá trình phát triển - và nếu việc cắt góc dẫn đến lỗi và sự cố - phương pháp để phục hồi từ những vấn đề này là gì?