2009-05-28 13 views
43

Para aquellos de ustedes que escriben componentes reutilizables, ¿cuál considera que es la mejor práctica si amplían la funcionalidad de .NET Framework?convenciones de nomenclatura de nombres de nombres

Por ejemplo, estoy creando una biblioteca Pop3 en este momento, ya que no existe en .NET. ¿Creo un espacio de nombres personalizado o uso System.Net.Mail?

Respuesta

57

Desde el Namespace Naming Guidelines:

La regla general para nombrar espacios de nombres es utilizar el nombre de la empresa, seguido de el nombre de la tecnología y, opcionalmente, la función y el diseño de la siguiente manera. Copiar Código

CompanyName.TechnologyName[.Feature][.Design]

lo general, es una muy mala práctica para empezar a incluir cosas en el espacio de nombres por defecto de un marco o una biblioteca. Esto puede causar confusión en términos de si un nuevo espacio de nombres es parte de la biblioteca existente que es parte de un marco que se distribuye a todos, o es parte de un marco personalizado que fue agregado por otra persona.

Además, la convención de nomenclatura intenta evitar las colisiones del espacio de nombres al tener identificadores únicos como CompanyName. También reduce cualquier confusión y problemas en términos de la fuente de la nueva biblioteca.

Esto no es solo algo de Microsoft, sino también de Java. Los espacios de nombres en Java, llamados "paquetes" tiene el following convention:

El prefijo del nombre de un paquete único se siempre se escribe en todas-minúsculas ASCII cartas y debe ser uno de los nombres de dominio de nivel superior, en la actualidad com, edu, gov, mil, net, org, o uno de los inglés códigos de dos letras que identifican países como se especifica en la norma ISO 3166 , 1981.

componentes posteriores del nombre del paquete puede variar de acuerdo con la un organización propia denominación interna convenciones. Tales convenciones pueden especificar que ciertos componentes de nombre de directorio sean nombres de división, departamento, proyecto, máquina o inicio de sesión.

Por lo tanto, si tuviera una pieza de software increíble, podría estar en el paquete net.coobird.superawesomesoftware.

Y el uso de nombres de paquete que contienen los valores predeterminados java., javax., com.sun. es un gran no-no.

+1

@Sir Psycho: Coobird tiene razón, pero también necesita mantener la mente abierta, no quiere un espacio de nombres que termine siendo demasiado profundo. Comienzo a preocuparme después de escribir 3 '.' en un nombre de espacio de nombres. – Perpetualcoder

+0

@Sir Psycho: las pautas del espacio de nombres también dicen que una marca bien establecida es otra opción en lugar del nombre de una compañía: estas son pautas para evitar colisiones de espacios de nombres. Entonces, tal vez algún título (como su nombre de usuario?) Que sea exclusivo de otros puede ser un buen sustituto para CompanyName :) – coobird

+0

@Perpetualcoder Si le preocupan los espacios de nombres demasiado profundos, use alias ... – LILkillaBEE

15

también echar un vistazo a siguiente artículo de MSDN para obtener directrices sobre espacios de nombres de nombres

Names of Namespaces

El nombre elegido para un espacio de nombres debe indicar la funcionalidad hecho disponibles por tipos en el espacio de nombres. Por ejemplo, el System.Net.El espacio de nombres de los sockets contiene tipos que permiten a los desarrolladores usar sockets para comunicarse a través de redes.

El formato general para un nombre de espacio de nombres es la siguiente:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

Por ejemplo, Microsoft.WindowsMobile.DirectX.

+0

¿Qué es un ejemplo completo usando todas las partes? Microsoft.WindowsMobile.DirectX.Lines? –

Cuestiones relacionadas