Wpis z mikrobloga

21/100 dni z książką

Nie zwracamy null.
Nie zliczę widzianych przeze mnie aplikacji, w których niemal każdy wiersz kodu zawierał test wartości null. [...] Gdy zwracamy wartość null, w rzeczywistości tworzymy sobie dodatkową pracę i powodujemy problemy w funkcjach wywołujących. W takich przypadkach brak jednego testu wartości null powoduje, że aplikacja wymyka się spod kontroli.”

[Więcej infomacji]


#feaoftruss #czystykod #programowanie #programista15k #webdev #gamedev

Podobało się? To zaplusuj i zapisz się do wołania (link w stopce)

************

[Chcesz być wołany?]
  • 93
  • Odpowiedz
@Vetinari powtórzę się z wczoraj
"swoją drogą należy według mnie rozróżniać wyjątki od błędów Wyjątek- sytuację wyjątkowe jak brak internetu, brak połączenia z bazą itp i je obsługiwać normalnie Exceptionami Błędy - normalne sytuacje takie brak użytkownika, niedozwolona akcja itp i je już powinno według mnie się obsługiwać normalnie z poziomu kodu a nie jakieś magiczne goto w postaci wyjątku. Pomocne tu są chociażby Either z vavra"
  • Odpowiedz
Jeszcze jedna ważna rzecz pomiędzy sprawdzeniem nulla a Optionalem. Przy Optionalu już po sygnaturze wiesz że może nie być wyniki. Bez tego zgadujesz albo tracisz czas na czytanie kodu czy tu przypadkiem będzie null czy nigdy
  • Odpowiedz
@FEAofTruss: Potrafię sobie wyobrazić metodę, która coś pobiera z sesji, lecz nie wiadomo czy wcześniej ktoś coś tam wkładał. I jeżeli tego obiektu tam nie ma to co ma zwrócić? "null" jest taką samą wartością jak każda inna (w sensie, ani gorszą ani lepszą) i w zależności od kontekstu jej zwracanie jest dobre, a czasem nie powinno mieć miejsca.
  • Odpowiedz
@krasnoludkolo: Jest dokładnie taki sam. W przypadku który podałem null sygnalizuje, że obiekt nie był ustawiony. To jest dla nas cenna informacja. Idąc twoim tokiem null jest lepszy niż niepełny obiekt z lazy polami, bo nulla wyłapiesz odrazu, a pola lazy ci #!$%@?ą aplikację.
  • Odpowiedz