Siglas en Camel Back

A menudo veo nombres de clase de Java como

XmlReader 

en lugar de

 XMLReader 

Mi intuición es acrónimos completamente en mayúsculas, pero aparentemente muchas personas piensan de manera diferente. O tal vez solo porque muchos generadores de código tienen problemas con las siglas …

Así que me gustaría escuchar la opinión pública. ¿Cómo capitalizas tus nombres de clase que contienen acrónimos?

Usamos la convención de casos de camello como Java y .NET do. No por razones de generadores de código, sino por legibilidad. Considere el caso de combinar dos acrónimos en un nombre, por ejemplo, una clase que convierte XML en HTML.

 XMLHTMLConverter 

o

 XmlHtmlConverter 

¿Cuál prefieres?

Dos razones:

  1. Es más fácil distinguir dónde termina un acrónimo y el otro comienza con identificadores donde se colocan uno después del otro, por ejemplo en XmlHtmlConverter . Ahora XML y HTML no son tan buenos ejemplos, porque todos saben qué es XML y qué es HTML. Pero a veces verá acrónimos menos obvios y entonces esto se vuelve importante.
  2. Eclipse es inteligente con las palabras y sus iniciales. Para XmlHtmlConverter , puede escribir XHC en el cuadro de diálogo Abrir tipo y lo encontrará. Para un XMLHTMLConverter , las iniciales serían XMLHTMLC que por supuesto es un poco más largo.

Me parece que XMLReader es más difícil de leer. La razón es que no se puede decir fácilmente dónde se separan las palabras. Creo que las siglas con minúscula deben ser aceptadas. Es posible que pueda usar mayúsculas para las definiciones de clase, pero ¿qué pasa con las variables de instancia:

 XmlReader xmlReader; 

Aquí tienes que usar minúsculas de todos modos.

Para los acrónimos uso la siguiente regla:

  • Si el acrónimo es de longitud 2, ponga el acrónimo en mayúsculas.

      For Ex : UIRule 
  • Si el acrónimo es más largo, uso la caja de pascal para el acrónimo.

      For Ex : SmsValidation, XmlReader 

Pascal Case se usa en el framework .NET. Asi que

XmlReader

Se prefiere en entornos de Microsoft.

Tengo que estar de acuerdo con AronVanAmmers en que es más fácil de leer que la alternativa.

Referencia: Directrices de diseño de Microsoft para desarrolladores de bibliotecas de clases

Creo que, en general, los nombres de las clases deberían escribirse como espera que se lean. Por ejemplo, cuando pronuncio el nombre de clase en voz alta, diría “lector de XML”, así que nombraría la clase “XMLReader”. Sin embargo, nombraría una clase hipotética de “servicio REST” “RestService”, ya que, en general, “REST” no se pronuncia “REST” sino “rest”. Para algo como “SQL”, podría ir de cualquier manera, ya que algunas personas dicen “SQL” y otros dicen “secuela”. Pero realmente solo se reduce a preferencias personales.