Wpis z mikrobloga

Ech var w javie to jest jedna z gorszych rzeczy jaka się przytrafiła.
Kod jest całkowicie nieczytelny, żeby zrozumieć część kodu, najpierw robię rundkę po każdej lini kodu i zamieniam na faktyczny typ zmiennej (nie commituje), dopiero potem próbuję zrozumieć kod i od razu lepiej.

Zanim jakiś intelektualista zapyta po co Ci wiedza na temat typu, odpowiem: a no po to, żeby wiedział co robimy w danej lini kodu, czy ogólnie w danej metodzie bo chce zrozumieć jak całe flow systemu działa, zwłaszcza jak jest to mega duży projekt i się wdrażam i czytanie nazw method czy typ zwracany pozwala mi zrozumieć krok po kroku co się dzieje.

Jeszcze pół biedy jest napisane var carModelsList = extractCarModelsFrom...*, wtedy idzie wywnioskować, że to lista i w następnej lini kodu nie mogę zrobić carModelsList.put(key) traktując to jako mapę.
ale sorry, kod przeważnie nie jest nigdy idealny i przeważnie jest coś takiego: var models = process(arguments);

Ale programista podjarany bo użył fancy featura.

#java #programista15k
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 5
@relationbrewingarea: To jaki sens ma pisanie var, jeśli potem muszę włączać wyświetlanie typów czyli sumarycznie mam var zmienna (intellij hint List<CarModelType) co zajmuej dodatkowe miejsce w kodzie?
żeby napisać typ nie musisz się nad tym zastanawiać, wystarczy skrót klawiszowy, który generuje, jeśli to dla Ciebie problem
  • Odpowiedz
@famir96: W sumie to się zgodzę. Ja var używam tylko, gdy mam jakiś mega długi typ i zajmuje dużo miejsca w linii. No ale w innych językach tak można, to java była be bo tego nie miała( ͡° ͜ʖ ͡°)
  • Odpowiedz
@famir96: Co konkretnie cię boli? interferencja typów to raczej cos normalnego w sensownie zaprojektowanych językach i generalnie tak to się robi. Przecież vara w Javie da się używać w lokalnym kontekście gdzie patrząc na sygnaturę metody lub typ generyczny od razu wiesz co tam jest. XD
  • Odpowiedz
  • 17
@famir96: IMHO kod, z którym pracujesz jest niewłaściwie napisany.

To słowo kluczowe powstało po to żeby dla krótko żyjących zmiennych nie silić się na wymyślanie i opisywanie typów, w miejscu gdzie typowanie zaciemni czytelność, bo z kontekstu jest (prawie) oczywiste z czym mamy do czynienia, np.

var map = new HashMap<String, List<Integer>>();
ale jeśli ktoś używa tego do jakiś niejasnych
  • Odpowiedz
  • 1
@PaaD: No z takim podejściem się mogę zgodzić. Ale używanie vara w przypadku, gdzie wywołujemy jakieś zewnętrzne metody, które są #!$%@? nazwane (więc nie bardzo jesteśmy w stanie wywnioskować co robimy w tej lini), a jest to zmienna, na której potem robimy operacje, wysyłamy gdzieś dalej, to dla mnie to jest nieporozumienie
  • Odpowiedz
żeby wiedział co robimy w danej lini kodu


@famir96: Po co Ci do tego nazwa typu? Jak nie wiesz co dana funkcja robi patrzac na jej nazwe, to i tak musisz przeczytac dokumentacje albo skoczyc do implementacji, co IDE zrobi samo.

Wiekszosc czasu nie potrzebujesz znac typu danej zmiennej do zrozumienia kodu. Jak potrzebujesz to Ci IDE podpowie.

Ale jak nazywacie funkcje "processRequest" zamiast "getCustomersList", to potem macie problemy na
  • Odpowiedz