Guard

Sposób na wyrugowanie nulli z projektu

Posted on Updated on

null to zło: https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare

A teraz jak sobie z tym radzę:
– nigdzie explicite nie tworzyć null
– uczynić wszystkie obiekty immutable z konstruktorem mającym Guardy przeciw null, zapobiegnie to inicjalizowania nullami gdy nic nie zostało ustawione explicite
– uważać na metody LINQ typu FirstOrDefault(), więc albo unikać “OrDefault”, czyli korzystać z First(), Single(), albo odpowiednio zająć się sytuacjami gdy jednak ten defaultowy null może być przekazany
– Guardy na input z zewnętrz do naszych serwisów, chodzi o wywołania naszego kodu przez kod kliencki (ale gdyby to miał być UI to sytuacja jest analogiczna – nie wpuszczać nulli).

Przeoczyłem coś oczywistego?
Czy może ktoś uważa, że to jest naiwnie zbyt proste i się nie uda.

Advertisements