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

Resuelto Jigar asked hace 14 años • 6 respuestas

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

  1. com.stackoverflow.my_package( Snake Caseusando guión bajo)
  2. com.stackoverflow.my-package( Kebab Caseusando guiones)
  3. com.stackoverflow.myPackage( Camel Case)
  4. com.stackoverflow.MyPackage( Pascal Case)

¿Cuál es el estándar general?

Jigar avatar Jul 05 '10 18:07 Jigar
Aceptado

Los tres no son las convenciones.

Usar com.stackoverflow.mypackage.

Los nombres de los paquetes no siguen la convención de nomenclatura de paquetes en mayúsculas, guiones bajos o guiones .

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

5.2.1 Nombres de paquetes

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

— Guía de estilo de Google Java: 5.2 Reglas por tipo de identificador: 5.2.1 Nombres de paquetes .

bragboy avatar Jul 05 '2010 11:07 bragboy

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

Paquetes

El prefijo de un nombre de paquete único siempre está escrito en letras ASCII en minúsculas y debe ser uno de los nombres de dominio de nivel superior, actualmente com, edu, gov, mil, net, orgo uno de los códigos de dos letras en inglés que identifican los países como se especifica en ISO. Norma 3166, 1981.

Los componentes posteriores del nombre del paquete varían según las convenciones de nomenclatura internas de una organización. Dichas convenciones pueden especificar que ciertos componentes del nombre del 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

  • java.sun.com - Convenciones de código/Nombres

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

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

También es relevante el siguiente extracto:

En algunos casos, es posible que el nombre de dominio de Internet no sea un nombre de paquete válido. A continuación se sugieren algunas convenciones para abordar 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, añádales 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, coloque un guión bajo como prefijo del componente.

Referencias

  • Nombres de paquetes JLS 6.1
polygenelubricants avatar Jul 05 '2010 12:07 polygenelubricants

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

Nadie debería usar hypen ( es una mala práctica)

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

NOTA: Aquí, "Mala práctica" significa que técnicamente se le permite usar eso, pero convencionalmente no es de buena educación escribirlo.

Fuente: Nombrar un paquete (docs.oracle)

Himanshu Mori avatar Nov 29 '2016 06:11 Himanshu Mori