Pregunta

Estamos haciendo un gran proyecto en OSGi y la adición de algunos commons módulos.Hay una cierta discusión sobre el nombramiento de los artefactos.

Así, una posibilidad al elegir el nombre del módulo es, por ejemplo:

cmns-definitions (para definiciones comunes), otra es cmns-definition, otra cmns-def.Esto tiene algún efecto, también en el nombre del paquete.Ahora es xx.xxx.xxx.xxx.xxx.commons.definitions, si el cambio a cmns-def sería xx.xxx.xxx.xxx.xxx.commons.def.

Dentro de este paquete de clases como en las enumeraciones y otras definiciones que se utilizan en todo el sistema.

Personalmente me inclino por cmns-definitions ya no hay solo 1 definición dentro del paquete.Otras personas señalan que java.util no tiene sólo 1 utilidad de allí, por ejemplo.Todavía, java.util es un abreviatura para mí.Se puede decir java utilidad o java utilidades.Lo mismo sucede con la commons-lang.

¿Cómo sería el nombre del paquete?¿Por qué elegir este nombre?

  1. cmns-definitions
  2. cmns-definition
  3. cmns-def

Pregunta extra:Cómo ponerle nombre a algo como cmns-exceptions?Que es como yo lo llamo.¿Te nombre cmns-xcpt?

ËDIT:

Yo la hago en mis propios pensamientos sobre esto en la esperanza de ser confirmados o negados.Si puedes, por favor, no.

De acuerdo a lo que creo, el fondo de la razón por la que el nombre de algo es hacer que sea más fácil entender lo que hay en su interior.O, según Peter Kriens, para que sea fácil de recordar y ser capaz de automatizar los procesos a través de los patrones.Ambos son argumentos válidos.

Mi razonamiento es el siguiente en términos de patrón:

1) Cuando un substantivation se produce y es bien conocido en la industria, siga en su nomenclatura.
Por ejemplo:"características" es un caso en esto.Tenemos un módulo llamado nmcs-características.¿Esto significa que tienen muchas características en este módulo?No.Significa "el módulo que implementa las "características" del archivo de Apache karaf".
"commons" es un substantivation de "común" bien aceptado en la industria.No significa "común".Significa "código Común".

Si veo extr-comunes como el nombre de un módulo, sé que contiene el código común para extr (en este caso la extracción), por ejemplo.

2) Cuando una cantidad de clases en el interior del módulo están cooperando para dar una clara "uno y uno sólo", que significa todo, el uso de forma singular a nombre de ella.

La mayoría de los módulos están incluidos aquí.Si me nombre algo nmcs-persistencia jpa, me refiero a que lo de las clases dentro de cooperar juntos para proporcionar la implementación de jpa de nmcs-persistencia-api.No espero 2 implementaciones dentro de ella, pero en realidad una gran variedad de clases que juntos hacen una aplicación.Cristal claro para mí.No?

3) Cuando una agrupación de clases se hace con el único propósito de reunir a clases por afinidad, pero las clases no cooperar juntos para ningún propósito, el uso del plural.

Aquí es el caso, por ejemplo, de nmcs-definiciones (enumeraciones utilizado por la totalidad del sistema).

Como alternativa, el uso de una abreviatura evita el problema, por ejemplo,nmcs-def que también puede ser "interpretado ampliado" por un lector humano a nmcs-definiciones.Muchas personas usan también "xxxx-util", que significa xxxx-utilidades.

Todavía una tercera opción puede ser utilizado para empacar las cosas, el uso de un nombre que en sí mismo significa una pluralización.La palabra "api" viene a la mente, pero cualquier palabra que pluralizes que algo iba a hacer, como "pack".

Apoyo para estos casos (3), son bien conocidos los módulos commons-colecciones (uso el plural) o commons-dbcp (el uso de la abreviatura) o commons-lang (de nuevo abreviatura) y cualquier cosa que utiliza la api para paquete de clases juntos por afinidad.

De apache:
commons-colecciones -> muchas de las más poderosas estructuras de datos que aceleran el desarrollo de las más importantes aplicaciones Java
commons-lang -> host de ayudante de utilidades de java.lang API
commons-dbcp -> paquete de varios de los grupos de conexión de la base de datos

¿Fue útil?

Solución

"es sólo un nombre ...'

Me encuentro en mi larga carrera que estos nombres pueden hacer una gran diferencia en la productividad.Creo que no hace una diferencia si uso definiciones, definición, o def mientras eres consistente y patrones de uso en el nombre de que son fáciles de recordar y puede ser usado para automatizar los procesos.Una build basada en un esquema de nomenclatura coherente es infinitamente más fácil trabajar con más de una generación con "agradable humanos" visualización de los nombres que son ad-hoc y no tienen ningún patrón discernible.

Si los patrones de uso de los nombres tienden a ser más cortos.Ahora la gente que trabaja con estos nombres suele gastar un montón de tiempo con ellos.Por lo que su legibilidad no es tan importante como su valor mnemónico.Resulta que las abreviaturas de 3 o 4 caracteres son sorprendentemente potente.Una de las razones es que funciona bien es que no es solo una abreviatura, mientras que si vas no hay muchos candidatos.

De todos modos, la mayoría de importar parte es que la coherencia global.La buena suerte.

Otros consejos

definitions (o def o definition) es un mal nombre, porque no tiene ningún tipo de semántica a un lector.Estás en un objeto orientado al mundo (supongo) - tratar de seguir sus convenciones y principios.Módulos en Maven debe ser nombrado después de que el más grande de la "abstracción" que contienen."Definición" es una forma, no de un significado.

Su pregunta es similar a:"Que clase de nombre es mejor FileUtilities o FileUtils".Respuesta:ninguno.

Básicamente lo que haces con las Definiciones y Excepciones es proporcionar un API para el resto de los módulos.Así que proponemos combinar las definiciones, las excepciones y agregar interfaces a ella.Entonces tiene sentido para llamar a todos los nmcs-api.Yo normalmente prefiero el singular de los nombres ya que son más cortos, pero usted es libre de decidir como lo es sólo un nombre.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top