Я занимаюсь разработкой программного обеспечения в течение последних трех лет, но совсем недавно я осознал, насколько я невежествен в отношении хороших практик. Это заставило меня начать читать книгу « Чистый код» , которая меняет мою жизнь к лучшему, но я изо всех сил пытаюсь понять некоторые из лучших подходов к написанию моих программ.
У меня есть программа на Python, в которой я ...
- используйте argparse
required=True
для применения двух аргументов, которые оба являются именами файлов. первое имя входного файла, второе имя выходного файла - есть функция,
readFromInputFile
которая сначала проверяет, было ли введено имя входного файла - есть функция,
writeToOutputFile
которая сначала проверяет, было ли введено имя выходного файла
Моя программа достаточно мала, поэтому я считаю, что проверка в # 2 и # 3 является избыточной и должна быть удалена, что освобождает обе функции от ненужного if
условия. Тем не менее, я также был убежден, что «двойная проверка в порядке» и может быть правильным решением в программе, где функции могут быть вызваны из другого места, где разбор аргументов не происходит.
(Кроме того, если чтение или запись завершается неудачно, try except
в каждой функции у меня есть соответствующее сообщение об ошибке.)
Мой вопрос: лучше ли избегать избыточной проверки состояния? Должна ли логика программы быть настолько надежной, чтобы проверки проводились только один раз? Есть ли хорошие примеры, иллюстрирующие это или обратное?
РЕДАКТИРОВАТЬ: Спасибо всем за ответы! Я чему-то научился у каждого. Увидев так много точек зрения, я лучше понимаю, как подойти к этой проблеме и найти решение на основе моих требований. Спасибо!