util tipos paquetes nombre lista funciones ejemplos declaracion java naming-conventions package

tipos - paquetes en java ejemplos



¿Cuál es la convención para separador de palabras en los nombres de paquetes de Java? (6)

Cualquiera puede usar el guión bajo _ (está bien)

Nadie debe usar hypen - (su mala práctica)

Nadie debe usar letras mayúsculas dentro de los nombres de los paquetes (mala práctica)

Fuente: Nombrar un paquete (docs.oracle)

¿Cómo se deben separar las palabras en los nombres de los paquetes? ¿Cuales de las siguientes son correctas?

  1. com.stackoverflow.my_package (guión bajo)
  2. com.stackoverflow.my-package (guiones)
  3. com.stackoverflow.MyPackage (CamelCase)

¿Cuál es la norma general?


Esto es lo que prescribe el documento oficial de convenciones de nombres:

Paquetes

El prefijo de un nombre de paquete único siempre se escribe en letras ASCII en minúsculas y debe ser uno de los nombres de dominio de nivel superior, actualmente com , edu , gov , mil , net , org o uno de los códigos de dos letras en inglés identificando países según lo especificado en la norma ISO 3166, 1981.

Los componentes subsiguientes del nombre del paquete varían de acuerdo con las convenciones de denominación internas propias de una organización. Dichas convenciones pueden especificar que ciertos componentes de nombres de directorio sean nombres de división, departamento, proyecto, máquina o inicio de sesión.

Ejemplos

  • com.sun.eng
  • com.apple.quicktime.v2
  • edu.cmu.cs.bovik.cheese

Referencias

Tenga en cuenta que, en particular, todo lo que sigue el prefijo de dominio de nivel superior no está especificado en el documento anterior. El JLS también está de acuerdo con esto dando los siguientes ejemplos:

  • com.sun.sunsoft.DOE
  • gov.whitehouse.socks.mousefinder
  • com.JavaSoft.jag.Oak
  • org.npr.pledge.driver
  • uk.ac.city.rugby.game

El siguiente extracto también es relevante:

En algunos casos, el nombre de dominio de Internet puede no ser un nombre de paquete válido. Aquí hay algunas convenciones sugeridas para tratar estas situaciones:

  • Si el nombre de dominio contiene un guión, o cualquier otro carácter especial no permitido en un identificador, conviértalo en un guión bajo.
  • Si alguno de los componentes del nombre del paquete resultante son palabras clave, agregue un guión bajo.
  • Si alguno de los componentes del nombre del paquete resultante comienza con un dígito, o cualquier otro carácter que no esté permitido como carácter inicial de un identificador, tiene un guión bajo como prefijo en el componente.

Referencias


La concatenación de palabras en el nombre del paquete es algo que la mayoría de los desarrolladores no hacen.

Puedes usar algo como

com..mypackage

Consulte la declaración del nombre de JLS


Las convenciones de nomenclatura oficiales no son tan estrictas, ni siquiera "prohíben" la notación de casos de camellos, excepto el prefijo ( com en su ejemplo).

Pero personalmente evitaría mayúsculas y guiones , incluso números. Elegiría com..mypackage como Bragboy sugirió también.

(las guiones '''' no son legales en los nombres de paquetes)

EDITAR

Interesante: la especificación del idioma también tiene algo que decir acerca de las convenciones de nombres.

En el Capítulo 7.7 Nombres de paquetes únicos , vemos ejemplos con nombres de paquetes que constan de letras mayúsculas (por lo que la notación CamelCase estaría bien) y sugieren reemplazar la hifonación con un guión bajo ("mary-lou" -> "mary_lou") y el prefijo java palabras clave con un guión bajo ("com.example.enum" -> "com.example._enum")

Algunos ejemplos más de letras mayúsculas en los nombres de paquetes se pueden encontrar en el capítulo 6.8.1 Nombres de paquetes .


Los guiones bajos se ven feos en los nombres de los paquetes. Para lo que vale, en caso de nombres compuestos de tres o más palabras, uso iniciales (por ejemplo: com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo ) y luego documente el paquete propósito en package-info.java.


Los tres no son los convenios.

Utilice com..mypackage .

Los nombres de los paquetes no siguen el casete de camello o los guiones bajos o guiones de convención de nomenclatura de paquetes .

Además, la Guía de estilo Java de Google especifica exactamente la misma convención (es decir, com..mypackage ):

5.2.1 Nombres de paquetes

Los nombres de los paquetes son todos en minúscula, con palabras consecutivas simplemente concatenadas juntas (sin guiones bajos). Por ejemplo, com.example.deepspace , no com.example.deepSpace o com.example.deep_space .

- Google Java Style Guide: 5.2 Reglas por tipo de identificador: 5.2.1 Nombres de paquetes .