He estado desarrollando software durante los últimos tres años, pero recientemente me di cuenta de lo ignorante que soy de las buenas prácticas. Esto me ha llevado a comenzar a leer el libro Código limpio , que está mejorando mi vida, pero estoy luchando por conocer algunos de los mejores enfoques para escribir mis programas.
Tengo un programa en Python en el que ...
- use argparse
required=True
para imponer dos argumentos, que son ambos nombres de archivo. el primero es el nombre del archivo de entrada, el segundo es el nombre del archivo de salida - tiene una función
readFromInputFile
que primero verifica que se haya ingresado un nombre de archivo de entrada - tiene una función
writeToOutputFile
que primero verifica que se haya ingresado un nombre de archivo de salida
Mi programa es lo suficientemente pequeño como para que crea que la comprobación en los números 2 y 3 es redundante y debería eliminarse, por lo que se liberan ambas funciones de una condición if
innecesaria. Sin embargo, también me han llevado a creer que "la doble verificación está bien" y puede ser la solución correcta en un programa donde las funciones se pueden llamar desde una ubicación diferente donde no se realiza el análisis de los argumentos.
(Además, si falla la lectura o la escritura, tengo un try except
en cada función para generar un mensaje de error apropiado).
Mi pregunta es: ¿es mejor evitar todas las comprobaciones de condición redundantes? ¿Debería la lógica de un programa ser tan sólida que las comprobaciones solo deben hacerse una vez? ¿Hay buenos ejemplos que ilustren esto o lo contrario?
EDITAR: ¡Gracias a todos por las respuestas! He aprendido algo de cada uno. Ver tantas perspectivas me da una mejor comprensión de cómo abordar este problema y determinar una solución basada en mis requisitos. ¡Gracias!