Jak człowiek panikuje pisząc kod to zaczyna robić dziwne rzeczy, np. idzie po linii najmniejszego oporu i bawi się w użycie null'a i robienie null checków....
Sam tak zrobiłem kiedyś i usłyszałem później w feedbacku z rozmowy, że zajefajnie się rozmawiało, super struktury danych, nieźle design, ale kod brzydki jak noc - dziękujemy ;-)
I tak dziś sobie w pracy gadaliśmy i wpadłem na pomysł ;-)
Wtyczka do IntelliJ'a która w momencie użycia null'a robiła by jakieś głośne beep! albo pokazywała jakiś straszny film z YouTube.
Wszystko po to by powstało w mózgu sprzężenie - użycie null'a = zło, ból i ogólny smutek ;-)
Od razu zaznaczam, że wszystkie code style check'i i podobne są fajne, ale są za późno.
Chodzi o to by w developerze zbudować niechęć do użycia null'a przez sprawienie, że będzie się to mu lub niej, kojarzyło z czymś nieprzyjemnym*.
A nic tak dobrze nie działa na budowanie takich skojarzeń jak natychmiastowość kary ;-)
Teraz tylko się zastanawiam czy poczekać z tym na kolejny hackathon czy może popełnić sobie ot tak, przy okazji ;-)
* - hardcore'owcy mogą np. wyświetlać sobie zdjęcie nielubianego polityka czy polityczki ;-)
Podobne postybeta
Walka z null'em - pozwólmy działać IntelliJ'owi ;-)
O rośliny, zwierzęta, urządzenia i relacje z innymi ludźmi trzeba dbać ;-)
Eventual consistency....
SCRUM i ogólnie Agile to często taka zakamuflowana forma premature optimization
"Użyszkodnik" to zło
środa, marca 15, 2017
Subskrybuj:
Komentarze do posta (Atom)
Cześć, mógłbyś mi wyjaśnić dlaczego użycie null w kodzie jest "złe"?
OdpowiedzUsuńSamo w sobie nie jest "złe", ale niesie dość duże niebezpieczeństwo.
UsuńBo nie wiesz czy np. metoda zwróci Ci null, czy nie, a jeśli nie wiesz to zaczynasz robić obj!=null przed wołaniem metod z obj, ale nie zawsze to ma sens bo może czasem nie wiadomo jak się zachować jak nic nie zwrócono.
Znów w innych miejscach możesz założyć, że nikt nigdy Ci null nie prześle i siać NullPointerExceptionami.
Ale jak przyjmiesz, że nie będziesz w ogóle używać null'i i kontakty z API które dopuszcza null zabezpieczysz wrapperami które "ukrywają" null to kod powinien Ci się uprościć i powinna zmniejszyć się liczba problemów z kodem.
Inna sprawa, że jak się bawię w robienie zadanek to null jest tam naprawdę bardzo przydatny ;-) bo często w takim maleństwie pozwala na zaoszczędzenie paru linii ;-)
Czy mógłbyś mi wyjaśnić dlaczego użycie null w kodzie jest "złe"?
OdpowiedzUsuń