He estado desarrollando software durante los últimos tres años, pero recientemente me desperté de lo ignorante que soy de las buenas prácticas. Esto me ha llevado a comenzar a leer el libro Clean Code , que está cambiando mi vida para mejor, pero estoy luchando por comprender algunos de los mejores enfoques para escribir mis programas.
Tengo un programa de 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 - tener una función
readFromInputFile
que primero verifica que se haya ingresado un nombre de archivo de entrada - tener 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 hacerme creer que la verificación en los números 2 y 3 es redundante y debe eliminarse, liberando así ambas funciones de una if
condición innecesaria . Sin embargo, también se me ha hecho creer que "la doble verificación está bien" y puede ser la solución correcta en un programa donde las funciones podrían llamarse desde una ubicación diferente donde no se realiza el análisis de los argumentos.
(Además, si falla la lectura o escritura, tengo una try except
en cada función para generar un mensaje de error apropiado).
Mi pregunta es: ¿es mejor evitar todas las verificaciones 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!