La pregunta sobre los valores predeterminados en general: valores predeterminados de la función de retorno, valores predeterminados de parámetros, lógica predeterminada para cuando falta algo, lógica predeterminada para el manejo de excepciones, lógica predeterminada para manejar las condiciones de borde, etc.
Durante mucho tiempo, consideré que los valores predeterminados eran una cosa "malvada", algo que "encubre la catástrofe" y da como resultado un error muy difícil de encontrar. Pero recientemente comencé a pensar en los valores por defecto como una especie de deuda técnica ... lo cual no es algo directamente malo, sino algo que podría proporcionar algún "financiamiento a corto plazo" que nos permita sobrevivir al proyecto (cuántos de nosotros podríamos pagar) comprar una casa sin sacar la hipoteca?).
Cuando digo "a corto plazo", no me refiero a "hacer algo rápido primero y refactorizarlo 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. Concedido: podría causar algunos problemas, pero ¿qué pasaría si solo causara un solo problema en todo un año?
Nuevamente, estoy hablando del software general "promedio" aquí (no es un software para una central nuclear) - el sitio web promedio o una aplicación de UI 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 de negocios prefieren 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 de nuevo, las sesiones de depuración más largas que pasé fueron debido a los errores introducidos por un valor predeterminado que dejó de ser "predeterminado" en el camino o porque un subsistema pequeño se ha actualizado recientemente y, como resultado de esta actualización, no es así. maneja el valor predeterminado correctamente (por ejemplo, lista vacía vs nula o cadena nula vs cadena vacía).
Así que mi pregunta es: ¿son los valores predeterminados buenos o malos? Y si son una deuda técnica, ¿cómo se mide cuánto puede pedir prestado para poder pagar los reembolsos?
Realmente agradecería cualquier entrada.
Saludos.
EDITAR:
Si estoy usando los valores predeterminados como una forma de cortar las esquinas durante el desarrollo, y si el corte de las esquinas produce errores y problemas, ¿cuál es la metodología para recuperarse de estos problemas?