Qual è la convenzione Java per i nomi con una sequenza di numeri, come "ISO 8859-1"?

6

Se sto creando una classe Java per qualcosa che ha una sequenza di numeri nel suo nome, ad es. "ISO 8859-1", come dovrei nominare la mia classe?

  • Iso88591 sembra sbagliato, poiché non vi è alcun limite tra i numeri.

  • Iso8859_1 mi sembra migliore, ma secondo Effective Java "... I campi costanti costituiscono l'unico uso raccomandato di caratteri di sottolineatura." (È anche preso dal comportamento predefinito di Checkstyle.)

  • Potrei anche chiamarlo Iso8859Dash1 , ma sembra terribile.

posta codebreaker 28.08.2017 - 19:54
fonte

2 risposte

14

Le linee guida sono linee guida, non leggi immutabili della natura. Hai trovato un eccellente esempio di un nome ragionevole che non può essere facilmente mappato nelle normali convenzioni di denominazione Java. Quindi cosa dovresti fare?

Crea un'eccezione.

Di tutti i tuoi suggerimenti, Iso8859_1 è l'unico nome che chiaramente e in modo univoco esprime di cosa tratta la classe. Le varie linee guida di codifica sono solo euristiche per trovare nomi chiari. Qui falliscono, e faresti bene a ignorarli.

Checkstyle è configurabile. Adattare la configurazione per consentire tali nomi o la dichiarazione della classe dal controllo del nome. Fai in modo che lo strumento ti aiuti, invece di renderti schiavo di uno strumento incompetente.

(Razionale: le convenzioni di codifica Java predefinite suggeriscono l'uso di camelCase per enfatizzare visivamente i limiti di parole all'interno di un identificatore.I caratteri di sottolineatura sono usati come limiti di parola nelle costanti perché le costanti devono essere tutte maiuscole. abbiamo bisogno di un confine tra le cifre . Siccome le cifre ASCII non hanno caso, non puoi usare il caso cammello qui, e per eliminazione l'unica opzione rimanente per separare le cifre in un nome è underscore.)

    
risposta data 28.08.2017 - 20:17
fonte
0

A meno che non ci sia una possibilità di confusione o collisione, non mi preoccuperei di questo. Ad esempio, se ci fosse potenzialmente una classe che rappresenta uno standard ISO 885-91, potresti avere un problema. Vorrei solo lasciar cadere il trattino in questo caso.

    
risposta data 28.08.2017 - 20:05
fonte

Leggi altre domande sui tag