F1 & F2 — Arguments
F1 y F2 — Argumentos
F1: Too Many Arguments — zero is ideal, one is fine, two is acceptable, three requires justification, four or more always needs refactoring. Group related parameters into a data object. F2: Output Arguments — functions should return values, not mutate their arguments. Output args are deeply confusing to callers.
F1: Demasiados Argumentos — cero es ideal, uno está bien, dos es aceptable, tres requiere justificación, cuatro o más siempre necesita refactorización. Agrupa parámetros relacionados en un objeto. F2: Argumentos de Salida — las funciones deben devolver valores, no mutar sus argumentos. Los argumentos de salida son muy confusos para los llamadores.
F3 & F4 — Flags and Dead Code
F3 y F4 — Banderas y Código Muerto
F3: Flag Arguments are a code smell. A boolean parameter signals the function does two things — split it into two honest functions. F4: Dead functions that are never called waste space and create confusion. Delete them — version control keeps history.
F3: Los Argumentos Bandera son un mal olor. Un parámetro booleano indica que la función hace dos cosas — divídela en dos funciones honestas. F4: Las funciones muertas que nunca se llaman desperdician espacio y crean confusión. Elimínalas — el control de versiones guarda el historial.
✏️
Code Challenge
Desafío de Código
Name the F-heuristic violated before revealing the fix.
Nombra la heurística F violada antes de revelar la solución.
💡 Key takeaway
F1: few args. F2: no output args. F3: no flags. F4: no dead code. Four rules that cover most function smells.
F1: pocos argumentos. F2: sin argumentos de salida. F3: sin banderas. F4: sin código muerto. Cuatro reglas que cubren la mayoría de los malos olores de funciones.