Leer antes de cambiar
Nombra según el dato
Distingue colecciones, preguntas booleanas, cantidades y acciones sin esconder su significado.
Qué aprenderás
- Distinguir una colección de una cantidad por su nombre.
- Leer booleanos sin dobles negaciones.
- Nombrar funciones sin ocultar su contrato.
Índice de esta lección
Paso 1
Di qué contiene la colección
“fruitNames” comunica que tienes varios nombres. “fruits” encaja mejor cuando trabajas con objetos que representan frutas.
El nombre y el tipo se complementan. No añadas “List” por costumbre si un plural ya explica bien el dato.
const fruitNames = ['manzana', 'pera'];const fruits = [{ name: 'manzana', price: 2 }];Qué deberías observar
Puedes anticipar si cada elemento es un texto o un objeto.
Paso 2
Haz una pregunta que se pueda responder
Prefijos como is, has y can ayudan a leer condiciones: isEmpty pregunta si está vacío; canWrite pregunta si se puede escribir.
Atención al cambiar un nombre negativo: noValues y hasValues significan lo contrario. Hay que invertir el valor y revisar sus usos, no solo renombrar la variable.
const hasValues = values.length > 0;const isEmpty = values.length === 0;// Si values = []: hasValues es false e isEmpty es true.Qué deberías observar
Con un arreglo vacío, isEmpty es true. No confundas el nombre de la pregunta con su respuesta.
Paso 3
Incluye la cantidad y la unidad
“fruitCount” representa una cantidad; “maxFruits” representa un límite. Ambos son números, pero responden a preguntas distintas.
Para tiempo y dinero, una unidad explícita evita conversiones equivocadas. No es lo mismo delayMs que delaySeconds.
const fruitCount = fruitNames.length;const maxFruits = 6;const delayMs = 500;Qué deberías observar
Sabes qué se cuenta, cuál es el límite y en qué unidad se mide el tiempo.
Paso 4
Nombra una acción y respeta el contrato
Un verbo y un concepto suelen ser suficientes: countFruits, updateUser o sendEmail. El nombre no necesita describir cada línea de implementación.
Tampoco escondas una diferencia importante. createUser y findOrCreateUser prometen cosas distintas. Elige según el comportamiento real, no por hacer el nombre más corto.
export function countFruits(fruitNames: string[]): number { return fruitNames.length;} export function hasValues(values: unknown[]): boolean { return values.length > 0;}Qué deberías observar
La función countFruits devuelve una cantidad. hasValues devuelve una respuesta booleana.
Ahora te toca
Prueba la idea por tu cuenta
Elige nombres para una lista de correos, su cantidad y el permiso para enviar mensajes. Después escribe qué valor tendría cada uno si la lista está vacía y no tienes permiso.
Necesito una pista
Separa colección, cantidad y capacidad. Un nombre plural no debería contener únicamente un número.
Comparar con una solución
Una opción: emailAddresses = [], emailCount = 0 y canSendMessages = false. También puedes calcular isEmpty = emailAddresses.length === 0, que en este caso es true.
Antes de seguir
Comprueba lo que aprendiste
No es una nota. Es una pausa para comprobar que la idea quedó clara.
¿Terminaste la práctica?
Haz el ejercicio y comprueba tus respuestas antes de marcar la lección como completada.