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?
-
com.stackoverflow.my_package
(guión bajo) -
com.stackoverflow.my-package
(guiones) -
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
, nocom.example.deepSpace
ocom.example.deep_space
.- Google Java Style Guide: 5.2 Reglas por tipo de identificador: 5.2.1 Nombres de paquetes .