CodeSOD: Обязательные поля Заметка
The Daily WTF на русском

CodeSOD: Обязательные поля

Подключение к другой системе требует аутентификации с помощью учетных данных. Унаследованная Лизой функция connect, хотя и предназначена для обеспечения требований к учетным данным, некорректно использует значения параметров по умолчанию. Это позволяет вызывать функцию без каких-либо аргументов, хотя в конечном итоге она выдаст исключение. Основная проблема заключается не только в вводящих в заблуждение значениях по умолчанию, но и в кошмаре отладки, который это создает. Если имя пользователя опущено, исключение корректно сообщает: "требуется имя пользователя". Однако, если пароль опущен, отображается то же самое вводящее в заблуждение сообщение об ошибке: "требуется имя пользователя". Это фактически верно, но не решает реальную проблему, заключающуюся в отсутствии пароля. Это ошибочное сообщение об ошибке иллюстрирует концепцию "даже не ошибочно". Сообщение об ошибке технически корректно, но совершенно бесполезно для диагностики конкретной проблемы пользователя. Более точное сообщение об ошибке четко указывало бы, какие учетные данные отсутствуют. Этот выбор дизайна значительно затрудняет эффективную отладку и пользовательский опыт.