Null phục vụ một mục đích rất hợp lệ đại diện cho việc thiếu giá trị.
Tôi sẽ nói tôi là người có tiếng nói nhất mà tôi biết về việc lạm dụng null và tất cả những cơn đau đầu và đau khổ mà họ có thể gây ra đặc biệt là khi được sử dụng một cách tự do.
Quan điểm cá nhân của tôi là mọi người có thể sử dụng null chỉ khi họ có thể biện minh cho việc đó là cần thiết và thích hợp.
Ví dụ minh chứng null:
Ngày chết thường là một lĩnh vực vô giá trị. Có ba tình huống có thể xảy ra với ngày chết. Người đó đã chết và ngày được biết, người đó đã chết và ngày không xác định, hoặc người đó không chết và do đó ngày chết không tồn tại.
Ngày chết cũng là trường DateTime và không có giá trị "không xác định" hoặc "trống". Nó có ngày mặc định xuất hiện khi bạn tạo một mốc thời gian mới thay đổi dựa trên ngôn ngữ được sử dụng, nhưng về mặt kỹ thuật, người đó thực tế đã chết vào thời điểm đó và sẽ gắn cờ là "giá trị trống" của bạn nếu bạn sử dụng ngày mặc định
Các dữ liệu sẽ cần phải đại diện cho tình huống đúng.
Người chết là ngày chết được biết đến (3/9/1984)
Đơn giản, '3/9/1984'
Người chết không rõ ngày chết
Vậy điều gì là tốt nhất? Không , '0/0/0000' hoặc '01 / 01/1869 '(hoặc giá trị mặc định của bạn là gì?)
Người không chết ngày không được áp dụng
Vậy điều gì là tốt nhất? Không , '0/0/0000' hoặc '01 / 01/1869 '(hoặc giá trị mặc định của bạn là gì?)
Vì vậy, hãy nghĩ từng giá trị ...
- Không , nó có ý nghĩa và mối quan tâm bạn cần phải cảnh giác, vô tình cố gắng thao túng nó mà không xác nhận nó không phải là ví dụ đầu tiên sẽ ném một ngoại lệ, nhưng nó cũng đại diện tốt nhất cho tình huống thực tế ... Nếu người đó không chết ngày chết không tồn tại ... không có gì ... không có gì ...
- 0/0/0000 , Điều này có thể ổn trong một số ngôn ngữ và thậm chí có thể là một đại diện thích hợp không có ngày. Thật không may, một số ngôn ngữ và xác nhận sẽ từ chối đây là một datetime không hợp lệ, điều này khiến nó không hoạt động trong nhiều trường hợp.
- 1/1/1869 (hoặc bất kể giá trị thời gian mặc định của bạn là gì) , vấn đề ở đây là nó rất khó xử lý. Bạn có thể sử dụng điều đó khi bạn thiếu giá trị giá trị, ngoại trừ điều gì xảy ra nếu tôi muốn lọc tất cả các hồ sơ của mình, tôi không có ngày chết? Tôi có thể dễ dàng lọc ra những người thực sự đã chết vào ngày đó có thể gây ra sự cố toàn vẹn dữ liệu.
Thực tế là đôi khi bạn Đừng cần phải thể hiện không có gì và chắc chắn đôi khi một loại biến hoạt động tốt vì điều đó, nhưng loại thường biến cần để có thể đại diện cho gì cả.
Nếu tôi không có táo tôi có 0 quả táo, nhưng nếu tôi không biết tôi có bao nhiêu quả táo thì sao?
Bằng mọi cách, null bị lạm dụng và có khả năng gây nguy hiểm, nhưng đôi khi nó cần thiết. Nó chỉ là mặc định trong nhiều trường hợp bởi vì cho đến khi tôi cung cấp một giá trị thì thiếu một giá trị và một cái gì đó cần phải thể hiện nó. (Vô giá trị)