La pregunta sobre los valores predeterminados en general: valores de función de retorno predeterminados, valores de parámetros predeterminados, lógica predeterminada para cuando algo falta, lógica predeterminada para manejar excepciones, lógica predeterminada para manejar las condiciones de borde, etc.
Durante mucho tiempo consideré que los valores predeterminados eran algo "puro malvado", algo que "oculta la catástrofe" y resulta muy difícil de encontrar errores. Pero recientemente comencé a pensar en los valores por defecto como una especie de deuda técnica ... lo cual no es algo malo pero algo que podría proporcionar algo de "financiamiento a corto plazo" para que sobrevivamos al proyecto (cuántos de nosotros podríamos pagar comprar una casa sin sacar la hipoteca?
Cuando digo un "corto plazo", no quiero decir, "haga algo rápidamente primero y refactorícelo más tarde antes de que llegue a la producción". No, estoy hablando de confiar en valores predeterminados codificados en un software de producción. Por supuesto, podría causar algunos problemas, pero ¿qué pasaría si solo causara un solo problema en todo un año?
Una vez más, estoy hablando del software convencional "promedio" aquí (no un software para una estación de energía nuclear), el sitio web promedio o una aplicación de interfaz de usuario para el software de contabilidad, lo que significa que las vidas de las personas no están en juego, ni millones de dólares .
Una vez más, desde mi experiencia, los usuarios comerciales preferirían vivir con el software que "funciona de alguna manera", en lugar de esperar por uno perfecto. Y el uso de valores predeterminados ayuda mucho si desarrolla un software en un estilo RAD. Pero, una vez más, las sesiones de depuración más largas que he pasado se debieron a los errores introducidos por un valor predeterminado que dejó de ser "predeterminado" en el camino o porque recientemente se actualizó un pequeño subsistema y, como resultado de esta actualización, no manejar el valor predeterminado correctamente (por ejemplo, lista vacía vs nulo, o cadena nula vs cadena vacía).
Entonces mi pregunta es: ¿los valores predeterminados son buenos o malos? Y si son una deuda técnica, ¿cómo puede calcular cuánto puede pedir prestado para poder pagar los reembolsos?
Realmente agradecería cualquier aporte.
Salud.
EDITAR:
Si estoy usando los valores predeterminados como una forma de cortar las esquinas durante el desarrollo, y si el corte de las esquinas resulta en errores y problemas, ¿cuál es la metodología para recuperarse de estos problemas?