2010-09-10 12 views
9

Tengo una clase llamada SSLXMLRPCServer. ¿Debería ser eso o SslXmlRpcServer?Si mi nombre de clase python tiene un acrónimo, ¿debo mantenerlo en mayúscula o solo la primera letra?

+0

De acuerdo, se suponía que era SSLXMLRPCServer. :) – gregturn

+0

Me gustan ambos por diferentes razones.a) El primero es la versión "correcta" del acrónimo. b) El segundo es más fácil de leer. – gregturn

+0

Un acrónimo es una abreviación (uno que puede ser hablado), PEP8 es claro sobre abreviaturas: [todas las mayúsculas] (https://www.python.org/dev/peps/pep-0008/#descriptive-naming-styles) en lugar de CapsWords (con HTTPServerError como el ejemplo proporcionado) – Anthon

Respuesta

1

Normalmente tengo mayúsculas acrónimos. Twisted y algunas otras bibliotecas hacen esto también.

9

Esto es una cuestión de preferencia personal, pero el segundo formato me resulta mucho más fácil de leer. El hecho de que su primer formato tenga un error tipográfico (PRC en su lugar o RPC) sugiere que no soy el único.

+3

.NET tiene una perspectiva interesante: los componentes de 2 letras están en mayúscula (sobre todo 'IO'; no recuerdo haber visto cualquier otro en 2 letras, en realidad), pero todo lo demás está encasillado en Pascal, así que 'Xml',' Rpc', 'Ssl',' Http' etc. Suena raro, pero yo, la gente que lo escribí originalmente, simplemente no podía soportar el dolor mirando a 'Io'. –

2

El PEP-8 no menciona nada sobre los acrónimos. Sería más seguro mantener los acrónimos en mayúscula (es lo que más veo).

+7

Quiere decir, no lo menciona excepto * Nota: Al usar abreviaturas en CapWords, escriba en mayúscula todas las letras de la abreviatura. Así HTTPServerError es mejor que HttpServerError. * Ciertamente ... :) (Cabe señalar que no estoy de acuerdo con esta recomendación.) –

+0

Este comentario debería haber sido una respuesta (y entonces debería haber sido aceptado como LA respuesta; si ' Hablando de lo que uno * debería * hacer en el formato de Python, Pep-8 es donde está). – machineghost

0

Tuve este problema por mucho tiempo. Tengo un Acrónimo en mayúscula pero no me gusta porque cuando los encadenas (como en tu ejemplo) no se siente bien. Sin embargo, creo que lo mejor que puede hacer es elegir y atenerse al éxito, por lo que al menos no sabe cuándo tiene que hacer referencia a algo como está escrito sin tener que verificar (que es uno de los beneficios del estándar de codificación)

+0

No se siente bien hasta que decida comenzar a hacerlo. Luego te irrita mucho el software que intercala acrónimos que los hacen imposibles de analizar. –

+0

Excepto en nuestro caso: SSLXMLRPCServer es realmente difícil de leer, por lo que no puede sentirse bien (incluso si es la mejor solución) – mb14

3

El problema con los acrónimos en mayúscula en los nombres de CamelCase es que la palabra que sigue al acrónimo parece una parte de ella, ya que comienza con una letra mayúscula. Además, cuando tiene varios en una fila como en su ejemplo, no está claro dónde comienza cada uno. Por esta razón, probablemente usaría tu segunda opción.

5

Debe ser SSLXMLRPCServer, para que coincida con las clases de biblioteca estándar como SimpleXMLRPCServer, CGIXMLRPCRequestHandler, etc.

la adopción de una convención de nomenclatura que se diferencia de sus equivalentes en la biblioteca estándar sólo se va a confundir a la gente.

0

¿Qué tal SSL_XML_RPC_Server por la sigla y legibilidad?

Es lo que hago a menudo cuando quiero evitar camel-case por algún motivo.

+0

Creo que al mezclar el estuche de camello y el estuche de serpiente, vale la pena hacerlo. En mi opinión, debes elegir una forma de nombrar cosas y atenerse a ellas, sin excepción. – mb14

+1

@ mb14: "Los casos especiales no son lo suficientemente especiales como para romper las reglas. Aunque la practicidad supera a la pureza". ¿La legibilidad es una característica práctica? –

+1

@ mb14: "Una consistencia tonta es el duende de las mentes pequeñas". – martineau

1

Como se dijo anteriormente, PEP-8 dice que se debe usar mayúsculas para acrónimo. Ahora, python zen también dice "legibilidad cuenta" (y para mí el zen tiene prioridad sobre el PEP :-).

Mi opinión en una situación tan poco clara es tener en cuenta el estándar en el contexto de programación, no solo el idioma. Por ejemplo, alguna clase xml-http-query debe escribirse XMLHttpQuery en un contexto de servlet (w.r.t XMLHttpRequest).

No conozco su contexto, pero parece que XMLRPCServer existe y desea adjuntar ssl. Por lo que podría elegir algo como:

SSL_XMLRPCServer

sería hecho hincapié en la XMLRPCServer -sin cambiar IT.
Además, te quedas cerca de PEP-8 y seguir el Zen :-)

Mis 2 centavos

Nota: si no XMLRPCServer está fuertemente relacionada con su clase y es realmente un estándar en el dominio , entonces necesita elegir otro nombre, para no ser confuso.

Cuestiones relacionadas