Вопрос о значениях по умолчанию в целом - значения функций возврата по умолчанию, значения параметров по умолчанию, логика по умолчанию для случаев, когда чего-то не хватает, логика по умолчанию для обработки исключений, логика по умолчанию для обработки краевых условий и т. Д.
Долгое время я считал значения по умолчанию «чистым злом», то, что «скрывает катастрофу» и приводит к очень трудным поискам ошибок. Но недавно я начал думать о значениях дефолта как о каком-то техническом долге ... что не так уж плохо, но что-то, что могло бы обеспечить "краткосрочное финансирование", чтобы заставить нас выжить в проекте (сколько из нас могли себе позволить купить дом без ипотеки?).
Когда я говорю «на короткий срок» - я не имею в виду - «сначала сделайте что-нибудь быстро и сделайте рефакторинг позже, прежде чем это произойдет». Нет - я говорю о том, чтобы полагаться на жестко заданные значения по умолчанию в производственном программном обеспечении. Конечно, это может вызвать некоторые проблемы, но что, если это вызовет только одну проблему за целый год.
Опять же - я имею в виду «среднее» основное программное обеспечение здесь (не программное обеспечение для атомной электростанции) - средний веб-сайт или приложение для пользовательского интерфейса для бухгалтерского программного обеспечения, означающее, что жизнь людей не поставлена на карту, ни миллионы долларов ,
Опять же, исходя из моего опыта, бизнес-пользователи предпочитают жить с программным обеспечением, которое «работает как-то», а не ждать идеального. И использование значений по умолчанию очень помогает, если вы разрабатываете программное обеспечение в стиле RAD. Но опять же - самые длинные сеансы отладки, которые я провел, были из-за ошибок, внесенных значением по умолчанию, которое либо перестало быть «по умолчанию», либо потому, что недавно была обновлена небольшая подсистема, и в результате этого обновления она не правильно обрабатывать значения по умолчанию (например, пустой список или пустая строка или пустая строка или пустая строка).
Поэтому мой вопрос - являются ли значения по умолчанию добром или злом. И если это технический долг - как определить, сколько вы можете одолжить, чтобы позволить себе выплаты?
Был бы очень признателен за любой вклад.
Приветствия.
РЕДАКТИРОВАТЬ:
Если я использую значения по умолчанию как способ обрезать углы во время разработки - и если обрезка углов приводит к ошибкам и проблемам - какова методология для устранения этих проблем?