Czy używacie/czemu nie używacie THIS przy pisaniu OOP?

0

Ok tylko zadajmy sobie takie pytania:

  • czy ktoś na poważnie używa edytorów online do codziennej pracy. Chyba nie, raczej interwencyjnie czasami.
  • czy naprawdę odróżnienie kolorem metody statycznej jest aż tak ważne, gdy to i tak widać po kodzie, a jak nie widać to można jednym kliknięciem przeskoczyć do definicji
2

sprawdziłem tego githuba i jest totalna bieda, jak na razie.

samo przeglądanie kodu bezpośrednio (czyli bez naciskania . by przejść do edytorka):
screenshot-20230806114010.png
kursor jest środku wywołania this.aMethod() a po prawej github pokazuje mi statyczną definicję w sekcji definitions. fail.

po włączeniu edytorka (naciskając . na klawiaturze):
screenshot-20230806114232.png
próbuję przechodzić do definicji metody statycznej, a edytorek przenosi mnie bezstrosko do metody instancyjnej w innej klasie niż ta statyczna.

jak widać, temu edytorkowi z githuba nie pomaga ani this., ani jakikolwiek prefiks przed nazwą wywoływanej metody. pewnie to coś nie robi żadnej analizy semantycznej (albo jeśli już to nikłą). nie rozróżnia w ogóle metod statycznych od instancyjnych.

kod jest tutaj: https://github.com/tarsa/testing-sandbox/blob/master/java_experiments/ThisIsMadness.java

1

Nie lubię, bo mało pomaga a wygląda pokracznie w przypadkach, gdy metoda się odnosi do typu w inny sposób niż this np. A operator+(A lhs, B rhs)

0

@Wibowit: Ale co zrobisz xD. Jest jak jest. Webowe edytory oparte na monaco tak działają. Czyli tak 90% :).

Btw na takim eclipsie roznica tez ledwo widoczna xD

screenshot-20230806131615.png

2

Jeśli nie ma potrzeby na użycie this, to go nie używam.

0
cerrato napisał(a):

Jakie są plusy oraz minusy stosowania/braku napisania tego nieszczęsnego this? Czy chodzi jedynie o estetykę (to jest sprawa subiektywna, moim zdaniem z tym dopiskiem kod wygląda lepiej i bardziej intuicyjnie, ale każdy może uważać inaczej) czy są jakieś poważniejsze agrumenty ZA albo PRZECIW?

  • Przeciw:
    • pamięć operacyjna typowego homo sapiens to około 5 engramów. Z wiekiem się obniża, z rozwojem technologii tym bardziej. Marnowanie jej na dodatkowy powtarzalny engram obniża wydajność pracy i zwiększa podatność na błędy przeoczenia. To samo dotyczy nazewnictwa metod - jak widzę kod z dopiskami w metodach Imp, Abstract, Int to wiem że autor/architekt uprawia vendor lock-in na siebie i jest to średnio zamaskowana obelga wobec ludzi pośledniejszych (których pamięć operacyjna jest bardziej ograniczona). Ludzie szlachetni i szanujący inteligencję (np. matematycy) to wiedzą i operują po prostu na jednoliterowych symbolach.
  • Za:
    • ludzie cierpiący na perfekcjonizm i testujący każdą linię kodu mogą poczuć że ich praca jednak jest coś warta jeśli ktoś nieopatrznie zmieni scope metody przy refaktorze. Ale to tylko dlatego że patrz punkt wcześniej.
3
loza_prowizoryczna napisał(a):
cerrato napisał(a):

Jakie są plusy oraz minusy stosowania/braku napisania tego nieszczęsnego this? Czy chodzi jedynie o estetykę (to jest sprawa subiektywna, moim zdaniem z tym dopiskiem kod wygląda lepiej i bardziej intuicyjnie, ale każdy może uważać inaczej) czy są jakieś poważniejsze agrumenty ZA albo PRZECIW?

  • Przeciw:
    • pamięć operacyjna typowego homo sapiens to około 5 engramów. Z wiekiem się obniża, z rozwojem technologii tym bardziej. Marnowanie jej na dodatkowy powtarzalny engram obniża wydajność pracy i zwiększa podatność na błędy przeoczenia.

Ale wg tej logiki należałoby pisać this. Bez this trzeba mieć zawsze z tyłu głowy dodatkowy fakt, że coś należy do instancji. Czyli powoduje to większe obciążenie pamięci krótkotrwałej. Jak piszesz this, to nie musisz tego pamiętać, wystarczy, że spojrzysz, że jest this napisane.

Czyli jest to argument bardziej za używaniem this niż przeciw.

0
LukeJL napisał(a):

Czyli powoduje to większe obciążenie pamięci krótkotrwałej. Jak piszesz this, to nie musisz tego pamiętać, wystarczy, że spojrzysz, że jest this napisane.

Automatyzmy nie wliczają się w pamięć krótkotrwałą - dlatego alfabety abdżadowe powstały przed pełnymi.

0

Piszę głównie w C płotek. Nie używam this., gdy nie ma takiej potrzeby.
Pola prywatne zgodnie z konwencją mają przedrostek _.
Nie programuje w notatniku, więc jak nie jestem czegoś pewien to najeżdżam na problematyczny obiekt/metode i mam informacje z ide.
Jeszcze na początku mojej kariery używałem this., ale jakoś nie tęsknie za tym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1