N1–N4: Precision and Clarity
N1–N4: Precisión y Claridad
N1: Choose descriptive names — a name should explain its purpose without a comment. N2: Choose names at the appropriate level of abstraction. N3: Use standard nomenclature where it exists (e.g., toString, compareTo). N4: Choose unambiguous names — avoid synonyms that mean the same thing.
N1: Elige nombres descriptivos — un nombre debe explicar su propósito sin comentario. N2: Elige nombres en el nivel de abstracción apropiado. N3: Usa nomenclatura estándar donde exista (p.ej. toString, compareTo). N4: Elige nombres sin ambigüedad — evita sinónimos que signifiquen lo mismo.
N5–N7: Avoid Noise
N5–N7: Evita el Ruido
N5: Use long names for long scopes, short names for tiny scopes. Don't pad names with type info (accountString, userList). N6: Avoid encodings — no Hungarian notation. Type systems make it redundant. N7: Names should not be obscure — if only the author understands a name, it's wrong.
N5: Usa nombres largos para ámbitos grandes, cortos para ámbitos pequeños. No rellenes los nombres con información de tipo (accountString, userList). N6: Evita las codificaciones — sin notación húngara. Los sistemas de tipos lo hacen redundante. N7: Los nombres no deben ser oscuros — si solo el autor entiende un nombre, está mal.
✏️
Code Challenge
Desafío de Código
Match each bad name to its N-heuristic violation.
Relaciona cada nombre incorrecto con su heurística N violada.
💡 Key takeaway
A good name eliminates the need to read the implementation. Invest time in names — it pays compound interest.
Un buen nombre elimina la necesidad de leer la implementación. Invierte tiempo en los nombres — da interés compuesto.