El momento de decir que no es casi siempre. Los momentos en los que encuentro que es más fácil usar números codificados es en lugares como el diseño de la interfaz de usuario: crear una constante para el posicionamiento de cada control en el formulario se vuelve muy cubmersone y agotador, y si ese código generalmente lo maneja un diseñador de interfaz de usuario, no importa mucho ... a menos que la IU se presente dinámicamente, o use posiciones relativas a algún ancla o se escriba a mano. En ese caso, diría que es mejor definir algunas constantes significativas para el diseño. Y si necesita un factor fudge aquí o allá para alinear / posicionar algo "justo", eso también debe definirse.
Pero en su ejemplo, creo que reemplazar 24 * 60 * 60
por DAYS_TO_SECONDS_FACTOR
es mejor.
Admito que los valores codificados también están bien cuando el contexto y el uso son completamente claros. Esto, sin embargo, es un juicio ...
Ejemplo:
Como señaló @rmx, usar 0 o 1 para verificar si una lista está vacía, o tal vez en los límites de un bucle, es un ejemplo de un caso en el que el propósito de la constante es muy claro.
FrustratedWithFormsDesigner
fuente
seconds = CALC_SECONDS(num_days);
TimeSpan.FromDays(numDays).Seconds;
HOURS_PER_DAY will never need to be altered
), nunca codificará el software implementado en Marte. : P