2009-07-24 14 views
36

często widzę nazw klas Java jakakronimy w Camel Powrót

XmlReader 

zamiast

XMLReader 

Moje przeczucie jest całkowicie górne przypadków akronimy, ale widocznie wiele osób uważa inaczej. A może dlatego, że wielu generatorów kodu ma problem ze skrótami ...

Chciałbym usłyszeć opinię publiczną. W jaki sposób zamieniacie kapitaliki w nazwy klas zawierające akronimy?

+0

możliwy duplikat [nazwy przypadku wielbłąda: Jak ścisłe?] (Http://stackoverflow.com/questions/486870/camel-case-names-how-strict) –

Odpowiedz

49

Używamy konwencji wielbłądów, takich jak Java i .NET do. Nie ze względu na generatory kodu, ale dla czytelności. Rozważmy przypadek łączenia dwóch akronimów w jedną nazwę, na przykład klasę, która konwertuje XML na HTML.

XMLHTMLConverter 

lub

XmlHtmlConverter 

Który wolisz?

+11

To jest zalecane podejście w efektywnej Javie. –

+8

OK, przywoływanie Bloch'a to potwierdza. – Stroboskop

+2

Dlaczego nie XML2HTMLConverter?!?!?!?!?!? –

3

Uważam, że XMLReader jest trudniejsze do odczytania. Powodem jest to, że nie możesz łatwo powiedzieć, gdzie słowa są rozdzielone. Uważam, że akronimy z małymi literami powinny być akceptowane. Możesz być w stanie używać dużych liter dla definicji klasy, ale co zmiennych instancji:

XmlReader xmlReader; 

Tu trzeba używać małych liter czy owak.

+7

+1 'XMLReader xMLReader = nowy XMLReader (" wtf!? ");' –

+1

Nadal będzie "XMLReader xmlReader = new XMLReader();" XML liczy się jako pierwsze słowo, więc dekapitalizujesz całość. – NobleUplift

3

Dla akronimów używam następującą regułę:

  • Jeżeli skrót ma długość 2, umieścić skrót w górnej części obudowy.

    For Ex : UIRule 
    
  • Jeżeli skrót ma większej długości, używam pascal obudowę dla akronimu

    For Ex : SmsValidation, XmlReader 
    
15

dwóch powodów:

  1. Łatwiej jest rozróżnić, gdzie kończy się jeden akronim, a drugi zaczyna się od identyfikatorów, w których są umieszczane jeden po drugim, na przykład w XmlHtmlConverter. Teraz XML i HTML nie są tak dobrymi przykładami, ponieważ każdy wie, czym jest XML i czym jest HTML. Ale czasami zobaczysz mniej oczywiste akronimy i wtedy staje się to ważne.
  2. Eclipse jest inteligentny ze słowami i ich inicjałami. W przypadku XmlHtmlConverter można wpisać XHC w oknie dialogowym typu otwartego, aby go znaleźć. W przypadku XMLHTMLConverter inicjałami byłyby XMLHTMLC, co oczywiście jest nieco dłuższe.
+1

+1 głównie za końcówkę Eclipse (przy użyciu inicjałów). Używam go do automatycznego uzupełniania: XHC . –

0

wierzę, że w ogóle, nazwy klas powinno być napisane jak można się spodziewać, żeby go odczytać. Na przykład, mówiąc głośno na nazwę klasy, powiedziałbym "czytnik X-M-L", więc nazwałbym klasę "XMLReader". Jednak nazwałbym hipotetyczną "usługę REST" klasy "RestService", ponieważ, ogólnie, "REST" nie jest wymawiane "R-E-S-T", ale "reszta". Dla czegoś takiego jak "SQL", mógłbym pójść w obie strony, ponieważ niektórzy ludzie mówią "S-Q-L", a inni mówią "sequel". Ale tak naprawdę sprowadza się to do osobistych preferencji.