2011-01-27 15 views
10

LotsofC++projects utilizan algún tipo de convención de nomenclatura de camello. El único proyecto que utiliza las convenciones de nomenclatura de STL parece ser el impulso (donde se están realizando muchos prototipos para el STL). Sé que hay algunos proyectos que son anteriores a la STL, pero también la mayoría de las nuevas bases de código (que usan STL) se adhieren a la convención de nomenclatura de camello.¿Por qué nadie usa las convenciones de nomenclatura de STL?

Así que mis preguntas son:

  • ¿Por qué nadie usando las convenciones de nomenclatura de STL?
  • ¿Recomendaría utilizar la convención de nomenclatura de STL sobre la caja de camello para un nuevo proyecto?
  • He visto algunos proyectos utilizar las convenciones de nomenclatura de STL para algunas clases de 'tipo STL' (limited_stack, simplify_type) y estuche de camello para todo lo demás. Esto parece un buen enfoque para separar la infraestructura del código de la aplicación. ¿Recomendarías hacer esto?

(Sé que las convenciones de nombres se han discutido hasta la muerte. Sin embargo yo creo que esta pregunta no ha sido respondida antes. Sobre todo la idea de convenciones división de nombres es, en mi opinión, vale la pena discutir.)

+0

Esta es otra cuestión de estilo ... –

+7

Si un programador usa las convenciones de nomenclatura stdlib y @andreas no lo ve, ¿sucedió? Definitivamente hay * personas * que usan esas convenciones. –

+4

¡Los programadores reales usan guiones bajos! –

Respuesta

3

Antes que nada, permítanme enfatizar que mi respuesta es bastante subjetiva, basada únicamente en mi experiencia, no respaldada con ningún dato o recurso externo.

Una convención es solo eso: una convención. No importa cuál use, sino cuál es legible y cómodo de escribir para usted y los programadores que mantienen el código con el que está trabajando en este momento.

Uso CamelCase en C++ porque es más agradable visualmente para mi ojo y porque estoy acostumbrado. Por otro lado, uso los guiones bajos y los nombres de las funciones en minúsculas en C; se ha convertido en una especie de forma simple de distinguir qué idioma se ha usado para mí.

Otros programadores seguramente le darán otras razones, la mayoría de las cuales serán más o menos subjetivas, verdaderas para ellos o para los desarrolladores de los que son miembros.

Busque en otros idiomas. C# favorece CamelCase, con la primera letra en mayúscula. ¿Por qué es mejor que dejar la primera minúscula?

Los programadores de PHP que usan Zend Framework también están familiarizados con las convenciones de nomenclatura de Zend: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html.

Drupal API también es PHP, pero usa guiones bajos, letras minúsculas y prefijos específicos de módulo/tema.

Las bibliotecas, marcos e incluso idiomas completos pueden tener convenciones de nombres que por alguna razón son favorecidos por sus creadores. Eso no te obliga a dejar de usar tu convención de nombres habitual :). Entonces, en general, creo que la respuesta a su pregunta puede ponerse de una manera tan tonta: solo porque: D. Porque los programadores individuales se sienten cómodos con eso.

En cuanto a la segunda pregunta: no, no recomendaría utilizar ninguna convención sobre otra para ningún proyecto. Elija lo mejor para usted. La única situación en la que no tiene otra opción es cuando está en un equipo de desarrollo que, por alguna razón, quiere apegarse a una sola convención (como una API consistente).

Tercera pregunta: sí, puede verla de esta manera. Normalmente prefijo mis clases por lo que es bastante obvio que UmbraModule o TCODConsole son parte de Umbra o libtcod API. En cuanto a STL, prefiero no espaciarlo. Prefijar todo con std::* es una indicación muy clara de si es parte de una biblioteca diferente o no, por lo que el código de infraestructura/aplicación se distingue claramente, dejando CamelCase vs. Subraya una cuestión secundaria :).

+1

La variante de tapa principal a veces se denomina StudlyCaps para distinguirla de camelCase. –

+0

¡Oh, gracias, no sabía eso! – mingos

+0

thisIsCalledCamelCase, mientras ThisIsCalledPascalCase. http://www.dofactory.com/topic/1141/camelcase-pascalcase-vs-camelcase-pascalcase.aspx – Kaiserludi

Cuestiones relacionadas