Aunque aquí me referiré específicamente a las convenciones de nomenclatura de C ++ y Bjarne Stroustrup , en principio, he visto que las personas usan reglas algo similares para otros lenguajes aquí y allá.
Entonces, la idea básica es que uno debería poder distinguir los tipos estándar de los tipos definidos por el usuario mientras lee el código. Por ejemplo, Bjarne Stroustrup sugiere que uno use
una letra mayúscula inicial para los tipos (p. ej., Cuadrado y Gráfico)
que teniendo en cuenta que
El lenguaje C ++ y la biblioteca estándar no usan letras mayúsculas
permite alcanzar el objetivo mencionado anteriormente.
Pero, ¿por qué necesitamos hacerlo? ¿Cuál puede ser el propósito de distinguir los tipos estándar y los definidos por el usuario?
No pude encontrar ningún razonamiento de Bjarne Stroustrup sobre este asunto, y además, yo mismo pienso de manera diametralmente opuesta. : DI lo sé, lo sé, "¿Quién soy yo para disputar Stroustrup?" Pero, escuche, un montón de características del lenguaje C ++, por ejemplo, sobrecarga del operador, tienen el propósito de permitir a los tipos definidos por el usuario un nivel similar de soporte sintáctico que los tipos estándar. Y luego todo esto está desconcertado por una disciplina de nombres diferente ...
PD: Sin mencionar que a menudo una palabra no es suficiente para nombrar una clase y una palabra separada por guiones bajos que comienza con una letra mayúscula parece muy extraña.
fuente
Respuestas:
No hay absolutamente ningún propósito o beneficio en tal. Uno de los objetivos de C ++ era tratar las UDT y las primitivas de manera intercambiable, y aunque no han tenido éxito por completo, esta es un área en la que no tiene que diferenciarse.
Cuando se trata de nombrar, Stroustrup es una locura, y este es un hecho científicamente probado.
fuente
snake_case
para mis clases y espacios de nombres y aún no he tenido problemas, o confusión, causados por esto.Las convenciones de nomenclatura tratan de apoyar la comprensión humana (es decir, programador y mantenedor) del código.
Los UDT se pueden especificar para que la declaración de variables, la inicialización, las expresiones y las declaraciones funcionen de manera diferente a la de los tipos estándar. Para encontrar problemas, es útil que el mantenedor tenga alguna señal de que alguna sección del código podría hacer cosas extrañas (por ejemplo, la implementación de un tipo integral definido por el usuario utilizado dentro de alguna función podría tener una falla en cómo se suma).
Hay muchas formas de proporcionar tales señales (comentarios, especificaciones de diseño, etc.). La ventaja de las convenciones de nomenclatura es que están presentes en el código, mientras que los comentarios pueden omitirse, estar desactualizados, etc.
fuente
Una razón por la que uso palabras en mayúsculas para los tipos es para distinguir las variables de los tipos. Esto permite declarar una variable con, además de las mayúsculas, el mismo nombre:
Esto puede ser útil para clases en las que solo se usa una instancia en cada contexto, por ejemplo, ajustes de configuración.
fuente