coding style - programacion - ¿Por qué las mayúsculas y minúsculas se consideran un estilo de codificación incorrecto?
lowercamelcase vs uppercamelcase (18)
@ck
PORQUE ES LA CONVENCION.
Jeff terminó su publicación hablando de esto, pero no entiendo la idea.
Entonces, ¿por qué crees que este es un mal estilo de codificación?
EDITAR:
Yo, como muchos de ustedes, no creo que sea un mal estilo de codificación. Pero Jeff es mucho mejor programador que yo, y su punto de vista encendió las luces de mi cabeza para responder si estaba equivocado. Fui desarrollador de Delphi durante algunos años y ahora me estoy convirtiendo en desarrollador de C #, y en Delphi era una práctica común.
Algunas personas consideran que TODAS LAS CAPS son "vieja escuela". Considera la diferencia entre:
const string ErrorMessage = "Some error message.";
y
const string ERROR_MESSAGE = "Some error message.";
Ambos son completamente utilizables, pero la versión ALL CAPS es menos utilizada por los desarrolladores más nuevos, como los que comenzaron con .NET.
Considero que es un mal estilo de codificación si su equipo está usando un estilo diferente. Aparte de eso, realmente no me importa. Al menos cuando veo TODAS LAS CAPS en algún código compartido, puedo adivinar que es una constante.
All caps es la designación C tradicional de una constante de macro preprocesador. Es muy útil tener estos en un espacio de nombres diferente de cualquier otra cosa, ya que el preprocesador sustituirá dondequiera que encuentre el nombre, independientemente de las cosas como el alcance.
Una constante en el sentido de que Jeff estaba usando es, semánticamente, una variable que no se puede cambiar. Obedece todos los principios de alcance y todo, y es semánticamente idéntico a una variable no constante con el mismo valor.
Para poner esto de otra manera,
#define max_length 5
es un problema porque alguien podría usar max_length
como una variable en un contexto diferente, donde normalmente sería seguro, mientras que
const int max_length = 5;
Es simplemente una declaración de variable. Por lo tanto, hay una ventaja en el uso
#define MAX_LENGTH 5
porque la convención es que solo las constantes del preprocesador están en mayúsculas, por lo que no interferirá con ningún otro uso.
Bueno, hay un viejo problema de legibilidad. La prueba normalmente encajonada es más fácil de leer.
Sin embargo, hay excepciones. Los lenguajes como SQL generalmente son en mayúsculas (aunque no distinguen mayúsculas y minúsculas).
Además, hay otros usos, como distinguir entre "constantes" y variables regulares, que verás en muchos lenguajes como PHP, Python, etc., aunque a Jeff por alguna razón no le guste eso, y Aparentemente está en contra de las pautas de estilo del código C #.
Por lo general, no creo que esté mal en ninguna parte, pero sí creo que siempre se debe tratar de seguir las mejores prácticas generales. Cuando estés en Roma, haz como los romanos; cuando codifiques Python, sigue el PEP 8 :)
Constantes y CONSTANTES podrían diferir. Use mayúsculas solo cuando trabaje con el preprocesador, como se dice, por ejemplo, en C ++, se recomienda evitar eso y usar const variable o constexpr, que se denominaría como cualquier otra variable (tal vez con algún prefijo o algo para aclarar que es una constante pero ...).
Encontrará que muchas de las afirmaciones de Jeff son controvertidas en primer lugar, siendo la precisión una preocupación secundaria. Su blog no sería tan popular si no fuera ocasionalmente inflamado. (Considere la última línea de Muerte a los infieles del espacio : "Dicho esto, solo un imbécil usaría tabulaciones para dar formato a su código".) Es honestamente subjetivo. No tome todo lo que dice como Verdadero y Bueno, no está destinado a ser. Si no estás de acuerdo, dale una patada en los comentarios y mira si él responde. :)
Creo que ALL_CAPS_CONSTANTS
son perfectos: son reconocibles y familiares al instante. Parte de las pautas de estilo de mi lugar de trabajo (y no tenemos tantas) es escribir todas las constantes estáticas en mayúsculas. No se preocupe; solo usa lo que el resto de tu equipo use. Decidir sobre StudlyCaps
contra StudlyCaps
contra camelCase
vale tal vez una discusión de 90 segundos.
Francamente, no creo que sea un mal estilo de codificación. De hecho, incluso el estilo de código Java oficial hace constantes todas las mayúsculas ( http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html ), al igual que otras convenciones de idioma.
En teoría, es más difícil de leer: a los humanos nos gusta usar la altura variable de las letras para aumentar la velocidad de lectura (podemos inferir una gran cantidad de información de la forma de la palabra aproximada y de la primera / última letra). Sin embargo, no tengo un problema con frases cortas, todas mayúsculas. Es difícilmente "gritar" (a tu compilador no le importa exactamente lo grosero que eres), y muestra claramente que los nombres son potencialmente mutables y los que no lo son.
Gritar está bien. En el caso de la constante se le dice al lector.
NO PIENSES EN CAMBIARME MÁS TARDE EN CÓDIGO
Pero entiendo si los programadores soft se ofenden.
Jeff tiene algunas cosas adicionales que decir sobre esto en los comentarios:
Sin embargo, en el otro lado y la razón por la que todavía uso las mayúsculas y el subrayado
Menos codigo Esa es una causa que vale la pena y merece una discusión seria.
¿Pero si llamas a algo "foo", "Foo", "_foo" o "FOO"? Meh
Las convenciones de nombres son muy controvertidas y religiosas. Los desarrolladores deben elegir algo que les guste, algo que, con suerte, no esté demasiado en desacuerdo con las "convenciones locales", y simplemente seguirlo. Mucha discusión y retorcimiento de manos sobre los nombres no vale la pena.
Dicho esto, creo que TODAS LAS CAPS son muy difíciles de leer!
También lo uso para constantes, pero también puedo entender por qué a algunas personas no les gusta. Es un poco como escribir todo en minúsculas en alemán u otros idiomas.
La única razón convincente para mí es la coherencia en el estilo. Para los lenguajes que no son de .NET como Java / C ++, las constantes de mayúsculas son ciertamente aceptables.
Para C #, el estándar es usar PascalCase, como se indica aquí: ¿ convención de nomenclatura de C # para constantes?
No creo que esté mal. Sobre todo, es una elección personal. Para su codificación personal, haga lo que quiera. Para su codificación profesional, siga la política de la empresa.
No creo que sea un mal estilo de codificación. Tal vez pasado de moda, pero no está mal. Hace que las constantes se destaquen de otras variables.
PASE LA PREGUNTA, ¿POR QUÉ UTILIZAR TODAS LAS CAPS?
Reubiqué mi capslock a una tecla ctrl (woo emacs!). Así que creo que es un estilo malo cuando tengo que escribir nombres de 30 caracteres mientras presiono Shift
TODAS LAS CAPS SON COMO LLEGAR A ALGUIEN.
También hace que el código sea más difícil de leer.
Yo uso ALL_CAPS para macros y símbolos de preprocesador. Así que mis constantes de C-C99 anteriores son ALL_CAPS, pero no en ningún otro idioma que conozca.
Al igual que escribir todo en negrita no es una buena idea