Variables - Usando variables para simplificar código
Este es el último artículo de una serie de publicaciones sobre cómo mejorar el uso de variables en general.
Nota: El código de ejemplo en este artículo está en JavaScript, pero los conceptos y sugerencias se pueden aplicar a cualquier lenguaje. El ejemplo no tiene sentido funcionalmente, solo sirve para demostrar los conceptos aquí tratados.
Índice
Estos son los temas que se discuten en cada artículo:
- Usando constantes
- Evita duplicar valores de variables (magic strings)
- Usando variables para simplificar el código
Usando variables para simplificar el código
Después de entender qué un magic string y cómo evitar duplicarlos moviendo dichos valores a constantes, podríamos utilizar una estrategia similar para evitar duplicar línea de código.
Echemos un vistazo al siguiente código:
function getColors(text, showErrorMessage) {
const textColor = text.length >= 5 && text.length <= 30 ? 'green' : 'red'
if (showErrorMessage && !(text.length >= 5 && text.length <= 30)) { console.error('El texto debe tener entre 5 y 30 caracteres')
}
return textColor
}
// Invoking the function
getColors('algun texto', true)
Como se puede observar hay algunos valores hard-coded. Apliquemos lo que aprendimos en el post "Evita duplicar valores de variables (magic strings)":
const MIN_CHAR = 5const MAX_CHAR = 30
function getColors(text, showErrorMessage) {
const textColor = text.length >= MIN_CHAR && text.length <= MAX_CHAR ? 'green' : 'red'
if (showErrorMessage && !(text.length >= MIN_CHAR && text.length <= MAX_CHAR)) { console.error(`El texto debe tener entre ${MIN_CHAR} y ${MAX_CHAR} caracteres`)
}
return textColor
}
// Invoking the function
getColors('algun texto', true)
Pero aún existe código duplicado. Limpiemos más el código:
const MIN_CHAR = 5
const MAX_CHAR = 30
function getColors(text, showErrorMessage) {
const isValidText = text.length >= MIN_CHAR && text.length <= MAX_CHAR const textColor = isValidText ? 'green' : 'red'
if (showErrorMessage && !isValidText) { console.error(`El texto debe tener entre ${MIN_CHAR} y ${MAX_CHAR} caracteres`)
}
return textColor
}
// Invoking the function
getColors('algun texto', true)
Así obtienes multiples beneficios:
- Le asignas nombres a tu código. Estoy ayuda a entender qué hace el código sin necesidad de poner comentarios.
- El código es más limpio. Puedes ver todos los lugares donde esa condición/variable está siendo usado. (También puedes usar IntelliSense y otras características del IDE)
La desventaja de esto:
Tienes que pensar en nombres de variables que sean descriptivos y que tengan sentido. ¡Lo cual es bastante difícil!. No muy corto (isVal
), no muy largo (isTextMatchingCharactersLength
).
Estándares del código (preferencia personal)
- No pongas todo en variables. Identifica cuál código vale la pena mover a variables (Usualmente el código duplicado).
- Como se ve en el código anterior, el nombre de variable es
isValidText
(formato Camel case) noIS_VALID_TEXT
(formato Screaming snake case). Esto es porque la variable es mutable. Nunca va a ser el mismo valor exacto todo el tiempo. Su valor depende directamente en el parámetrotext
.
Asegúrate de que tu código es claro y fácil de entender por los demás. Intenta que sea lo más reutilizable y escalable posible.
¡No serás la única persona que tocará ese código para siempre!