Nombres de variables no comunicativas

January 15, 2020

Nombres de variables no comunicativas

Photo by okeykat on Unsplash

Veamos algunos casos de nombre poco comunicativo.

Use meaningful and pronounceable variable names

Utilice nombres de variables significativos y pronunciables

MALO ❌

const yyyymmdstr = () => moment().format("YYYY/MM/DD")

BUENO ✅

const currentDate = moment().format("YYYY/MM/DD")

Utilice nombres que se puedan buscar

Dar a las constantes nombres que especifiquen lo que son.

MALO ❌

const timer = () => setTimeout(blastOff, 86400000) //what's 86400000???

BUENO ✅

const timer = () => { const MILLISECONDS_IN_A_DAY = 86400000 setTimeout(blastOff, MILLISECONDS_IN_A_DAY) }

Usa variables explicativas

Es importante que el código que escribimos sea legible y se pueda buscar. Al no nombrar variables que terminan siendo significativas para comprender nuestro programa, lastimamos a nuestros lectores. Haga que sus nombres se puedan buscar.

MALO ❌

const getAddress = () => { const address = "My house, Madrid 95014" const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/ saveCityZipCode( address.match(cityZipCodeRegex)[1], address.match(cityZipCodeRegex)[2] ) }

BUENO ✅

const address = () => { const address = "One Infinite Loop, Cupertino 95014" const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/ const [, city, zipCode] = address.match(cityZipCodeRegex) || [] saveCityZipCode(city, zipCode) }

Evite el mapeo mental

Explícito es mejor que implícito, por ejemplo, no use solo letras cuando esté iterando un array.

BAD ❌

const location = () => { const locations = ["Austin", "New York", "San Francisco"] locations.forEach(l => { doStuff() doSomeOtherStuff() // ... // ... // ... // Wait, what is `l` for again? dispatch(l) }) }

BUENO ✅

const locations = () => { const locations = ["Austin", "New York", "San Francisco"] locations.forEach(location => { doStuff() doSomeOtherStuff() // ... // ... // ... dispatch(location) }) }

Dar nombre útil a las funciones

Cuando declaras funciones, intenta desacelerar con nombres descriptivos

MALO ❌

const p = (a, b) => sqrt(pow(a, 2) + pow(b, 2)) const f = n => [...Array(n)].reduce( (a, _, i) => a.concat(i > 1 ? a[i - 1] + a[i - 2] : i), [] )

BUENO ✅

const pythagorasTheorem = (cathetus1, cathetus2) => sqrt(pow(cathetus1, 2) + pow(cathetus2, 2)) const fibonacci = fibonacciLength => [...Array(fibonacciLength)].reduce( (accumulator, _, index) => accumulator.concat( index > 1 ? accumulator[index - 1] + accumulator[index - 2] : index ), [] )