Nawet w dzisiejszych czasach często widzę podkreślenia w zmiennych i metodach Java, przykładem są zmienne składowe (takie jak „m_count” lub „_count”). O ile pamiętam, używanie podkreślenia w takich przypadkach jest przez Sun określane jako zły styl.
Jedynym miejscem, w którym powinny być używane, są stałe (jak w "public final static int IS_OKAY = 1;"), ponieważ wszystkie stałe powinny być pisane dużymi literami, a nie wielbłądami. Tutaj podkreślenie powinno sprawić, że kod będzie bardziej czytelny.
Czy uważasz, że używanie podkreśleń w Javie to zły styl? Jeśli tak (lub nie), dlaczego?
źródło
ReadableInterface
- absolutnie zbędne. W nowoczesnych IDE nie musisz określać typu zmiennej ani jej zakresu - kolorowanie i szybkie przeskakiwanie wykonują całą pracę za Ciebie. Więc IMO to zły styl, ponieważ wpisujesz zbędne znaki i zmuszasz ludzi do czytania / utrzymywania go.źródło
snake_case
formularz jest łatwiejszy do odczytania. Szczególnie w przypadku krótkich słów (1-2 litery) zdecydowanie argumentowałbym, że tak jest. Jeśli chodzi o „trudne do wpisania”, wpisanie słowa z użyciem lotsOfMixedCaseWithinIt też nie jest zbyt wygodne. Opowiadałbym się za tym, że to kwestia tego, do czego jesteś przyzwyczajony. Jednak w Javie mówię „użyj zwykłej formy” zgodnie z zaleceniami JLS / etc. W Ruby / Python / C użyj przypadku węża. I tak dalej ...Zasady:
źródło
Nie sądzę, aby używanie _ lub m_ do wskazywania zmiennych składowych było złe w Javie lub jakimkolwiek innym języku. Moim zdaniem poprawia czytelność kodu, ponieważ pozwala spojrzeć na fragment kodu i szybko zidentyfikować wszystkie zmienne składowe z lokalnych.
Można to również osiągnąć, zmuszając użytkowników do poprzedzania zmiennych instancji słowem „this”, ale wydaje mi się to nieco drakońskie. Pod wieloma względami narusza DRY, ponieważ jest to zmienna instancji, po co kwalifikować ją dwukrotnie.
Mój własny styl to używanie m_ zamiast _. Powodem jest to, że istnieją również zmienne globalne i statyczne. Zaletą m _ / _ jest rozróżnienie zakresu zmiennych. Więc nie możesz ponownie użyć _ dla globalnego lub statycznego, a zamiast tego wybieram odpowiednio g_ i s_.
źródło
„Zły styl” jest bardzo subiektywny. Jeśli jakaś konwencja zadziała dla Ciebie i Twojego zespołu, myślę, że będzie to kwalifikować zły / dobry styl.
Odpowiadając na twoje pytanie: używam początkowego podkreślenia do oznaczenia zmiennych prywatnych. Uważam, że wszystko jest jasne i mogę szybko zeskanować kod i dowiedzieć się, co się dzieje.
(Jednak prawie nigdy nie używam „tego”, z wyjątkiem sytuacji, gdy chodzi o zapobieganie kolizji nazw).
źródło
this
dość swobodnie, aby wskazać zmienną składową, jeśli uważam, że wymaga ona zwrócenia na nią uwagi. Jednak nie jestem fanatykiem tego tematu.użycie „m_” lub „_” na początku zmiennej ułatwia znajdowanie zmiennych składowych w metodach w całym obiekcie.
Dodatkową korzyścią jest wpisanie „m_” lub „_” spowoduje, że Intellsense wyświetli je jako pierwsze;)
źródło
if (itsEmail.equals(email))
private int _my_int; public int myInt;? _my_int? )
- o ile podoba mi się ten styl _ i myślę, że jest czytelny, uważam, że jest to prawdopodobnie bardziej kłopotliwe niż warte, ponieważ jest rzadkie i prawdopodobnie nie pasuje do niczego innego w bazie kodu, której używasz.
-automatyczne generowanie kodu (np. pobierające i ustawiające generatory zaćmień) prawdopodobnie nie zrozumie tego, więc będziesz musiał to naprawić ręcznie lub zmiksować za pomocą zaćmienia na tyle, aby zostało rozpoznane.
Ostatecznie walczysz z resztą prefsów (java) świata i prawdopodobnie będziesz mieć z tego powodu pewne irytacje. I jak wspominali poprzednie postery, spójność w bazie kodu jest ważniejsza od wszystkich powyższych kwestii.
źródło
Nie bez powodu używanie podkreślenia było uważane za zły styl w dawnych czasach. Kiedy kompilator środowiska uruchomieniowego był czymś niedostępnym, a monitory miały zadziwiającą rozdzielczość 320x240 pikseli, często nie było łatwo odróżnić od
_name
i__name
.źródło
Fajnie jest mieć coś do odróżnienia zmiennych prywatnych od publicznych, ale nie lubię „_” w ogólnym kodowaniu. Jeśli mogę pomóc w nowym kodzie, unikam ich użycia.
źródło
Oto łącze do zaleceń firmy Sun dotyczących języka Java. Nie musisz ich używać, a nawet to, że ich kod biblioteki jest zgodny z nimi wszystkimi, ale to dobry początek, jeśli zaczynasz od zera. Narzędzie takie jak Eclipse ma wbudowane elementy formatujące i narzędzia do czyszczenia, które mogą pomóc w dostosowaniu się do tych konwencji (lub innych, które zdefiniujesz).
Dla mnie „_” są zbyt trudne do wpisania :)
źródło
To mieszanka stylów kodowania. Jedną ze szkół myślenia jest poprzedzanie prywatnych członków podkreśleniem, aby ich odróżnić.
setBar( int bar) { _bar = bar; }
zamiast
setBar( int bar) { this.bar = bar; }
Inni będą używać podkreślenia, aby wskazać tymczasową zmienną lokalną, która wyjdzie poza zakres na końcu wywołania metody. (Uważam, że to całkiem bezużyteczne - dobra metoda nie powinna być taka długa, a deklaracja jest DOBRZE TAM! Więc wiem, że wykracza poza zakres) Edycja: Nie daj Boże programistom z tej szkoły i programistom z jej członka ! To byłoby piekło.
Czasami wygenerowany kod będzie poprzedzał zmienne znakiem _ lub __. Chodzi o to, że żaden człowiek nigdy by tego nie zrobił, więc jest to bezpieczne.
źródło
Myślę, że każdy styl, który łamie wytyczne dotyczące stylu języka (bez uzasadnionego powodu) jest brzydki, a zatem „zły”.
Bez wątpienia kod, który widziałeś, został napisany przez kogoś, kto pracował w języku, w którym znaki podkreślenia były dopuszczalne.
Niektórzy ludzie po prostu nie mogą dostosować się do nowych stylów kodowania ...
źródło
Powodem, dla którego ludzie to robią (z mojego doświadczenia), jest rozróżnienie między zmiennymi składowymi i parametrami funkcji. W Javie możesz mieć taką klasę:
public class TestClass { int var1; public void func1(int var1) { System.out.println("Which one is it?: " + var1); } }
Jeśli utworzyłeś zmienną składową _var1 lub m_var1, nie miałbyś niejednoznaczności w funkcji.
Więc to styl, a ja nie nazwałbym go źle.
źródło
Osobiście uważam, że język nie powinien tworzyć reguł dotyczących stylu kodowania. Jest to kwestia preferencji, użytkowania, wygody, koncepcji czytelności.
Teraz projekt musi ustawić reguły kodowania, aby zachować spójność między listami. Możesz nie zgadzać się z tymi zasadami, ale powinieneś się ich trzymać, jeśli chcesz wnieść swój wkład (lub pracować w zespole).
Przynajmniej IDE, takie jak Eclispe, są agnostyczne, co pozwala na ustalanie reguł, takich jak zmienne przedrostki lub przyrostki, różne style umieszczania nawiasów klamrowych i zarządzanie przestrzenią itp. Możesz więc użyć go do ponownego sformatowania kodu zgodnie z własnymi wytycznymi.
Uwaga: Należę do tych, którzy zachowują swoje stare nawyki z C / C ++, kodując Javę z prefiksami m_ dla zmiennych składowych (i s_ dla zmiennych statycznych), poprzedzając wartości logiczne z początkowym b, używając początkowej dużej litery dla nazw funkcji i wyrównując nawiasy klamrowe. .. Horror dla fundamentalistów Java! ;-)
Zabawne, takie są konwencje stosowane w mojej pracy ... prawdopodobnie dlatego, że główny początkowy programista pochodzi ze świata MFC! :-RE
źródło
to tylko twój własny styl, nic złego kodu stylu i nic dobrego kodu stylu, po prostu odróżnij nasz kod od innych.
źródło