środa, marca 15, 2017

Walka z null'em ;-)

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
Czy Macbook Pro jest wart swojej ceny?

3 komentarze:

  1. Cześć, mógłbyś mi wyjaśnić dlaczego użycie null w kodzie jest "złe"?

    OdpowiedzUsuń
    Odpowiedzi
    1. Samo w sobie nie jest "złe", ale niesie dość duże niebezpieczeństwo.
      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 ;-)

      Usuń
  2. Czy mógłbyś mi wyjaśnić dlaczego użycie null w kodzie jest "złe"?

    OdpowiedzUsuń