Anotaciones sobre el libro Clean Code - 3
- ES
- EN
Capítulo 2 (Nombres con sentido)
Crear nombres correctos
- La longitud de un nombre DEBE corresponder al tamaño de su ámbito
- El nombre de una clase NO debe ser un verbo
- Métodos DEBE tener nombres de verbo
- No tener miedo a molestias por cambio de nombre de variables (siempre que sea para mejor)
Revelan intenciones
- ¿Por qué existe?
- ¿Qué hace?
- ¿Cómo se usa?
- Si un nombre requiere un comentario, entonces no revela su cometido
Evitar desinformación
- No usar palabras lejanas al significado que se pretende
- Evitar nombres con variaciones mínimas:
MethodUsedForHandlingOfStrings MethodUsedForEfficientStorageOfStrings
Distinciones con sentido
- NO crear código solo para compilador/intérprete
- Nombres con series numéricas (a1, a2) no son intencionados, desinforman
- Palabras adicionales son redundantes (a, an, the, variable, info, data, table, NameString son ejemplos)
// Son nombres distintos pero con el mismo significado class Product class ProductInfo class ProductData
Pronunciables
- Usar nombres pronunciables (a los humanos se nos dan las palabras, si no lo puede pronunciar no lo puede explicar)
Buscables
- Nombres de una letra y constantes numéricas NO son fáciles de localizar
Evitar codificaciones
- Al codificar tipos o ámbitos en un nombre se dificulta la decodificación
- NO es razonable que nuevos empleados tengan que aprender otro lenguaje de codificación además del código a trabajar.
Evitar asignaciones mentales
- Variables de 1 letra están bien para contadores de ciclos
- Evitar que el lector del código tenga que mapear la variable con un concepto mentalmente (mejor explícitamente)
- La diferencia entre un programador inteligente y uno profesional es qué éste último sabe que la claridad es lo que importa
Una palabra por concepto
- Evitar sinónimos para métodos equivalentes (get, fetch, retrieve)
- Un léxico coherente es una ventaja para programadores usando su código
Evitar juegos de palabras
-
NO usar la misma palabra si existe diferencia semántica:
Un método add que añade valores a un objeto existente es diferente a una lista del mismo objeto la cual tiene un método para agregar nuevos elementos. usar la misma palabra crea un juego de palabras por la diferencia semántica de ambos procedimientos.